SuperFW: a (very much WIP) supercard firmware

anindividual

Well-Known Member
Member
Joined
Apr 10, 2014
Messages
108
Trophies
1
Age
84
XP
228
Country
United States
Hey there!

For people interested in how things work, I spent some time reversing the way the flash is interfaced to learn that there is no transparent mapping for flash addresses.
Here is the function: https://github.com/davidgfnet/superfw-nds-flasher-tool/blob/master/source/main.c#L36

For some reason they decided not to wire that bus straight but rather with some permutation.
That explains why the original firmware uses "weird" addresses to flash/write the firmware.

Attaching some pictures of the setup :D Was fun work!
Neat little setup you’ve got there! Nice work.
 

davidgf

Well-Known Member
OP
Newcomer
Joined
Mar 25, 2011
Messages
48
Trophies
1
XP
599
Country
Looks like there may be more variants than what's known so far. I haven't found any SuperCard SD with 122b9 as its flash ID yet.

Flash IDFlash chip part numberStock FW - flash ID compatibility
000422b929LV400TC-90PFTN✅
00c222baMX29LV400BTC-70❌
000122b9 ( GBASP.RU )❓❓

Thanks!
All of these so far do work with my flasher tool right? AFAIK they are more or less JEDEC compliant so the erase/write commands should be the same.
 

KooZ27

