Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - skaman

Pages: [1]
General Discussion / Virtual Boy SRAM Support
« on: 19/Feb/2018 10:14:29 PM »
I've been working on a modified Virtual Boy Plugin with SRAM save support.  I'll be releasing a BETA firmware (v0.25) that adds save support.

Here's the modified pinout with the SRAM pins connected:
Code: [Select]
Sega Edge       Signal          VB Edge
A1              gnd             1, 2
A2              +5v             54
A3              a8              15
A4              a11             22
A5              a7              17
A6              a12             24
A7              a6              19
A8              a13             26
A9              a5              21
A10             a14             28
A11             a4              23
A12             a15             30
A13             a3              25
A14             a16             32
A15             a2              27
A16             a17             34
A17             a1              29
A18             gnd             33
A19             d7              38
A20             d0              39
A21             d8              37
A22             d6              42
A23             d1              43
A24             d9              41
A25             d5              46
A26             d2              47
A27             d10             45
A28             d4              50
A29             d3              51
A30             d11             49
A31             +5v             36, 53
A32             gnd             59, 60
B1              N/A             -
B2              N/A             -
B3              N/A             -
B4              a9              18
B5              a10             20
B6              a18             13
B7              a19             11
B8              a20             16
B9     CS2 (SRAM), /CE (ROM)    7, 31
B10      /CS1 (SRAM Enable)     6
B11   /WE0 (SRAM Write Enable)  3
B12             N/A             -
B13             N/A             -
B14             N/A             -
B15             N/A             -
B16\     /OE (Output Enable)    35
B17/     /OE (Output Enable)    35
B18             N/A             -
B19             N/A             -
B20             N/A             -
B21             N/A             -
B22             d15             40
B23             d14             44
B24             d13             48
B25             d12             52
B26             N/A             -
B27             N/A             -
B28     /LDSW (not used)        -
B29     /UDSW (not used)        -
B30             N/A             -
B31             N/A             -
B32     /CART_IN (not used)     -

Here are pics of the Plugin PCB:

The section with the holes at the top of the PCB breaks off and is used to help align the pins for assembly.  I use pins from 1.27mm male right angle pin headers (2 row) and hand assemble them.

General Discussion / SEGA SMS/GG Firmware (FW v0.24)
« on: 10/Dec/2017 03:41:40 AM »
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.

As part of the development, I made a working prototype Mark III Plugin.  The plugin allows you to read Japanese Mark III carts and Sega Card/My Cards with a Card Catcher (see,368.msg2711.html#msg2711).

Here's a summary:
Code: [Select]
v0.24 (2018-03-14)
- Changes by skaman:
-- SEGA SMS and GG Saves!
-- Fixed SMS SRAM read support.
-- Added SMS SRAM write support.
-- SMS SRAM carts should be identified by Product Code
   and display the .SAV file.  The .SAV file can be read
   and written.
-- Corrected the ROM size identification for Mega,
   Two-Mega, and Four-Mega carts.
-- Fixed Product Code identification.
-- Fixed identification of SMS Monopoly (U) to output
   the proper ROM and SRAM save file.
-- Fixed identification of SMS Wonder Boy in Monster
   World (EK) and SMS New Zealand Story (E) to output the
   proper ROM file.
-- Added code to improve handing carts with bad headers.
   A small number of games will still require using the
   [forceSystem] setting in the Config file due to
   missing ASCII text at the start of the header.
-- Added identification of SMS Ys (J) save file.
-- Added identification of SMS Haja no Fuuin (J) save file.
-- Added GG SRAM save support.
-- GG SRAM carts should be identified by Product Code
   and display the .SAV file.  The .SAV file can be read
   and written.
-- Added GG EEPROM save support.
-- GG EEPROM carts should be identified by Product Code
   and display the .SAV file.  The .SAV file can be read
   and written.
-- Corrected GG Nomo's World Series Baseball from EEPROM
   to SRAM.  The cart uses the BR6265 SRAM chip with
-- Removed GG Pro Yakyuu GG League '94 from EEPROM list.
-- Added identification of GG Pro Yakyuu '91 (J).
-- Fixed GG ROM size "0" identification.  ROM size "0"
   is 256KB, however, carts may be 256KB, 512KB, or 1MB.
-- Fixed SMS Codemasters cart detection.
-- Added GG Codemasters cart support.
-- WARNING:  Codemasters carts require modification of the
   SMS/GG Plugin.  The CLOCK connection must be made from
   both slots to the plugin edge (pin B9).  In addition,
   SMS Codemasters carts require the /MREQ pin to be
   connected to the /CE pin.
-- Moved SMS/GG cart detection ahead of NGP cart detection.
   Some SMS carts were incorrectly detected as NGP.
-- Changed the SMS/GG SRAM save extension to ".SAV".
   This appears to be the extension expected by most
   SEGA emulators.
-- Added identification of Genesis/Megadrive carts with
   missing SRAM save data in the header.
-- Fixed Genesis/Megadrive SRAM code.  Fixes Phantasy
   Star IV and other large SRAM (16KB or larger) saves.

The v0.24 firmware is available here:

General Discussion / N64 Save Support (FW v0.23)
« on: 03/Nov/2017 12:43:27 PM »
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.

N64 EEPROM save support should work with the production N64 plugin.  The prototype N64/GBx plugin needs modification to add 2 connections - CLK and S_DAT.  More details here:,154.msg2625.html#msg2625

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:
     ssokolow's portable (cross-platform) alternative:
6)  There is NO SUPPORT for Reproduction N64 carts.  Most reproduction carts will have problems either with cart recognition or accessing saves.  YMMV.

Here's the summary of the firmware changes:
Code: [Select]
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.
-- 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.
-- Added reading of the N64 Gameshark.  When a working
   Gameshark is attached, the Gameshark.z64 ROM will be
-- 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.

The v0.23 firmware is available here:

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:
Code: [Select]
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.

The v0.23a firmware is available here:

General Discussion / SNES Enhanced Cart Support (FW v0.22)
« on: 11/May/2017 08:57:05 PM »
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.

Here's the summary of the firmware changes:
Code: [Select]
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
-- 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.

The v0.22 firmware is available here:

Pages: [1]