Firmware v0.1.7 preview
NOTE: Satellaview is broken at the moment because it doesn’t work with the NMI vector patching. I’m working on it.
At last here’s the v0.1.7 preview. Cx4 blew up in my face when I tried to insert the cheat/in-game hook engine and ended up taking days to get working. :|
Here’s what’s new (mostly copied from the status post):
- 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. ;)
- When running a game from the recent games list, the selected entry is now moved to top of the list.
- 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.
Please let me know if any games are broken that worked before, even with the in-game functions disabled.
In-game button mappings:
|L+R+Select+X||Reset to sd2snes menu|
|L+R+Start+Y||Permanently disable in-game hooks (in case they interfere with game operation).|
|L+R+Start+X||Temporarily disable in-game hooks (~10 seconds - if you need to get past a glitch but don't want to lose in-game buttons)|
(First Reply :D)
Awsome! Thanks alot ikari :-)
Great work on that :D Just tested the Button combinations so far and works great for now (just 5 min of testing) ^^ Will let you know if I find anything…
BTW: First reply xD I have seen the preview coming up on GitHub
nooo – not the first one… However – you forgot to mention the new sorting strategy of the last 10 games played which is much better than the one in v0.1.6
Whoops, forgot about that already. I added it in the list, thanks ;)
That update screwed up everything. My screen has a bunch of garbage on it now with the menu in the background; reverting to 1.6.
Fixed – I was using one of the custom menu.bin files, replaced it with file in zip – all is good now.
I will test it and leave reply if I find someting
thank you so much ikari
Dude, this is sooo Cool!!
My Rom of Star Ocean doesn’t seem to work. I had just gotten it to work with v0.1.6 using that (SDD-1 hack) patch. That sucks.
Indeed :O Apparently the mapper is detected incorrectly. I’ll take care of it.
Yup, it’s collateral damage. I have started building in detection for unsupported game types (so I can display a warning message). In the process, the Star Ocean hack is detected as a genuine S-DD1 game and the mapper ID is not set. I’ll post a fix shortly.
Good Job Ken I will say the same !
Anyway Ikari, this preview is a really great improvement
I fixed the mapper detection just now. Please re-download the firmware. ;)
Amazing work! So far everything is great. Thanks again and I look forward to future updates.
(>’-‘)> <('-'<) ^(' – ')^ <('-'’-‘)>
Suggestion for hot-swap saving. If directory structure is not found on the new as in the previous card, revert to saving in the root of the card.
It could be nice to get a “On-the-fly file browsing” enable/disable option in a future release because it take a time to each time open a folder when you have a lots of roms Inside ( especially when you didn’t add new roms frequently like me ^_^! )
Everything else is pure happiness …
Thank you Ikari!
Awesome Ikari! Really great work, I liked it when the sd2snes folder was hidden as I already have like 6 folders on the root of the SD card.
Nevermind, I am guessing this is due to the fact that it does on the fly browsing now instead of writing the folders do a database.
i got some characters issues with this menu
i can’t navigate, because it’s some random letters
if i put your menu.bin, everything is fine :)
i will test the update firmware for star ocean
Renaud, the menu changed a little bit so Ramsis’ menus aren’t compatible anymore.
We can only hope for now that Ramsis would update them for the new 1.7 format ^^;
… I’m pretty much occupied by my own SNES project(s) right now, but I’ll see what I can do (as always). ^^
Great, thank you!
The previously hidden folders are appearing now.
You probably have to manually mark them as hidden (if you want to) using your computer. ;)
Indeed, I forgot to mention that, sorry. From now I’m leaving it up to the user to hide certain directories, by setting the System or Hidden attribute. After all some people wanted to store their ROMs in a subdirectory of the sd2snes folder, which was then unreachable.
However I just noticed that I actually neglected to add the filtering to the directory scanning routine. So at the moment all files and directories are shown regardless of their attributes… That will definitely be in place for the final. I might even update the preview download shortly.
Ikari would be nice if you could use the cheats as .cht, .pat this would facilitate the use of the lot and have the cheats Mega Everdrive and put the codes it could never do any more work on emulators and the codes work.
I’m planning to support (read&write) the CHT file format as used by ZSNES and snes9x. :)
That would be so awesome ikari!
Great work, ikari! :D
But is it just me or does the console reset/IRQ hooking stuff only work in a few selected games? It doesn’t work for me in Star Ocean (96 Mbit, tested with the fixed firmware), nor in any MSU-enhanced game.
Also, I’d suggest adding an option to completely disable the new IRQ hooking routines from within the menu (which would allow me to watch Secret of Mana’s gorgeous opening without any hectical button mashing). :D
True, MSU games use a special handling loop in the firmware that doesn’t interpret the in game commands yet. On top of that, as it hooks into the VBlank NMI, it will only work with games that have the VBlank NMI enabled – which is virtually every game – except Star Ocean, at least for the 96MBit hack. Instead it uses a V-Count IRQ somewhere mid-screen (line 48 or something). Actually I have the firmware prepared to hook into IRQs as well but it’s currently disabled (and it will remain disabled by default) because it breaks some games quite badly… Read more »
Noticed that with 0.1.7 preview, no MSU-enhanced games are compatible with the reset/processing button combos. Tried it on Zelda 3 and SM:Oddysey
It looks like Tales of phantasia can’t be stopped with L+R+SELECT+X or L+R+SELECT+START
I tried it on a translate rom..
Tales of Phantasia doesn’t use the NMI either, it seems – only the IRQ. I might have to devise an auto fallback scheme for cases like that… Seiken Densetsu 3 has the same “problem”…
Thanks for the pre-release firmware. I’ll test it on my SNES.
A minor question, what is the USB port on the top of the SD2SNES used for? Potential loading ROMs via USB? Or is it a way to update the SD Card Filesystem while the board is not in use?
Just noticed the Stellaview broken message in the post. Whoops. Rolling back to 0.16… I might be using the wrong BS-X BIOS, but when I’m trying to run some BS Mario USA Power Challenge (the World 1/2/3/4 ROMs), I get a black screen on 0.16. The BS-X BIOS file was actually a 1024kb SMC file (got it from the website that has a picture of a beach and a palm tree that starts with “Emu” ;) ) that I renamed to “bsxbios.bin” in my SD Card’s sd2snes folder. I’m wondering if i got a bad dump or I’m doing something… Read more »
Thanks ikari for the great update. I have found that the firemen won’t load past the human interactive logo
Thanks. It works if you disable the in game functions quick enough :)
Hello ikari. Thanks for the great update preview. Here are the bugs I’ve found so far. All tested on standard NTSC-U SNES, CPU 2 PPU1 1 PPU2 3. Super Punch-Out: Anti-piracy screens now show up. Game works fine in 0.1.6. The following games are glitchy unless in-games routines are disabled. The Firemen: Hangs at Human logo. Goof Troop: Sprites sometimes turn invisible. SimCity: Title screen if garbled. Tetris & Dr. Mario: Tetris blocks are all black. Yoshi’s Cookie: BSP logo is glitchy. The following games don’t work with the in-game button combination. Marvel Super Heroes in War of the Gems… Read more »
Thanks for the report! Yeah, auto region patching apparently needs slight retiming, it still works on some consoles it seems.
It seems like a good idea to me for the sd2snes to store the ingame routine setting per game.
Super Punch-Out anti piracy screen is due to ingame hook as well.
OK, auto region patching being defeated is definitely an issue of configuration file migration. Deleting sd2snes.cfg should help. I’m going to put a workaround in the next build.
About the region patching: Can you try and delete the file sd2snes.cfg from the sd2snes folder, switch off and on, and see if it works then?
Yes, deleting sd2snes.cfg did the trick. Thanks.
I know this may be a silly question but will there be an option to shut off all these combination mapping buttons in v1.7 final? Looks like these mappings are wreaking havoc on a lot of games.
Yes! Definitely. For the time being you can disable them using the controller.
By the way, the way it works at the moment is similar to the Pro Action Replay cartridges. These cause the same glitches actually, I verified some of the games using a PAR 3.
I look forward to being able to change the background of the start up menu (It just doesn’t look very “SNES” to me) It would be really cool if we could choose different themes for the menu, like Metroid, Zelda etc. Of course that’s all just nitpicking at this point. I’m happy with my purchase.
Gave this a quick go today – I love the idea of sending out a preview firmware like this so that people can report back on bugs from the changes. Great work but already implementing the timing changes :D and also the in game reset function is pretty cool for lazy people like me!
Thanks again, looking forward to the final release – if I notice any bugs I’ll let you know
I observed a quite strange problem yesterday.
The IGR-PIC acts quasi randomly. The keymappings do not work properly.
Especially with PAL-Roms in 50hz. E.g., Sunset Riders resets in 50hz using Right + Down + Y. With firmware v0.1.6 and also the original games everthing work well.
I tried different reading strategies (polling & interrupting) for the PIC as well as different PIC (16F630, 16F684, 16F688).
Hmm, maybe there’s not enough time for the IGR PIC to settle. The ingame hook of course can’t rely on the game activating Auto Joypad Read, so what it does is check if Auto Joypad Read is in progress (and if so, waits for it to finish), before running its own manual controller scan loop. Maybe there’s not enough time between the end of Auto Joypad Read and the beginning of “manual joypad read” for the IGR to compare the button values (so it’s ready again just in the middle of the next joypad read, reading garbage). Or maybe the… Read more »
The IGR starts to read the joypad after the data latch came high and back down. So the time the IGR needed to compare button values is not a big deal. The main problem is the duration of impulse chain after the data latch. The duration of the manual controller scan might be to short. Hence, the IGR-PIC reads data throughout two or more joypad reads as long as he has detected twelve impulses. The stored data is not in the expected order anymore. Is there a chance to make the manual controller read more similar to the auto joypad… Read more »
snes/nmihook.a65. lines 21-36 (at the moment). I am working on that code portion at the moment. I’m going to just use the auto joypad read result when it’s found to be active so at least there’ll be no double controller read. However the manual reading code will remain as a fallback. I think the manual way is slower than auto joypad read though!
Thank you :)
Thank you for this 1.7 preview release! I really appreciate your work on the SD2SNES. However on this new release, when playing Chrono Trigger and going about the menu screen, the graphics glitch for a second between transition. If I revert back to 1.4, it works perfectly.
Thanks for the update… do the in-game-keys conflict with the IGR PIC? I have it along the supercic on a custom pcb … it is working great as is without any game problems btw
Is chrono trigger working for anyone? Seems to lock up my system completely if I press A in the opening.
you have a link for the latest Firmware v0.1.7 preview ? thanks :) the region patcher is broken on 0.1.7
Hey Ikari. My sd2snes keeps blinking the red led for 10 times each cycle with a pause in between. what does it mean?
Hi, 10 times means “write protected”. If you didn’t write protect the card on purpose, then either the little LOCK slider on the card has become loose and moves on its own when inserting the card, or there’s a contact problem on the SD card slot on the sd2snes.