Saturday, May 2, 2015

SNES Flash Carts : SD2SNES vs. SNES PowerPak

Like most retro game consoles, the SNES has been blessed with a few flash carts.  The first great flash cart was the SNES PowerPak, released in 2009.  The second great flash cart is the Super Everdrive, released in 2010.  The third great flash cart is the SD2SNES, released in 2012.  All cartridges are expensive at $145.00, $79.00 and $195.00, respectively, but support hundreds of SNES games via compact flash (PowerPak) or SD card (SD2SNES).  In this post, I will talk about the pros and cons of each.

SNES PowerPak

The SNES PowerPak is the oldest cartridge, released in 2009, and it loads games via Compact Flash. Compact Flash cards are becoming increasingly hard to find and the connector is made up of 44 thin pins that can bend and break.  The default menu for the SNES PowerPak looks almost exactly like the NES PowerPak, although the font is thinner and ugly. The official combined NES and SNES PowerPak mappers (1.35b) from bunnyboy were last updated in October, 2010.  The PowerPak can be upgraded with a DSP-1 chip from a real SNES cartridge to play games supporting that chip like Super Mario Kart and (sometimes) Pilotwings.

The SNES PowerPak is RAM based, allowing for very fast loading of games.  CF card support can be a tad finicky, so you may need to turn the DMA mode off if games are not loading.  This makes loading games a little slower, but still faster than a flash memory-based cart like the Super Everdrive.  CF cards must be formatted for FAT16 or FAT32, which generally allows card support for up to 32GB in size.  Originally the SNES PowerPak did not work on an SNES mini/jr., but that problem has long been solved with newer mappers.

The menu allows for only about 28 characters on each line, which is not sufficient for long filenames.  The firmware of the SNES PowerPak is not designed to be user upgradeable.  The SNES does support high resolution interlaced modes, and a NESDEV forum contributor named Ramsis made custom firmware and mappers that double the number of characters per line for the menu as well as allow for color backgrounds whereas the official background was always black.  This requires a firmware update, which ideally should be performed by a flash programmer.  Sometimes the flash chip in the PowerPak is soldered instead of socketed, making that option unfeasible for most.  Ramsis's firmware can be updated by the PowerPak itself if you are willing to risk a slight possibility of bricking the device.  I did it with mine and had no problems.  The current stable version is v3.00 and includes an SPC player for playing back SNES chiptunes.  Although the firmware requires v1.02 of the original firmware, I was able to update my card with v1.01 firmware.

The SNES PowerPak does not sort ROMs or directories, you need a file sort utility like File Sort for Windows.  It does support up to five Game Genie codes and you can load them from a text file.  It does not support automatic save file creation for battery backed games and you must push reset before turning off the system to keep your save game.  There are no save state mappers for the SNES PowerPak.  Save states may not really be possible with the SNES because the cartridge may not be able to save the state of the SPC-700 audio coprocessor.

The PowerPak does not support any special chips via its FPGA, so no Super FX 1 or 2, the SA-1, CX-4, OBC-1, S-RTC, ST010, ST011, ST018, SDD-1 or SPC7110 support.  Forget about anything that would require Satellaview or Super Game Boy hardware.  The controller chip simply does not have enough logic to emulate any of these chips.  In theory it does support the DSP-2, 3 or 4, but you would have to take the appropriate chip out of a cartridge and install it in the SNES PowerPak.  As only one game uses each chip, this is impracticable, you might as well just save the cartridge.

I have had trouble with a few games, even as of the latest mappers, official or Ramsis.  Ys III: Wanderers from Ys and Secret of Evermore will run but not save a valid save file or load from one.  This is because they use unusual areas of the memory map to write their save game information and the PowerPak does not support this.  The Super EverDrive has the same issue with Ys III but apparently not with Secret of Evermore.  I have often had trouble with Pilotwings, regardless of version it frequently just does not want to load.  Using a small (256MB or so) CF card helps.  My main CF card is 4GB.

