I want to broadcast a SNES game for a certain radio program, kinda like how the Satelliview used to work. I haven't done any work yet, but I presume just importing the ROM as raw data into Audacity won't work because the radio program is encoded in MP3 format, which discards some data, right?
Is there an MP3-friendly way of saving this SNES ROM as an audio file to be broadcast? Maybe use a Compact Cassette-type format like KCS08?
Can a SNES ROM be decoded from audio waveforms?
Moderator: Moderators
Forum rules
- For making cartridges of your Super NES games, see Reproduction.
-
- Posts: 9
- Joined: Sun Oct 15, 2023 4:13 pm
Re: Can a SNES ROM be decoded from audio waveforms?
MP3 is indeed lossy and won't do, why don't you use WAV or FLAK?
- TmEE
- Posts: 960
- Joined: Wed Feb 13, 2008 9:10 am
- Location: Norway (50 and 60Hz compatible :P)
- Contact:
Re: Can a SNES ROM be decoded from audio waveforms?
If it absolutely has to go over internet radio using MP3 compression, probably at very low bitrate, you're gonna have to cook up your own data format that isn't harmed by the MP3 compression and appropriate tools to convert the data. Appropriating some ancient datasette formats is possible but you make your transmission length really long with those (many minutes).
You can do some spectral coding to leverage how MP3 format works, you should be able to pack a decent amount of data in a given time unit this way and reduce transmission time quite a lot compared to the datasette formats.
You can do some spectral coding to leverage how MP3 format works, you should be able to pack a decent amount of data in a given time unit this way and reduce transmission time quite a lot compared to the datasette formats.
Re: Can a SNES ROM be decoded from audio waveforms?
I'd recommend looking up a 150 or 300-baud modem emulator. Try entering some text, have it encode it into modem audio, then convert that into an mp3 and back, then pump it back through, see if you get the exact text out of the RX that you sent on the TX. This could probably be scripted to run repeatedly and generate a statistical likelihood of success.
This may be a good place to start: https://en.wikipedia.org/wiki/Bell_103_modem
If you can't find a tool, you can do this with waveform generation too in, say, Audacity. From the above article:
I would personally try to make it work with a modem standard because that means you're then in good company, your transmission format can be interpreted by more than just your own stuff, but that also means potentially adding control signals to the transmission if you would, say, expect a terminal plugged into a 300-baud modem to actually be able to receive this content. Doesn't sound like that's what you're going for though.
Long story short though what you're looking for a is the concept of a modem, convert a serial train of computer bits into voiceband audio, so studying modem implementations may serve you well. Good luck, I support this project in theory (in practice depends on what you're transmitting whether I consider myself condoning it or not )
This may be a good place to start: https://en.wikipedia.org/wiki/Bell_103_modem
If you can't find a tool, you can do this with waveform generation too in, say, Audacity. From the above article:
So at 300 baud, that means each bit should be 1/300th of a second tone of the above frequencies. You don't have to do those if you're not doing specifically the 103 standard. For instance, sounds like your com is one way, so at the very least you just need one side to emit mark/space. If you need the two sides to synchronize though, then you'll also need the remote end to emit some sort of tone to say, hey, I'm alive and online, you can start transmitting bits.The originating station used a mark tone of 1,270 Hz and a space tone of 1,070 Hz.
The answering station used a mark tone of 2,225 Hz and a space tone of 2,025 Hz.
I would personally try to make it work with a modem standard because that means you're then in good company, your transmission format can be interpreted by more than just your own stuff, but that also means potentially adding control signals to the transmission if you would, say, expect a terminal plugged into a 300-baud modem to actually be able to receive this content. Doesn't sound like that's what you're going for though.
Long story short though what you're looking for a is the concept of a modem, convert a serial train of computer bits into voiceband audio, so studying modem implementations may serve you well. Good luck, I support this project in theory (in practice depends on what you're transmitting whether I consider myself condoning it or not )