Menus | Firmware | Enhancement Chips | Release Notes
What is the difference between the FXPAK Pro & SD2SNES Pro?
There currently is no difference between the products outside of the name. The SD2SNES Pro was re-branded the FXPAK Pro on January 1, 2020 due to a trademark conflict.
FXPAK Pro / SD2SNES Pro Menus
NOTICE: Your firmware version must match the menu version, otherwise it will not load the menu properly.
To change the menu of your SD2SNES flash cart:
- Navigate into sd2snes/ on your SD card.
- Rename m3nu.bin to m3nu.bak.
- If you run into any issues updating your menu, just delete the problem m3nu.bin file and rename m3nu.bak back to m3nu.bin.
- Download one of the menu files below to your sd2snes/ directory on your SD card.
FXPAK Pro |
FXPAK Pro |
FXPAK Pro |
FXPAK Pro |
FXPAK Pro |
FXPAK Pro |
FXPAK Pro |
FXPAK Pro |
SD2SNES Pro |
SD2SNES Pro |
SD2SNES Pro |
SD2SNES Pro |
SD2SNES Pro |
SD2SNES Pro |
SD2SNES Pro |
SD2SNES Pro |
Firmware
Version | Compatibility | Release Date | Download |
1.11.0 | SD2SNES / SD2SNES Pro / FXPAK Pro | 01/28/2023 | [DOWNLOAD] |
1.10.3 | SD2SNES / SD2SNES Pro / FXPAK Pro | 04/18/2019 | [DOWNLOAD] |
1.10.2 | SD2SNES / SD2SNES Pro / FXPAK Pro | 04/03/2019 | [DOWNLOAD] |
1.10.1 | SD2SNES / SD2SNES Pro / FXPAK Pro | 03/13/2019 | [DOWNLOAD] |
1.10.0 | SD2SNES / |
02/28/2019 | [DOWNLOAD] |
1.9.0 | SD2SNES | 12/17/2018 | [DOWNLOAD] |
1.8.0 | SD2SNES | 06/29/2018 | [DOWNLOAD] |
0.1.7e | SD2SNES | 05/06/2017 | [DOWNLOAD] |
0.1.7d | SD2SNES | 10/05/2016 | [DOWNLOAD] |
0.1.7c | SD2SNES | 08/17/2016 | [DOWNLOAD] |
0.1.7b | SD2SNES | 04/26/2016 | [DOWNLOAD] |
0.1.7a | SD2SNES | 04/17/2016 | [DOWNLOAD] |
0.1.7 | SD2SNES | 04/15/2016 | [DOWNLOAD] |
0.1.6 | SD2SNES | 03/18/2014 | [DOWNLOAD] |
0.1.5 | SD2SNES | 11/18/2012 | [DOWNLOAD] |
0.1.4a | SD2SNES | 07/15/2012 | [DOWNLOAD] |
0.1.4 | SD2SNES | 07/09/2012 | [DOWNLOAD] |
0.1.3 | SD2SNES | 02/29/2012 | [DOWNLOAD] |
0.1.2 | SD2SNES | 01/15/2012 | [DOWNLOAD] |
0.1.1a | SD2SNES | 01/01/2012 | [DOWNLOAD] |
0.1.1 | SD2SNES | 12/15/2011 | [DOWNLOAD] |
Enhancement Chip Files
Looking for a list of Enhancement Chip games? Check out this Wikipedia Article. Stone Age Gamer does not provide these files.
Chip | Notes | |
NOTE: If you do not see a enhancement chip listed and its a supported chip it is because its functionality is built into the firmware and no other files are required. | ||
DSP-1 (dsp1.bin) | Drop into root "sd2snes" folder to add DSP-1 support. | |
DSP-1b (dsp1b.bin) | Drop into root "sd2snes" folder to add DSP-1b support. | |
DSP-2 (dsp2.bin) | Drop into root "sd2snes" folder to add DSP-2 support. | |
DSP-3 (dsp3.bin) | Drop into root "sd2snes" folder to add DSP-3 support. | |
DSP-4 (dsp4.bin) | Drop into root "sd2snes" folder to add DSP-4 support. | |
Cx4 (cx4.bin) | Drop into root "sd2snes" folder to add Cx4 support. |
Release Notes:
v1.11.0
- NEW FEATURES:
- First firmware release to support FXPAK Pro Rev. D
- [All] USB (usb2snes) support by RedGuy
- [All] save state support (via USB/savestate2snes) by RedGuy
- [All] stand-alone save state features by FURiOUS
- [All] some compatibility improvements and optimizations for stand-alone save states by ikari_01
- Add support for YAML list items for multiple savestate_fixes entries per game
- Add support for simple bitwise operations on savestate_fixes patches
- Add support for verbatim code execution on savestate_fixes patches – notably fixes Star Ocean (decompressed) save states (however the save state hook still needs CPU time optimization to prevent music glitches in Star Ocean.)
- Add IRQ support on top of NMI for the save state hook – this enables save states on Out Of This World and possibly other games that only use IRQ. Also fixes controller input capture on a number of games so the game-specific input hacks could be eliminated.
- Moved save state code outside of the USB hook area to make room for USB hook execution.
- [All] Super Game Boy support by Redacted173.
- [All] favorite games list by freelancer42
- FIXES:
- [All] Fixed savestates crashing occasionally when loading (and sometimes saving)
- [All] Fixed Star Fox locking up during sortie sequence when in-game hooks are enabled
- [All] Updated FURiOUS’s Savestates Readme to reflect changes pertaining to In-game hook
- [All] Fixed data caching bug in MSU1 data extension which could cause wrong data to be streamed
- [All] Savestates: do not try to capture data that is already in cartridge space anyway (e.g. SRAM). Fixes text distortion in Near’s Bahamut Lagoon translation when loading a state.
- [All] Fixed YAML config parser to support comment signs after list start items
- [All] Fixed SNES open-bus contamination (fixes sprite flickering in Near’s Bahamut Lagoon translation, certain speed runs that rely on open bus behavior)
- [All] (hopefully) fixed rapid data line toggling sometimes resulting in address line glitches, causing random crashes in extreme cases, and occasional garbled graphics on SMRPG among others
- [All] Fixed data integrity problems when loading BSX games
- KNOWN ISSUES:
- Due to integration of the savestate handler into the in-game hook, the SNES CPU cycle cost for the in-game hook has increased. This reintroduces some issues when in-game hook+savestates are enabled, such as a corrupted Equip menu in Final Fantasy III/VI. I am planning to do an overhaul of the savestate code which will address this issue as well.
- When in-game savestates are enabled and set to the default button combination, pushing the buttons to temporarily or permanently disable the in-game hook will result in a crash. This happens due to overlap with the savestate button combination.
- When in-game savestates are enabled and the “load state” button combination is pressed, the handler will try to load a state even if no state exists yet for the current game. This will lead to a crash and sometimes results in a still image being displayed from a previously played game’s savestate.
- FOR USAGE INFORMATION PLEASE VISIT: https://sd2snes.de/blog/archives/1261
v1.10.3
- fixes:
- [Mk2] Revert S-DD1 bitfile to earlier build which happens to less expose a timing hazard. This will need further examination for a proper fix. Fixes severe glitches with S-DD1
- [All] Fix swapped logic terms in SA-1 and SuperFX RAM write cycles. Fixes severe glitches on SA-1 and SuperFX on Mk.II units; The bug was also present in the Pro firmware but didn't seem to have much of an effect
- [All] Fix game video mode setting in SuperCIC pair mode
v1.10.2
- fixes:
- [Pro] fix wrong data ROM size on uPD96050 core -> F1 ROC II track is shown properly.
- [Pro] fix S-DD1 address mirroring -> Star Ocean works
- [Pro] correct Cx4 core speed from 96MHz to 80MHz
- [All] apply volume boost after FPGA reconfiguration (fixes MSU1 volume boost on Cx4, OBC1, SuperFX, SA-1, S-DD1)
- [All] fix S-DD1 writes going to the wrong address on concurrent MCU accesses (saving not working in Star Ocean)
- [All] avoid potential data corruption on MCU writes (e.g. SPC loading)
- [All] Workaround for Super Nt not booting when CIC enters pair mode successfully
v1.10.1
-
fix bug preventing boot on SD2SNES Mk.III... (aka Pro)
v1.10.0
- WARNING! The SD2SNES Pro was supposed to be compatible with this version, but has boot problems. Please use a newer version.
- add S-DD1 support by magno
- initial firmware release for sd2snes Mk.III ("sd2snes pro")
- fixes:
- fix memory corruption on BS-X loading
- reset S-RTC read state on all load and reset occasions
v1.9.0
- add SA-1 support by RedGuy
- add partial SRAM change detection for known games (SuperFX/SA-1) by RedGuy this enables sensible autosaving for games that use part SRAM as work RAM, without having to resort to periodic saving. I added some more games to the known CRC list. Note that this feature performs full ROM CRC calculation after loading and running the ROM so firmware is unresponsive to in-game hooks and resetting for a couple of seconds after the game has started. I have some ideas for optimization.
- add option to always go back to menu when resetting
- add LED brightness setting
- add an option to start out with cheats enabled or disabled
- disable Satellaview emulation when a real Satellaview unit is present to
- avoid conflicts and facilitate Satellaview development
- add SNES CPU PPU clock phase alignment correction on reset (fixes flickering sprite slabs e.g. giant Frog in Chrono Trigger, sprites in Kirby Super Star, Star Ocean...)
- show current effective video mode (50/60Hz) in System Information
- fixes:
- earlier signal edge detection, improving stability on some consoles
- fix timing of auto region patching
- fix brightness patching for games that use HDMA to set brightness/blanking
- fix an occasional lockup when loading a game that uses OBC-1/SuperFX/SA-1
- fix SuperCIC pair mode entry for consoles with <= 3.072MHz CIC clock
- reset S-RTC register state on reset
v1.8.0
- add SuperFX support by RedGuy (v10)
- add support for ExLoROM (LoROM > 32 Mbits)
- disable in-game hooks by default
- add brightness patching to correct RGB output levels on 1CHIP consoles
- add mid-screen brightness change fixes for 1CHIP consoles:
- avoid change of brightness (bits 0-3) when forced blanking is used
- on bigger brightness change steps, substitute brightness 0
- less sync distortion in Rudra's Treasure text boxes
- visible shadow in A.S.P. Air Strike Patrol
- known issue: HDMA writes are not handled correctly
- some menu improvements:
- Menu entries can now be printed in grey when some condition is (not) met. A function call is used to determine the status with the carry flag as a boolean return value. Disabled menu entries can still be changed for when they become active again.
- Also a change hook function can now be used in the menu structure. It is called whenever the value is changed during setting, e.g. to immediately reflect / preview the setting made.
- change versioning to eliminate the useless "v0." and gain a meaningful subversion at the end
v0.1.7e
- fix critical DAC timing quirk causing audio distortion with MSU1
- fix clock glitch on SD card access leading to audio/video distortion with MSU1 in rare cases
- properly map SRAM to banks f0-ff instead of f0-fd in Mode 20 ("LoROM") memory map add support for headered bsxbios.bin
- Slight SD Card read performance optimization for MSU1 (try and avoid unaligned reads)
- Change initial SRAM fill value (by devinacker)
- fixes Ken Griffey Jr., Ou-chan, possibly other games that handle checksums badly
- Always start game on PPU2 field 0
- Theoretical compatibility improvement
v0.1.7d
- reworked the in-game hook code again, squeezing out a couple more CPU cycles - compatibility improved further
- BS-X: new bsx page file by LuigiBlood!
- contains a proper channel map, notably fixes Fuurai no Shiren: Surara o
- sukue and most likely more games
- enables a great number of town features
- BS-X: better detection for script-type ROMs (e.g. various magazines)
- Cx4 SKIP instruction timing sped up a bit. Core felt a bit too slow. (this is a makeshift "fix" until I implement the proper Cx4 instruction timing I recently figured out)
- fixes:
- fixed occasional black screen after soft reset (L+R+Select+Start)
- in-game hook memory area visibility quirks fixed in various situations, notably fixes BS Kirby no Omochabako: Pinball
- BS-X: fix PSRAM corruption on SNES WRAM writes, fixes a number of games, notably BS Kirby no Omochabako: Pinball (tough one)
- PPU2 H/V count odd/even read flag is reset on ROM load, this fixes games that depend on it when run after games that leave it in a dirty state - notably audio glitches and freezes in Super Punch-Out when run after Fuurai no Shiren.
- SPC Player: Fixed a long-standing transfer corruption bug that occurred because the original bulk transfer routine didn't account for CPU stall by HDMA (which is abundant in the sd2snes menu). This fixes occasionally missing instruments, corrupted samples etc.
- fixed an occasional deadlock on bootup where the menu would hang at the "Loading..." screen.
- fixed hard freeze when selecting a file immediately after disabling the "Hide file extensions" option
- fixed persistent hard freeze in recent games list handling when running games with long path names (> ~120 characters)
- revert DAC I2S timing to pre-v0.1.7c behaviour, hopefully reducing audio glitches for sd2snes Rev.G units
- fixed corrupted file list display after playing an SPC file with a scrolled file name
- cosmetic changes:
- "Loading" window is replaced by status bar notification to be less disruptive with very short load times
- configuration settings no longer have the wrong color when changed
v0.1.7c
- reworked the in-game hook code, with more help from the FPGA, to significantly reduce CPU footprint. This improves hook compatibility with a variety of games.
- in-game hook: avoid disruption of manual controller reads (fixes controls in Super Star Wars games)
- new option: "Hide file extensions" (effective after next directory change)
- do not silently fail to load saved games when the sd2snes/saves folder does not exist (create the folder instead)
- do not silently fail to save cheat files when the sd2snes/cheats folder does not exist (create the folder instead)
- Cx4 core now runs at exactly 20Mhz
- fixes:
- MSU1: avoid missed control register status changes on rapid rewrites (fixes FF3 Dancing Mad, Zelda FMV missing audio)
- fix $213f register patch timing (hopefully)
- fix DSP1 header detection (fixes Ballz 3D JPN)
- add reset hook to boot games on start of frame only (fixes Boogerman PAL)
- clear entire SPC700 RAM (do not spare IPL area) - fixes echo artifacts in many games
- minor cosmetic changes
- resize SPC player loading window
- prevent flickering letters on System Information screen
v0.1.7b
- sd2snes folder is always hidden again
- fixes:
- fix garbled time on initial clock setting (new unit or battery replacement)
- fix BS-X not booting/booting incorrectly after soft reset
- fix OBC1 being always disabled
- fix firmware crash when saving after using the serial command line
v0.1.7a
- fixes:
- fix deadlock on MCU-SNES negotiation due to truncated bootstrap routine (fixes firmware lockup on booting Zelda 3 after soft-reset)
- fix garbled default date for BS-X date+time (date record was backwards)
- fix incorrect saving of "Auto Region Patch" setting
v0.1.7
- cheat support (YML files) with WRAM capability
- reworked configuration file (plain-text YML)
- in-game buttons
- L+R+Select+Start: reset game
- L+R+Select+X : reset to sd2snes menu
- L+R+Start+Y : kill in-game buttons (for compatibility issues)
- L+R+Start+X : kill in-game buttons for 10 seconds
- L+R+Start+B : disable cheats
- L+R+Start+A : enable cheats
- CONFIGURATION MENU:
- date+time
- BS-X time can be toggled between real-time/custom
- custom date+time for Satellaview
- toggle screen dimming
- toggle directory sorting (speed-up on pre-sorted cards)
- MSU1 volume boost
- Cx4 DSP core speed
- in-game functions (buttons, WRAM cheats, initial holdoff "stealth")
- auto region patching
- video mode settings for SuperCIC consoles
- file browser:
- L+R can be used to move to start/end of directory listing
- end of directory listing is aligned so the last entry is at bottom of screen
- Last played game is always moved to top of list of recent games
- on-the-fly directory browsing, no more lengthy database creation
- "Loading" window
- do not show dotfiles, hidden and system files in browser
- compatibility:
- better support for part-sized BSX dumps
- fix BSX detection for games with 2 startups left
- emulate Type1 BSX memory pack instead of Type2 (Super Bomberman 2) (BSX BIOS itself crashes on Type2 packs with "copy to PSRAM" flag)
- initialize APU RAM to support ("fix") buggy sound routine of Soul Blader
- properly de-init DMA to $ff (fix Pocky&Rocky US, SGnG, SSF2)
- initialize SaveRAM before running the game so we don't miss very early saves
- enable S-RTC only when needed (fix Super Play Action Football)
- initialize WRAM (fix GP1 Part II)
- fix wrong offsets in mapper detection (fix Human Grand Prix)
- experimental SRAM mapping for Cx4 (for ROM hacks)
- sample SNES data to obtain valid data on end-of-cycle events (fix driver/track glitches in Super Mario Kart)
- remove faulty multicycle constraints from Cx4(fix random "register file error" messages)
- MSU1 enhancements:
- MSU1 volume boost
- MSU1 resume feature implemented (Thanks to Michaël Larouche!)
- interpolation filter to reduce aliasing, resulting in cleaner sound
- fixed DC offset where volume is applied to the waveform (eliminate clicking/humming on volume change/fade)
- changed MSU1 audio playback rate to exactly 44100Hz to match bsnes/higan implementation
- Ultra16 awareness (mostly thanks to borti4938!):
- show Ultra16 serial number and autoboot setting in the System Information
- support SPC player warm-boot on Ultra16 consoles
- prolong soft reset on Ultra16 consoles to prevent accidental entry of Ultra16 menu
- disable auto region patching on Ultra16 consoles to prevent bus conflicts
- misc:
- rework GUI code (backbuffer stack, reentrant menus, etc.)
- simpler, more compatible memory sharing FSM
- cosmetic changes, make the GUI a bit more spiffy
- only reconfigure FPGA on demand (faster soft reset)
- on-the-fly SD card swapping supported (re-init on demand)
- Cx4 table ROM embedded in FPGA configuration (deprecate cx4.bin)
- new FatFS version
- moved MCU command interface from "ROM" to FPGA block RAM
- SRM files are now saved under "sd2snes/saves/.srm". existing SRM files are moved during save.
- fixes:
- fix menu bug where time is displayed incorrectly (thanks to devinacker!)
- fix occasional FPGA lockup on power-up
- properly initialize MSU1 state
- automatically remove missing ROM files from "recent games" list (Thanks to borti4938!)
- fix feature flag error where auto region patch was always on for Cx4
v0.1.6
- OBC1 support (Metal Combat: Falcon's Revenge works)
- menu now displays the 10 most recently played games instead of one
- hidden and system files are now ignored in the file browser
- some minor internal changes for convenience of development
- Fixes:
- partial-size BS dumps should now load correctly
- fixed a PSRAM mapping bug in the new BS-X mapping logic that caused graphical corruption on some games (notably Treasure Conflix garbled sprites)
- SRAM mapping for LoROM <=16Mbits now uses the entire bank instead of 0000-7fff only. Fixes saving in some games, e.g. Ys III Wanderers from Ys
v0.1.5
- Sort directories by entire file name instead of first 20 characters only
- Correctly map SRAM larger than 8192 bytes (HiROM) / 32768 bytes (LoROM) (fixes Dezaemon, Ongaku Tsukuuru - Kanadeeru)
- SPC player: fix soft fade-in (first note cut off) on S-APU consoles (1CHIP / some Jr.)
- More accurate BS-X memory map
- Ignore input from non-standard controllers (Super Scope, Mouse etc.)
- Fixes:
- minor memory access timing tweaks (should help with occasional glitches on some systems)
v0.1.4a
- Fix DMA initialization in the menu (could cause sprite corruption in some games)
v0.1.4
- SPC Player (contributed by necronomfive/blargg)
- System Information screen now shows CPU/PPU revision (contributed by necronomfive)
- Satellaview: basic data transmission packet support (makes some more games boot, thanks to LuigiBlood for assistance and sample data packets)
- Number of supported files increased to 50000 per card / 16380 per directory
- Slight speedup of menu text rendering
- Reduce load time of menu
- Adjust Cx4 timing to be more faithful (Mega Man now defeats the boss in attract mode in Mega Man X2)
- adapt ROM mirroring size to file size if header information is invalid (fixes Super Noah's Ark 3D, possibly others)
- MSU1 interface changes suggested by byuu:
- Data offset 0 and audio track 0 are automatically requested on reset. This causes the busy flags to become 0 shortly after reset/startup.
- $2000 bit 3 is now "audio error", becomes valid after "audio busy" -> 0 set when an error occurred while preparing playback of the requested audio track write LED stays on when SRAM content changes constantly
- Fixes:
- fix empty save files on FAT16 / incorrect free cluster count on FAT32
- correct directory sorting (force parent directory at top of list)
- fix text corruption when entering a directory with a scrollable name
- fix files/dirs count in system information
- make 'sd2snes' directory hiding case-insensitive
- improve DAC I²S timing
- fix occasional palette corruption in menu
- fix SD clock glitch on ROM loading (occasional glitches/crashes)
- fix memory write timing on ROM loading (occasional glitches/crashes)
- fix SPI timing (ROMs not loading; System Information not working)
- properly synchronize SNES control signals (occasional glitches/crashes)
- fix floating IRQ output (occasional glitches/slowdowns)
v0.1.3
- Updated logo gfx with new version from klaptra
- Updated font to distinguish between 1 and I
- Menu layout adjusted to move status line up by 4 scanlines
- Run previously loaded game by pressing Start in the menu
- Auto-scroll file names that do not fit the screen
- SD access time measurement on System Information screen (takes a while!)
- Cx4 memory map: mirror ROM to 40-7e/c0-ff (fixes MMX3 Zero patch)
- Some FPGA configuration error detection (mainly useful for hardware diag)
- Fixes:
- FPGA-side SD clock pullup (increases reliability with some cards)
v0.1.2
- New menu entry: "System Information"
- Auto region override (eliminate "This game pak is not designed..." messages)
- Improved mapper detection (fixes Batman vs. Joker and many PD ROMs)
- Improved data streaming performance (should reduce MSU1 errors with some cards)
- A and B buttons swapped in menu to match common key mappings
- Fixes:
- MSU1: Stop audio playback on end of audio file
v0.1.1a
- Fixes:
- SuperCIC pair mode was erroneously enabled in firmware binary
- SNES menu crashed on empty database
v0.1.1
- initial public release
Manuals:
-none-
Other Resources:
-none-