|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
Author | Message |
---|---|
|
ROM dumps through control port UART
Posted: Tue Sep 27, 2016 10:02 pm
|
Implemented a ROM dumper that sends the ROM data to a PC using the control 2 port as an UART serial port. I succesfuly dumped my own SMS BIOS using a Silabs CP2102 USB-to-UART transceiver connected to the Master System and an XMODEM program (Teraterm).
Currently it can dump SEGA mapper ROMS (slot2) but I intend adding support for other mappers/no mapper soon. Scroll down for ROM and instructions. ROM relocates itself to RAM on boot so you could technically (have not tested) remove the cartridge with the console powered on and dump it. Connecting the transceiver CONTROL 2
o o o o o o o o o | | `---PC TX (SMS RX) | `-----Ground `-------PC RX (SMS TX) Configure the ROM dump Use the arrow keys to select either of the settings. Button A increments the value while button B changes which address/bank nibble is being incremented. Once all settings are set, select the START option and press A. Stat should say "Waiting ACK". Configure the receiver You will need an XMODEM receiver on the PC, this example uses Teraterm but any XMODEM client should work. Consome implementetion of XMODEM supports the more reliable CRC transmission mode. The serial port configuration is 4800bps, 8 data bits, 1 start bit, 1 stop bit. Receiving data with Teraterm * Get the program. * Configure the serial port correctly using the "Setup" > "Serial port..." menu. * Select a file to save the dump on the "File" > "Transfer" > "XMODEM" > "Receive..." * Select the "CRC" and "Binary" option on the file selection menu bottom. * Click "Open" Transfer will commence immediatly. Stat will say "Transfer (CRC)" or "Transfer (SUM)" depending on the client capabilities. CRC mode is slightly slower than Checksum mode but will provide a robust transfer error detection. Known issues This issues will be fixed in time, as I find a need for them, meanwhile, better know what can happen. * A SEGA mapper is required (up to 4MB is supported) * NMI has no valid handler so, don't press pause. * Transfer statistics don't work * Progress bar doesn't work |
|
|
ROM dumps through control port UART
Posted: Wed Sep 28, 2016 3:02 pm
|
Nice.
The 'removing the cartridge with the console powered on' part doesn't really work too well. If you were to put the program on a card then you could use a SMS 1 to dump cartridges by powering on the console with both the card and cartridge inserted. The card is higher in the boot order than the cartridge. |
|
|
Posted: Thu Dec 01, 2016 12:49 pm |
Great work!
Do you have plans to make something similar to Mega Drive/Sega Genesis? |
|
|
Posted: Thu Dec 01, 2016 5:30 pm |
I can't load ROMs on the Megadrive ATM since I don't have a flash cart for it. If the Megadrive can have access to the pins on the controller pad I see no reason why it wouldn't work. The added power of the 64K would allow for faster IO as well. | |
|
Posted: Thu Dec 01, 2016 9:12 pm |
Such a thing exists in CD form, all the better for people without flashcarts. http://www.retrodev.com/transfer.html | |
|
Posted: Thu Dec 01, 2016 11:56 pm |
I've seen that before, and seems very cool too.
But infortunatelly I don't have a Sega CD, and the price tag around me is just atrocious, as the import taxes :-( |
|
|
Posted: Fri Dec 02, 2016 1:11 am |
Cartridges take boot priority over the SEGA CD, or any other expansion slot accessory. You'll need to somehow turn on the cart slot after the CD has booted up.
Interestingly, you might have luck by building a powerbase converter for the Mega Drive's expansion slot, and booting a flashcart from the cartridge slot, and dumping using that. Of course, that does still require some financial expenditure. |
|
|
Posted: Fri Dec 02, 2016 9:37 am |
So, I can try booting your rom from a memory plugged at the expansion port?
I asked the author of the SegaCD program I'd that would be possible with his binary file and him told me that not, because the 68k needs initialization. Maybe the init code can be added to his program, since the source is available, but I have no idea how to make it or where to start to learn. |
|