Announcing the public release of the Sega SMS/GG Firmware v0.24. This firmware adds the ability to read and write SMS and GG saves (SRAM and EEPROM). I added improved SMS/GG cart recognition including proper Codemasters cart support. The SMS/GG Plugin needs to be modified for the Codemasters carts to work.

I've included a couple changes for Genesis/Megadrive carts: I added SRAM identification for carts that are missing the SRAM header data; and I fixed the large SRAM problem that affected Phantasy Star IV and other carts.

Announcing the public release of the N64 Save Support Firmware v0.23. This firmware adds the ability to read and write N64 saves (SRAM, FlashRAM, and EEPROM). In addition, the N64 cart heuristics code was modified and cart size recognition should be improved.

I want to give a HUGE THANKS to the BETA testers. As a group, the testers tested dozens, if not hundreds, of carts during the firmware development. This firmware would not have been possible without their testing and feedback.

A few notes on using the firmware:1) When reading N64 carts, please set the voltage to 3.3V. 2) Remember the [saveReadonly] setting in the Config file. Set it to 0 if you plan to write to the save file.3) Writes to FlashRAM and EEPROM16K save files take longer. DO NOT RESET OR UNPLUG THE RETRODE WHILE THE LED IS ON.4) SRAM (.SRA) and FlashRAM (.FLA) save files need to be saveswapped to be used in Project64 (PJ64) and other emulators. EEPROM (.EEP) save files do not need to be saveswapped.5) Save swap programs are available here: saturnu's ED64-Saveswap: https://github.com/sanni/cartreader/tree/master/extras/saveswap ssokolow's portable (cross-platform) alternative: https://github.com/ssokolow/saveswap6) There is NO SUPPORT for Reproduction N64 carts. Most reproduction carts will have problems either with cart recognition or accessing saves. YMMV.

v0.23 (2017-11-03)- Changes by skaman:-- N64 Saves!-- Added N64 SRAM save support.-- N64 SRAM carts should be identified by Cart ID and display the .SRA file. The .SRA file can be read and written.-- Added proper Dezaemon 3D 768Kbit SRAM support.-- Added identification of the Hoshi no Kirby 64 (J) savetype based on the ROM version. v1.0 & v1.1 are SRAM, 1.2 & v1.3 are EEPROM4K.-- Added N64 FlashRAM save support.-- N64 FlashRAM carts should be identified by Cart ID and display the .FLA file. The .FLA file can be read and written.-- WARNING: FlashRAM writes take time to complete as the chip must first be erased before writing to it. ** WHEN SAVING AN UPDATED .FLA FILE, DO NOT RESET ** **** OR UNPLUG THE RETRODE WHILE THE LED IS ON! ****-- Added N64 EEPROM save support.-- N64 EEPROM carts should be identified by Cart ID and display the .EEP file. The .EEP file can be read and written.-- WARNING: EEPROM16K writes take time to complete. ** WHEN SAVING AN UPDATED .EEP FILE, DO NOT RESET ** **** OR UNPLUG THE RETRODE WHILE THE LED IS ON! ****-- Added reading of the N64 Gameshark. When a working Gameshark is attached, the Gameshark.z64 ROM will be displayed.-- Fixed the N64 heuristics code to recognize 20MB and 40MB games. These were previously overlooked by the code. Fixes Donald Duck Goin' Quackers, Paper Mario, and Ogre Battle 64.-- Fixed the N64 heuristics code for underdumps of Body Harvest and Paper Mario (E). Modified the addresses checked to determine the cart size.-- Modified the Config file to change the save file write protection setting from "[sramReadonly]" to "[saveReadonly]". The change was made since the same setting is applied to all save types including SRAM, FlashRAM, and Controller Pak save files.-- Modified the Config file's default N64 ROM extension to ".z64". This is the correct extension for the native big endian format output by the Retrode.-- WARNING: THERE IS NO SUPPORT FOR REPRODUCTION N64 CARTS. MOST REPRODUCTION CARTS WILL HAVE CART RECOGNITION PROBLEMS AND/OR SAVE PROBLEMS. YMMV.The v0.23 firmware is available here: http://www.mediafire.com/file/7gxgtbl0co7m0b8/Retrode-v0.23.zip

FIRMWARE UPDATE: I've fixed the handling of a couple carts and updated the firmware to v0.23a.Here's the summary of the firmware changes:

v0.23a (2018-01-10)- Changes by skaman:-- N64 Fixes!-- Fixed the ROM size for N64 Command & Conquer. The C&C ROM is padded out with 14MB of 00s at the end which breaks the cart heuristics.-- Added Rockman Dash (J) to the N64 FlashRAM list.

Matthias kindly provided me with access to the Retrode source code and I've implemented support for a majority of the SNES Enhanced Carts: CX4, SDD1, ExHiROM, SPC7110, SA-1, and Nintendo Power (SF Memory Cassette). I've also include various fixes for other SNES issues.