Even though the original ROM uses the S-DD1 compression chip, the SNES PowerPak or SD2SNES will run a hacked version Star Ocean.  Start with the original Japanese ROM.  This ROM can be translated into English with the DeJap translation.  Then use the Star Ocean no S-DD1/96Mbit hack to decompress the ROM.  Finally, change the following bytes in the hacked ROM with a hex editor :

000081D5 from 32 to 31
000081D6 from 45 to 02
00A081D5 from 32 to 31
00A081D6 from 45 to 02

This will tell the flash cart that the game has a battery backed save feature, otherwise you won't be able to save games.  This appears to be necessary only for the SNES PowerPak.

SD2SNES

The SD2SNES by ikari loads games by an SD, SDHC or SDXC card.  It addresses several weaknesses of the SNES PowerPak.  First, it has a battery on the cartridge for holding the contents of save memory.  This means you will not lose your save game if you forget to press reset before turning the game off.  However, because some games use their save memory as work memory, the SD2SNES will only save every 15-20 seconds for those games.  If the red (write) LED is constantly on, then you should wait or hold the reset button until all three LEDs are on before turning off the power.

Another improvement over the Super Everdrive is that the cart will automatically create new files for battery backed up save games.  The .srm extension is used for SNES save game files whether on the SNES PowerPak or SD2SNES or Super Everdrive, and it is just a memory dump of the emulated cartridge RAM.  The SD2SNES now saves .srm files to a common \SAVE folder just like the SNES PowerPak.

Second, the SD2SNES has sufficient power to emulate several of the enhancement chips.  It currently supports DSP1, 2, 3 & 4, OBC-1, Cx4, ST-010, S-RTC, OBC1 and a portion of the Satellaview.  It supports a real time clock even outside special chip support, so your SNES can tell you the correct time when you are using the menu and show accurate timestamps for modified files.  For certain chips, the following ROMs are required as of the latest firmware : dsp1.bin, dsp1b.bin, dsp2.bin, dsp3.bin, dsp4.bin, st0010.bin.  They used to be used by bsnes, but at some point bsnes/higan required the .rom files, which go from first byte to last instead of last to first, or the other way around.  The BS-X BIOS will also be required for running Bandai Satellaview games.  Excluding the Satellaview games, there are 57 licensed SNES cartridges that the SD2SNES cannot yet replace, most using the SA-1 or Super FX chips.  Support for at least the latter may come.  Sufami Turbo games will not work either.

Third, the SD2SNES will sort files and directories automatically if you set the appropriate option in the menu.  It loads games extremely quickly and will load games up to 16MB in size.  The SD card can be formatted for FAT16 or FAT32, and 64GB cards are supported.  You will need a third party partitioning tool if you are using modern Windows, which only formats FAT32 partitions up to 32GB.  Almost all SNES games are no more than 4MB.  The menu uses a high resolution mode to allow for longer file names.  If you leave the cursor on a file name, the complete name will scroll across the screen.  You can also see the CPU/PPU1/PPU2 revision in the main menu.

The latest official firmware is 0.1.7b.  This firmware officially adds cheat support.  There are in-game button combinations or hooks that will allow you to reset the game, return to the SD2SNES menu, kill the in-game cheat routines temporarily or permanently.  In the official release there are menu items to disable this.  I had to kill the in-game cheat routines in The Legend of Zelda: A Link to the Past otherwise the top of the screen would flicker when accessing the inventory.  The Super Star Wars games would not allow a proper pause with the cheat routines enabled.  There is an SPC player implemented in the SD2SNES firmware and it supports up to 6 Game Genie (ROM) cheat codes and 24 Pro Action Replay (RAM) cheat codes loaded from a text file.