Member
Newcomer
Joined
Aug 26, 2024
Messages
5
Trophies
0
Age
22
XP
15
Country
Indonesia
Hey there!
So yeah, after seeing that this was pretty much possible (thanks to metroidmaniac's effort) and since this was something that I always wanted but nobody came up with, I decided to give it a shot and try it myself. I've been working on this over the past 2-3 weeks and so far it looks half-decent.

The goal is to create a firmware that is nice, easy to use, has some sane defaults and requires no PC (patches included in the FW). Ideally would be fast, have many features, and be easy to update and mess around. And open source of course! (Will be releasing the code soon!) Other cool things are: using Elm's FatFS lib (so support for FAT32 and extFAT is possible), proper font rendering and unicode support (no more ascii-only filenames!), no limits on file count/directory count, can load GB/GBC roms using goombacolor, etc. Let's make this very 2024.
So far this is a pretty much early demo. Supports many commercial games (haven't done almost any testing) with patches for WAITCNT (aka whitescreen) and EEPROM. Working on getting patches for FLASH next. Has no support for flashing, so you need chainload it from another supercard firmware.

WARNING! ACHTUNG! This is pretty much a demo, almost guaranteed to destroy your sav files, if not your SD card! Please stay away if you want something usable.
I'm posting this since I'm gonna be out for a month on vacation so I wanted to say hi and force myself to pick it up and finish it once I'm back.

The obligatory video:


That's it, below here a long explanation for those interested in the details:

I have worked a bit of gpsp over the past years, so I added some minimal supercard emulation on a branch, so I could develop this without having to test on real hardware (it's so much faster to develop this way). That's how the video was recorded. The support is very minimal, and unlikely to publish it, but I thought about adding some support to mgba, since the developers seem open to the idea.
Another cool topic is patching: I've developed some cool emulation/static-analysis based system that can find patching offsets for WAITCNT. I will be writing a post about this soon, since it is a cool idea and can be repurposed for other things. ATM it only works for the Thumb instruction set, working on adding ARM support. The firmware ships a database of patches (~80KB) and uses it to patch games. It also has support to load patches from the SDcard so updates and alternative patch databases can be distributed (without having to flash a new firmware).

And I'm going to bed, I'll post more tomorrow :)

hello can you make it as firmware or something, because i already use this and this is really good work, but i have to load the .gba files everytime i want use this gui. can u make it so it work at startup?
Post automatically merged:

Hey there!
So yeah, after seeing that this was pretty much possible (thanks to metroidmaniac's effort) and since this was something that I always wanted but nobody came up with, I decided to give it a shot and try it myself. I've been working on this over the past 2-3 weeks and so far it looks half-decent.

The goal is to create a firmware that is nice, easy to use, has some sane defaults and requires no PC (patches included in the FW). Ideally would be fast, have many features, and be easy to update and mess around. And open source of course! (Will be releasing the code soon!) Other cool things are: using Elm's FatFS lib (so support for FAT32 and extFAT is possible), proper font rendering and unicode support (no more ascii-only filenames!), no limits on file count/directory count, can load GB/GBC roms using goombacolor, etc. Let's make this very 2024.
So far this is a pretty much early demo. Supports many commercial games (haven't done almost any testing) with patches for WAITCNT (aka whitescreen) and EEPROM. Working on getting patches for FLASH next. Has no support for flashing, so you need chainload it from another supercard firmware.

WARNING! ACHTUNG! This is pretty much a demo, almost guaranteed to destroy your sav files, if not your SD card! Please stay away if you want something usable.
I'm posting this since I'm gonna be out for a month on vacation so I wanted to say hi and force myself to pick it up and finish it once I'm back.

The obligatory video:


That's it, below here a long explanation for those interested in the details:

I have worked a bit of gpsp over the past years, so I added some minimal supercard emulation on a branch, so I could develop this without having to test on real hardware (it's so much faster to develop this way). That's how the video was recorded. The support is very minimal, and unlikely to publish it, but I thought about adding some support to mgba, since the developers seem open to the idea.
Another cool topic is patching: I've developed some cool emulation/static-analysis based system that can find patching offsets for WAITCNT. I will be writing a post about this soon, since it is a cool idea and can be repurposed for other things. ATM it only works for the Thumb instruction set, working on adding ARM support. The firmware ships a database of patches (~80KB) and uses it to patch games. It also has support to load patches from the SDcard so updates and alternative patch databases can be distributed (without having to flash a new firmware).

And I'm going to bed, I'll post more tomorrow :)

hello can you make it as firmware or something, because i already use this and this is really good work, but i have to load the .gba files everytime i want use this gui. can u make it so it work at startup?
 

ak1nok

Well-Known Member
Newcomer
Joined
Jan 18, 2020
Messages
52
Trophies
1
Age
44
XP
658
Country
Romania
Похоже, что вариантов может быть больше, чем известно на данный момент. Я пока не нашел ни одной SuperCard SD с 122b9 в качестве идентификатора флэш-памяти.

Флэш-идентификаторНомер детали флэш-чипаСтандартная прошивка - соответствие суммы с идентификатором
000422b929LV400TC-90PFTN✅
00c222baMX29LV400BTC-70❌
000122b9 ( GBASP.RU )❓❓

000122b9 - here's a photo of the cartridge chips. This is most likely the original flash cartridge that came out a long time ago.
 

Attachments

  • IMG_4365.jpg
    IMG_4365.jpg
    942.7 KB · Views: 8
  • IMG_4366.jpg
    IMG_4366.jpg
    1.6 MB · Views: 10
  • IMG_4368.jpg
    IMG_4368.jpg
    1.5 MB · Views: 10
  • IMG_4369.jpg
    IMG_4369.jpg
    1.4 MB · Views: 10
  • IMG_4370.jpg
    IMG_4370.jpg
    1.3 MB · Views: 8
  • IMG_4378.jpg
    IMG_4378.jpg
    1.8 MB · Views: 7
  • Love
Reactions: OmDRetro

RealYoti

Well-Known Member
Member
Joined
Aug 2, 2012
Messages
267
Trophies
1
XP
1,998
Country
Russia
Looks like there may be more variants than what's known so far. I haven't found any SuperCard SD with 122b9 as its flash ID yet.

Flash IDFlash chip part numberStock FW - flash ID compatibility
000422b929LV400TC-90PFTN✅
00c222baMX29LV400BTC-70❌
000122b9 ( GBASP.RU )❓❓
I asked the author and he doesn't remember which of the two cartridges was used.
So, 122b9 is MX 29LV400CTTC-70G (SC MiniSD) or [F] Malaysia 29LV400TC-90PFTN (SC MicroSD).

Edit: ak1nok is the author (gbasp.ru owner).
 
Last edited by RealYoti,
  • Love
Reactions: OmDRetro

OmDRetro

Well-Known Member
Newcomer
Joined
Apr 23, 2024
Messages
57
Trophies
0
XP
184
Country
Philippines
Thanks!
All of these so far do work with my flasher tool right? AFAIK they are more or less JEDEC compliant so the erase/write commands should be the same.

Luckily, yes it is JEDEC compliant.

29LV400TC-90PFTN-lg.jpg


This Fujitsu (Malaysia) chip is compatible with the JEDEC standard(based on the datasheet). It's the chip that one of my Supercard SDs come with.
 
Last edited by OmDRetro,
  • Like
Reactions: ak1nok

Peeteris

Well-Known Member
Newcomer
Joined
Mar 7, 2017
Messages
85
Trophies
0
Age
44
XP
477
Country
Hey there, still very much working on this!
So far I added support to flash the firmware into the internal flash so you don't need to chainload it. This makes it support SDHC and exFAT natively (if you are interested in those of course!). The firmware can update itself and what not.

Updates are always tricky so if things go wrong you can always update the FW using an NDS (as long as you have a slot1 cart of course). I created a tool that helps with this process. You can find it in github, source and binary:

https://github.com/davidgfnet/superfw-nds-flasher-tool/releases/

This can be used to backup your original fw, write a new firmware (superfw, scfw, original, etc), etc.
It also identifies the flash device you got. Would be nice to see what devices exit out there. I myself have a 000422b9 and a 00c222ba. Should work with of all them, but in case someone has an odd model that ships a weird flash device (and might need some extra flashing code or something...)

Allright, stay tuned for more!

Right now working on the IRQ hooking to create an in-game menu (to save and perhaps to create savestates/snapshots). Hopefully we can add support for 128KB saves as well this way.
Post automatically merged:

Oh forgot to attach a new version and some instructions.
Be careful this is much ALPHA so do not flash anything unless you have an NDS to unbrick your cart :D You've been warned!

So you can flash using the NDS tool (just copy the firmware to the slot1 sd card, and use the write command to flash it. I recommend doing a backup first).
If you wanna use the GBA to flash/update the firmware you can also do it. Copy firmware.gba and rename it as something.fw (the extension must be .fw). Use the original FW or SCFW or whatever you use to load the superfw firmware.gba. Then you can browse the file .fw and apply the update. You will need to enable updates (this is a security feature to avoid accidental flashing): go to the info tab and press the key combo.

I will create some nice docs with screenshots soon, once I get a more usable firmware.
Have fun!
This is incredible!

I installed it as the firmware, Supercard has never provided such good looking, smooth and fast experience as now with SuperFW.

Amazing work, keep on going! ❤️😍✔️
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Oil your wii +1