My code changes have been committed but not officially reviewed and merged into the main firmware yet. Wannado is working on other changes so hopefully there will be an official release with everything included.

The firmware supports the SPC7110, SA-1 (Read Only), and Nintendo Power carts ONLY with my Enhanced cart adapter. The Enhanced cart adapter serves as a pass-thru that provides the signals needed for these carts to work properly with the Retrode. My prototype adapters are working perfectly with these carts. The final adapter design is under review. I won't be able to test the final design until sometime next month. More details on the adapter are forthcoming.

I want to gauge interest in the SNES Enhanced firmware and ask for BETA testers. My code has only been compiled and tested on a Retrode 2 so the initial testers should have this hardware version. If you're willing to test AND provide feedback, then please contact me by PM.

Keep in mind that the full functionality of this firmware is only possible with the Enhanced cart adapter.

***UPDATE***: The BETA testing of the SNES Enhanced firmware is complete. The firmware has evolved and expanded during the development and testing process. Please read the summary below (or the Readme included with the firmware) to understand all of the changes.

v0.22 (2017-08-18)- Changes by skaman:-- SNES Enhancements!-- Added support for SNES Enhanced Chip carts: CX4, SDD1, ExHiROM, SPC7110, SA-1, BS Satellaview, Sufami Turbo, and Nintendo Power carts.-- Added register writing code to enable remapping for CX4, SDD1, SPC7110, SA-1, and Nintendo Power carts.-- SPC7110, SA-1 and Nintendo Power carts need a separate SNES Enhanced cart adapter.-- WARNING: SA-1 SRAM writes are not possible with the current hardware. Any changes made to the SA-1 SRAM file on the Retrode will not be written to the cart.-- Added Nintendo Power (SF Memory Cassette) cart support using the SNES Enhanced cart adapter. The base ROM is initially read whether a single game or the multi-game Menu. In single game mode, the SRAM is visible if used.-- Added Nintendo Power multi-game switching using the HWB button. Press the HWB button to switch games on a multi-game cart. Refresh the Retrode folder to access the new game.-- Added display of Nintendo Power flash mapping. Press the HWB button to cycle thru games. The flash map files will be shown when the base ROM is displayed for the 2nd time. Flash map files are read only.-- Added support for BS Satellaview carts and memory paks. Memory Pak support is limited to read only on the BS-X, Special LoROM, and HiROM carts.-- WARNING: Memory Paks will not work on the SA-1 carts.-- WARNING: Completely blank (all 0xFFs) Memory Paks will not be shown when inserted in the BS-X cart.-- Added support for the Sufami Turbo adapter and carts. Carts will have the adapter slot position (A or B) added to the filename. This allows two carts with the same name to be accessed.-- Added reading of Flash saves for the JRA PAT/SPAT4 carts. These carts use a 1024Kb Flash chip with unique mapping.-- Fixed HiROM to read ROM starting from Bank 0xC0. Previous code used the mirror in lower banks which returned incomplete data.-- Fixed LoROM to read ROM starting from Bank 0x80 for large (> 24 Mbit) games.-- Fixed HiROM SRAM to read Bank 0x30. Previous code was reading Bank 0x20. Fixes problems with Brain Lord, The 7th Saga, etc.-- Fixed SRAM bank switching for both LoROM and HiROM. LoROM SRAM switches banks every 0x8000 bytes and HiROM SRAM switches banks every 0x2000 bytes.-- Fixed SRAM size for ST010/011/018 carts. Only ST018 (Hayazashi Nidan Morita Shougi 2) contains SRAM.-- Fixed SRAM bug where previous code reported size 0 for 64K due to sramSize256 overflowing the SRAM setDirEntry.-- Fixed SuperFX SRAM bug where the upper half of the 64K SRAM size was mapped to the wrong bank. SuperFX SRAM starts in Bank 0x70 and bankswitches at 0x10000 bytes.-- Changed the checksum to use the proper bytes at 0xFFDE and 0xFFDF. Previous code used the complement at 0xFFDC and 0xFFDD.-- Added checksum + complement checksum code to check for the presence of ExHiROM.-- Added code to address the incorrect mapping due to the too long internal ROM name (22 characters) that runs into 0xFFD5. Fixes problems with Contra 3 (U), Krusty's Super Funhouse (U)(1.0), etc.-- Added overdump correction code to eliminate the need to flag individual carts. Removed the short internal list of overdumped carts since it is no longer needed.-- Removed the HWB button overdump code since it is no longer necessary. The HWB button function is now used for switching games on the Nintendo Power carts.-- Added Config file option to control SNES automatic overdump correction. Default setting is 1 = ON.-- Added Config file option to display the ROM Version in place of the checksum. Default setting is 0 = OFF.