I had no trouble loading a saved game in Ys III: Wanderers from Ys or Secret of Evermore and did not have trouble with Pilotwings as I did on my SNES PowerPak.  It also can automatically patch NTSC games to run on PAL consoles and vice versa to avoid the dreaded "Your game is not intended for this region" screens.  This allows you to run an unmodified Terranigma ROM, which was only released in English in PAL territories, without breaking out your hex editor or having to install a CIC bypass switch.

The boundary pushing feature of the SD2SNES is its support for the MSU-1 coprocessor.  The MSU-1 was originally implemented in software in bsnes/higan, and th SD2SNES includes a hardware version.  It essentially gives you access to 4GB (yes, I mean Gigabytes) of data for a ROM file.

The MSU-1 can play CD-Audio quality audio or Full Motion Video.  Several games like Super Mario World, The Legend of Zelda: A Link to the Past, Chrono Trigger and Mega Man X & X3 and Rock n' Roll Racing have been modified to play high quality versions of their original music.  Using these MSU-1 game hacks is pretty easy.  Once you patch the main ROM, you convert wav files into the pcm format and name your ROM file .msu and your audio files .pcm and stick them in the same folder.  Essentially this would give you a taste of what the SNES CD Addon would have sounded like had it been released.

In addition to the hacks, the LaserDisc game Road Blaster (a.k.a. Road Avengers) has been ported to run on the MSU-1 as Super Road Blaster.  This game weighs in at a hefty 790MB.  Like all Laserdisc games it relies on timed input from the player at designated points while the video plays.  I have played the port and the game is pretty responsive to the controller for a LaserDisc game.

One very important feature of the SD2SNES is that it does not degrade the video quality like the SNES PowerPak.  Similar to the jailbar issue of the NES PowerPak, the SNES PowerPak will severely amplify the white line of the SNES console.  It will also show more prominent jailbars with certain color patterns.  The opening screens for Final Fantasy III are excellent examples where almost all SNES consoles will show jailbars.  The SD2SNES does not seem to display any more interference than a regular cartridge.  It also may draw less power than the SNES PowerPak.

Currently, the SD2SNES can play nine games that the Super Everdrive cannot play.  While the SD2SNES is expensive, consider that a Mega Man X3 cartridge alone goes for almost its price.  You can play Mega Man X2 and X3 with this cartridge and will save on having to buy the originals.

Finally, the SD2SNES loads ROMs more quickly than the SNES EverDrive.  Loading a large game like Star Ocean took about 3 seconds.  Most SNES games are 4MB or less, so they will load instantaneously.  The Super EverDrive is no slouch here either if the game has already been written to the flash,  but the near instant loading times of the SD2SNES are really something to behold.

Super Everdrive

Finally a few words about the Super Everdrive, the produce developed by krikzz.  Krikzz also manufactures and sells the SD2SNES, but at a much higher price point.  The Super Everdrive is kind of like an SD2SNES Lite.  It supports SD cards up to 32GB.  The current version is the v2, which has a battery for retaining save games. The v2 also has support for an optional DSP module that can support DSP1-4.  The v1 required harvesting DSP1 chips from real cartridges.

The menu is pretty basic just like every other Krikzz product except for the EverDrive 64.  It does not use a high definition resolution mode.  It will automatically sort files and folders, but the operation will be slower as a result.  It supports eight Game Genie codes.  The cart will automatically create new files for battery backed up save games.  The maximum supported ROM size is 7MB, so it will not be able to play the uncompressed Star Ocean ROM, which is 12MB.

Other than the menu and the ROM size, the only real issue with this vs. the SNES PowerPak is the loading time for the games.  The SNES PowerPak and SD2SNES load games to RAM, the Super Everdrive loads games to flash memory.  Flash memory must be erased before it can be rewritten, and writing to flash memory takes a lot longer than writing to RAM.  Fortunately, the game previously written can be instantly booted like Krikzz's other products.  Writing a 512KB game like Super Mario World takes about 8 seconds.  Super Metroid, a 3MB game, took 34 seconds. This is according to Krikzz's demo video.

No comments: