Ikari has released a new firmware for the SD2Snes / FXPAK Pro Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Sorry for the delay, but it just escaped me to post it here.
Features added:
- First firmware release to support FXPAK Pro Rev. D
- [All] USB (usb2snes) support by RedGuy.
- [All] save state support (via USB/savestate2snes) by acmlm, total, Myria, RedGuy, FURiOUS, ikari_01
- [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] SGB 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 behaviour)
- [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.
Download:
source: sd2snes.de
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Sorry for the delay, but it just escaped me to post it here.
Features added:
- [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] SGB support by Redacted173.
- [All] favorite games list by freelancer42
Fixes:
- [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 behaviour)
- [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
Download:
source: sd2snes.de
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Changelog:
- 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
- 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
- Fix game video mode setting in SuperCIC pair mode.
Download:
source: sd2snes.de
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Changelog:
- [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.
Download:
source: sd2snes.de
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Cumulative Changelog:
- S-DD1 support by Magno! Big thanks to Magno who implemented it and RedGuy who helped integrate the core with the main firmware :)
- Support for sd2snes Mk.III (a.k.a. SD2SNES Pro). This works by adding a new set of support files for the new hardware so the firmware package actually contains two firmwares. This also makes it possible to swap the same card between old and new sd2sneses freely.
- Fixes:
- Fix memory corruption on BS-X loading. (Hopefully – I could not identify a cause and suspect bitstream file corruption. Please let me know if it works again – it does for me)
- S-RTC register state is REALLY reset when the console is reset, and also when loading a game.
- Actually boot on SD2SNES Pro.
- Known issues:
- Firmware seems to ignore Cx4 speed setting (at least since v1.9.0)
- sd2snes Pro menu still has the old design
- Mk.III specific source code changes currently aren’t contained in the GitHub repository. Please bear with me while I figure out a way to integrate them. ;)
Download:
source: sd2snes.de
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Changelog:
- SA-1 support by RedGuy! Big thanks to RedGuy again :) This was a really tight fit for the FPGA so there’s a little catch – MSU1 is not available for SA-1 games.
- Also from RedGuy comes partial SRAM detection for some known games (SuperFX & SA-1). This calculates a ROM CRC and chooses to monitor only specific regions in cartridge RAM for changes. This enables automatic saving without having to resort to periodic saving, reducing wear on the SD card.
- SNES CPU <-> PPU clock phase alignment. This is a long standing issue on a sub-CPU-cycle base inside the SNES. HDMA to certain registers can cause flickering sprite slabs to appear when CPU and PPU are out of phase after a cart-side reset (which does not reset the PPUs). This fixes the notorious flickering of characters with the giant frog attack in Chrono Trigger, sprites in Kirby Super Star, characters behind the text box in Star Ocean, and probably more. See https://github.com/RedGuyyyy/sd2snes/issues/6 for technical details.
- Added an option to always go back to menu on reset, regardless of whether it’s a short or long reset.
- LED brightness setting (16 levels)
- Added an option to choose whether you want to start a game with or without cheats enabled (of those that are marked as enabled in the YAML file). You can enable / disable them later using the L+R+Start+A / L+R+Start+B button combinations if you have in-game buttons enabled.
- Disable Satellaview emulation when a real Satellaview base unit is detected to avoid bus fighting and facilitate Satellaview development.
- System Information now shows the currently effective video mode (50 or 60 Hz).
- Fixes:
- Control signal edges are detected a bit earlier, improving stability on some consoles (Github Issues)
- Fix timing of auto region patching. This should solve cross-issues with Super Scope games because they rely on the same register that is also used to read the console region.
- Fix brightness patching / limiting for games that use HDMA to alter the brightness register. (e.g. Star Fox)
- Fix an occasional imaginary access cycle carried out by the FPGA after reconfiguration. This fixes lockups when loading games with dedicated FPGA files, i.e. SuperFX, SA-1, OBC-1.
- Fix SuperCIC pair mode entry for consoles with ≤ 3.072MHz CIC clock (notably GPM revisions). (Github Issue)
- S-RTC register state is reset when the console is reset.
Download:
source: sd2snes.de
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Changelog:
- SuperFX support by RedGuy! This is the duck’s guts. What an accomplishment. Big thanks to RedGuy!
- EXPERIMENTAL brightness patching for S-CPUN based consoles (1CHIP/Jr). The patching is comprised of two parts:
- 1CHIP transient fix – tries to alleviate some graphical issues with 1CHIP consoles where it reacts unfavorably to sudden changes to the brightness register. This fixes the shadow in Air Strike Patrol, warped scanlines in Rudra’s Treasure, and faded scanlines at the top of the screen on certain Capcom games when the console is equipped with a de-ghosting fix involving the replacement of the C11 capacitor.
- Brightness limit – can be used to limit brightness on consoles where the stock RGB levels are too high.
- NOTE: There are known problems with games that use DMA to set the brightness register. Notably Star Fox and some MSU1 video players. You should disable it if you intend to play those. For now I’m releasing it as is because I still think it can be useful (and I’ll be gone for two weeks and didn’t want to delay this release any further :-D)
- Added ExLoROM support (LoROM > 32Mbits)
- The In-game hook is now disabled by default.
- Touched up the menu a bit – dependent settings are printed in grey if the higher-level setting is disabled
- Changed the version numbering by eliminating the eternal leading zero. The last digit can now be used for small revisions or fixes.
Some minor fixes are still outstanding which I will address in a couple of weeks after I have returned from vacation.
Download:
source: sd2snes.de
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Changelog:
- 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.
Download:
source: sd2snes.de
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Download: SD2Snes Firmware v0.1.7 Beta/Preview Rev 4 (1396)
Full Changelog:
- Prevent software from using uninitialized DMA ch.0 transfer to corrupt the stack (fixes Nightmare Busters)
- Disable PPU region patching during the menu
- MSU1: Stop audio playback on reset (fixes static buzzing noise in games after soft-resetting out of an MSU1 game)
- Cx4: Add a switch for original/fast mode. “Original” mimics the Cx4 timing better (Megaman doesn’t die in MMX2 attract mode) whereas “Fast” uses a single CPU cycle for every instruction, improving frame rate when drawing polygons (rotating head in MMX2 intro).
- Hide dot files and directories again (Regression in 0.1.7).
- “Stealth Mode” for in-game hook memory area hides the memory region used by in-game routines from games. (Fixes Equinox, Lion King)
- In-game hooks are a bit less intrusive in terms of CPU time, hopefully reducing glitches a bit with problematic games.
- System Information screen shows file system usage on card.
- Slow down DSPx a bit to better match original speed (should have no noticeable effect)
- Font height is reduced by one pixel to increase readability (lines of text are more distinguishable). This has an effect on the font style so some might not like it…?
- Background is greyed out when a window is active in foreground
- Menu now uses the dynamic hierarchical menu system, with automatic calculation of window dimensions, etc. Not much of it can be seen at the moment due to the lack of menu entries.
- Experimental SRAM mapping for Cx4
- FPGA: adjust address sampling time for “end-of-cycle” events. Should help primarily with DSP1 glitches.
- MSU1: initial volume now adheres to the latest spec (initial volume = 0) so it must be initialized by software to the desired level. This actually breaks my own example player I will post an updated version of it shortly.
Read more…
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Full Changelog:
A minor update, mainly in the name of stability. This hopefully eliminates glitches unrelated to the in-game buttons on some consoles, e.g. Seiken Densetsu 3 rebooting intermittently or graphical glitches in DKC 2+3, that had been introduced with v0.1.7 preview 1.
- Reintroduce more aggressive filtering for control and address lines from the SNES, previously removed after v0.1.6
- Unify and centralize signal edge detection for all sub-units (e.g. S-RTC, MSU1, BSX, DSP etc.) instead of each unit having its own (slightly different) edge detection.
- In-game controller scan has become slightly more time effective under certain circumstances (Auto Joypad Read enabled but no NMIs).
- In-game hooks are now disabled for 10 seconds after loading or resetting a game to help certain games get past their boot screens. This will be configurable in the final.
- Reconfigure the FPGA only when necessary on warm reset, speeding up “reset to sd2snes menu” by a couple hundred milliseconds.
- Fix an MMIO access priority bug for DSPx.
- Fix BS-X ROM detection for games with 2 startups left.
- Fix directory browsing being broken after setting the clock.
Download: SD2Snes Firmware v0.1.7 Beta/Preview Rev 3 (1423)
source: sd2snes.de
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Full Changelog:
It addresses some issues reported with v0.1.7 preview (and some others).
- Satellaview works again. BSX alters the original interrupt vectors at run time. The original interrupt vectors are now saved per hook call, not only once when loading the ROM.
- In game buttons now work with MSU1, too.
- Automatic hook method choosing: NMI is default but switched to IRQ when no NMIs are triggered. If both occur, NMI has priority. This should enable the in-game buttons for games that previously did nothing.
- The hook routine saves some CPU time when auto joypad read is enabled by the game – it will just reuse the result instead of doing its own controller scanning. Also the controller is now only scanned every 8 frames. This helps alleviate some glitches, e.g. Secret of Mana now starts up correctly. There are still some glitches left which can’t be eliminated fully.
- Auto region patching works again without having to delete the sd2snes.cfg.
- BSX now emulates Type 1 memory packs instead of Type 2. Apparently the BSX BIOS is buggy with Type 2 packs when they contain HiROM games that are supposed to be run from PSRAM. So, at least Bomberman works now, and probably others too.
- Fixed BSX PSRAM shadowing for HiROM.
- Files and directories with “hidden” or “system” attributes are now actually hidden from the file browser.
Download: SD2Snes Firmware v0.1.7 Beta/Preview Rev 2 (1484)
source: sd2snes.de
Ikari has released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom). The upgrade instructions can be found here.
Full Changelog:
- In-game button combinations are in effect. See the table below for the key mapping. Note that some games show glitches with the in-game functions in place. I added an additional feature to temporarily disable them in case of game glitches (e.g. Secret of Mana hangs at the Squaresoft logo, displaying only garbage). I’m not entirely happy with the button choice but it will do for now. ;)
- LED blink codes for file system errors – e.g. in case the SRM file cannot be saved this will tell you that something’s gone wrong. The blink codes are yet to be listed.
- Also the sd2snes will retry saving until it works so you have the chance to swap out the SD Card. In that case the directory structure must be present where the sd2snes expects to save the file.
- “Screen saver” – in the menu, the screen is darkened after some idle time to reduce wear on CRT and plasma screens.
- Memory sharing between SNES and the sd2snes CPU is greatly simplified (The FSM is reduced to only 5 states instead of 18) and timing is more relaxed. This should help with stability on a wider range of consoles.
- On-the-fly file browsing. Also shows a little “loading…” window when loading directories/files.
- Windows are now blue so they stick out better in front of yellow directory listings.
- Cx4 data ROM is now embedded in the FPGA configuration – no more need for the external file cx4.bin.
- Initial Satellaview clock is back to 18:00:00 from 18:05:30.
- SD cards can be hotswapped. Currently there is no automatic refresh of the file list so tapping reset on the SNES or changing the directory is necessary to get the new contents.
- The status line is moved upward a few pixels so hopefully it doesn’t get eaten by overscan.
- Navigation: When scrolling page-wise with the right D-pad arrow, the end of the file list is now aligned to the bottom of the screen.
- Navigation: The shoulder buttons can be used to jump to the beginning/end of a directory listing.
- Bugfix: some compatibility issues with a number of games. (Super Play Action Football (S-RTC interference), GP1 Part II (WRAM initialization), Human Grand Prix (mapper detection bug))
- Bugfix: properly initialize FPGA state machine (on some consoles the menu failed to start at all)
- v0.1.7 final will contain menu items for various configuration settings and a cheat interface.
In-game button mappings:
- L+R+Select+Start = Reset game
- L+R+Select+X = Reset to sd2snes menu
- L+R+Start+B = Disable cheats
- L+R+Start+A = Enable cheats
- L+R+Start+Y = Kill in-game routines (in case they interfere with game operation).
- L+R+Start+X = Temporarily kill in-game routines (~10 seconds – if you need to get past a glitch but don’t want to lose in-game buttons)
Download: SD2Snes Firmware v0.1.7 Beta/Preview (1355)
source: sd2snes.de
SD2Snes Firmware v0.1.7 status update
Directly from the SD2Snes Homepage:
Here’s what I’ve been working on in the meantime:
- More refactorings of the menu ROM. This will facilitate further UI development (sub-menus etc.)
- NMI+IRQ hook routine – these are required for WRAM cheats and in-game reset. The latter is in working state as of now. I’d like some input on which key combinations would be desirable ;-) (some conflicts can arise with existing SNES mods, see below). There is now a dedicated memory area in FPGA block RAM mapped to $2a00-$2aff which is used for the hook routine and command exchange between a running game and the sd2snes main CPU.
- Game loading handshake between SNES menu and sd2snes CPU – this is a technical prerequisite for error handling (such as missing supplementary files, write-protected SD Card, etc.)
- LED blink codes for file system errors – e.g. in case the SRM file cannot be saved this will tell you that something’s gone wrong. Also the sd2snes will retry saving until it works so you have the chance to swap out the SD Card etc.
- “Screen saver” – the screen is darkened after some idle time to reduce wear on CRT and plasma screens.
- Memory sharing between SNES and the sd2snes CPU is greatly simplified (The FSM is reduced to only 5 states instead of 18) and timing is more relaxed. This should help with stability on a wider range of consoles.
- Fixed some compatibility issues with a number of games. (Super Play Action Football (S-RTC interference), GP1 Part II (WRAM initialization), Human Grand Prix (mapper detection bug))
To do for the upcoming release:
- Cheat management – technical prerequisites for cheats (ROM+WRAM) are met, now to code the GUI for it…
- Finish on-the-fly file browsing
- Decide on key combinations for in-game functions. (en/disable cheats, kill cheat engine, reset game, reset to menu)
About key combinations:
I wanted to use combinations that don’t interfere with my SNES IGR mod. This mod uses L+R+Select in combination with Start, A, B, X, or Y to perform different operations. In that scenario I still had the four directional buttons left to put other functions on. However :D With borti4938′s release of the feature-enriched uIGR these are now taken.
So far this is my new proposal for key combinations (UPDATED 2014-06-24):
- L+R+Select+Start = Reset game
- L+R+Select+X = Reset to sd2snes menu
- L+R+Start+B = Kill in-game routines (in case they interfere with game operation).
- L+R+Start+A = Disable cheats
- L+R+Start+Y = Enable cheats
Updated to reflect some of your suggestions. Already looks better to me. I steered clear of L+R+Start+X because it’s similar to L+R+Select+X. ;)
source: sd2snes.de
It was released a new firmware for the SD2Snes Flash Cartridge (Super Nintendo/Famicom) by Ikari. The upgrade instructions can be found here.
Changelog:
Added:
- 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
- 0000-7fff only. Fixes saving in some games, e.g. Ys III Wanderers from Ys.
Download: SD2Snes Firmware v0.1.6 (1464)
source: sd2snes.de
Tiny status update of the SD2Snes Cartridge from Ikari
Directly from the SD2Snes Homepage:
So I’ve been getting a lot of questions pertaining to current progress, understandably. ;)
SuperFX is still crawling along, I’ve gotten a basic CPU core control unit and partial instruction decoder to work which can run test code in simulation fine, albeit limited. But it doesn’t deal with the different memory delays, stalling and parallelism yet; also the SNES interface, plot logic and other supplementary stuff are still missing.
The SuperFX uses pipelining which is a thing I haven’t fully understood yet, so that’s going to take some brain work and likely multiple complete rewrites of the CPU core. I’d rather not give an estimated time of completion for that at the moment… ;) Implementing pipelining properly is important because game code is laid out to take advantage of it and will not run correctly otherwise.
Besides the SuperFX, kogami has discovered a BS memory mapping bug, a regression that snuck into firmware 0.1.5 where I rewrote the BS memory mapping based on my own RE efforts. Also some graphical corruption has been found when using the “Run previous game” feature (Start button). I expect to make a bug fix / minor release addressing these issues (possibly others) in a couple of weeks.
source: sd2snes.de
Recent Comments