Homebrew SCFW: Bleeding-edge modular kernel branch

OmDRetro

Well-Known Member
OP
Newcomer
Joined
Apr 23, 2024
Messages
97
Trophies
0
XP
280
Country
Philippines
INFO: If you're unaware of what the SCFW project is, please check the main thread under the "Connected thread" section or click here.

This thread is primarily for those who'd like to test out/play with new revisions of the kernel that have yet to be pushed to the main branch.

Installation

Download the zip file and extract the contents to the root directory of the sdcard.
This should replace the existing kernel.gba along with a few emulators bundled in.

Differences between this and the main kernel:
  • PCEAdvance support ✅
    • Loads PC-Engine/TurboGrafx-16 games (*.pce)
    • ❌DOES NOT SUPPORT SOFT RESET FUNCTION (Cannot patch soft reset on compilation ROM)❌
  • SMSAdvance support ✅
    • Loads Sega Master System games (*.sms)
    • Loads Game Gear games (*.gg)
    • Loads Sega Game 1000 / Sega 1000 games (*.sg)
    • Custom BIOS loading support. Can be toggled within kernel settings
  • PocketNES support ✅
    • Loads NES / Famicom games (*.nes)
  • Goomba support ✅
    • Loads Game Boy games (*.gb)
    • Loads Game Boy Color games (*.gbc)
  • WasabiGBA support ✅
    • Loads Watara/Quickshot Supervision games (*.sv)
    • Custom BIOS loading support. Can be toggled within kernel settings
  • NGPGBA support ✅
    • Loads Neo Geo Pocket games (*.ngp)
    • Loads Neo Geo Pocket Color games (*.ngc)
    • Custom BIOS loading support. Can be toggled within kernel settings
  • HVCA support ✅
    • Loads Famicom Disk System games (*.fds)
    • Acts as a media player for Nintendo Sound Files (*.nsf)
    • Currently a stripped down version of the original HVCA
  • SwanGBA support ✅
    • Loads Benesse Pocket Challenge V2 games (*.pc2)
    • Loads WonderSwan games (*.ws)
    • Loads WonderSwan Color games (*.wsc)
  • DrSMS support ✅
    • Loads Sega Master System games (*.sms)
      • Supports FM audio ( Sega Master System Mark III )
    • Loads Game Gear games (*.gg)
    • Can now toggle emulator priority and choose between SMSAdvance or DrSMS in order to load GG/SMS games.
  • E-Book Advance support ✅
    • Loads TXT files (*.txt)
  • Music Player Advance 2 support ✅
    • Loads Music Player Advance files (*.mpa)
    • Loads Music Player Advance Compilation files (*.mpac)
    • MPA2-Compilation-Tools can be used to create *.MPAC files
Homebrew App / Emulator observations:
  • ✅ Consistently runs on:
    • GBA
    • NDS / NDSL Game Boy mode
  • 🟨 Not all applications/emulators consistently run on:
    • EXEQ Game Box (clone console)
    • Digi Retroboy
NOTE: For those who use clones, you may download a copy of a completely functional bundle of emulators from this repository

Emulator quirks:

Emulator
Target System / Additional featureQuit to firmwareSoft reset supportModular
Goomba / Super Goomba / Jagoomba ColorGame Boy✅✅✅
Goomba Color / Jagoomba ColorGame Boy Color✅✅✅
NGPGBANeo Geo Pocket / Color🟨✅✅
PCEAdvanceNEC PC-Engine / TurboGrafx-16❌❌✅
PocketNESNintendo Entertainment System / Family Computer🟨✅✅
SMSAdvanceSega Game 1000 / Sega 1000❌✅✅
SMSAdvanceSega Game Gear❌✅✅
SMSAdvanceSega Master System❌✅✅
WasabiGBAWatara/Quickshot Supervision🟨✅✅
HVCAFamicom Disk System / NSF player❌❌🔶
SwanGBAWonderSwan / WonderSwan Color / Benesse Pocket Challenge V2❌✅✅
DrSMSSega Master System Mark III❌✅🔶
DrSMSGame Gear❌✅🔶


LEGEND:

  • 🟨 ~ Varies per fork / version OR works with some caveats(buggy). Use with caution
  • 🔶 ~ Requires some technical know-how to get working / Modular to an extent, but requires additional work.
  • ❌ ~ Unsupported / Not functioning as intended
  • ✅ ~ Supported / Works as intended

NOTE: Emulator binaries can be improved upon and can be made compatible with the kernel just like Goomba.
  • IF QUIT TO FIRMWARE DOESN'T WORK, USE THE SOFT RESET METHOD TO QUIT TO FIRMWARE.
    • Soft reset key combination: START + SELECT + A + B

Observation NOTES:
  • Some clones / GBAoaC devices such as the EXEQ Game Box SP don't play nice with flash carts as it doesn't have the same wait time. Thus, emulator ROMs boot faster and the flash cart does not have enough time to prepare. There's a workaround for this by forcing the cart to load up splash images* as mentioned in this repository
    • Alternative method for GBAOC devices:
      Create a ROM compilation and sideload the resulting gba file.
      This process is tedious, but it works best for clones like these.
  • WARNING: The cart appears to not have enough time to properly load both emulator and ROM if you skip the BIOS. It's better to leave that kernel option "Boot games through BIOS" as 1 (on).

Planned features / To be decided:

"This is a FOSS project. Open source is ideally better for a modular open source kernel." - Me, probably :P


Links

Connected thread:

Credits
  • @metroid maniac - Main developer
  • @OmDRetro - Enhancement for the kernel
  • @Dwedit & @EvilJagaGenius - Goomba Color fork version v0.5 bundled in the zip file
  • @Asaki - Super Goomba fork version 2.0 bundled in the zip file.
  • @loopy and @FluBBa - PocketNES build version 9.98 bundled in the zip file
  • @FluBBa
    • SMSAdvance build version 2.5
    • PCEAdvance build version 7.5
    • WasabiGBA build version 0.2.4
    • NGPGBA build version 0.5.7
    • SwanGBA build version 0.6.7
  • OUTSIDE-agb (not part of this forum) & @metroid maniac
    • Home Video Computer Advance build version 1.40
    • @metroid maniac 's modified HVCA works well on SCFW.
  • NEiM0D
    • Music Player Advance 2 ~ Unknown build version.
  • Reesy & @metroid maniac
    • DrSMS build version 6 (pogo shell plugin version)
    • @metroid maniac 's modified DrSMSv6 pogoshell version works well on SCFW.
Changelog (Last 3 changes):
  • Kernel revision scfw-0.5.2-WSwan-B-2024-11-05v0003
    • Revised SwanGBA support
      • Old builds of SwanGBA(versions prior to 0.6.6) will NOT work on this kernel.
  • Kernel revision scfw-0.5.2-MPA-hotfix-2024-11-03v0000
    • Hotfix build
      • Fixes an issue that can cause the SuperCard to lockup upon loading saves.
  • Kernel revision scfw-0.5.2-MPA-2024-08-01v0001
    • Added E-Book Advance support
      • Loads TXT files (*.txt)
      • Can switch viewing mode in kernel settings
    • Added Music Player Advance 2 support
      • Loads Music Player Advance files (*.mpa)
      • Loads Music Player Advance Compilation files (*.mpac)

Post automatically merged:


*Possible* F.A.Q. section:

Is it possible to use other forks of Goomba?

Yes, within the scfw folder you can replace either gb.gba or gbc.gba with your goomba fork of choice. Just be sure to keep the naming convention as is.

I.E.
  • If replacing the Game Boy emulator, simply rename the fork to gb.gba and place it in the scfw folder
  • If replacing the Game Boy Color emulator, simply rename the fork to gbc.gba and place it in the scfw folder

Is it possible to use other forks of PocketNES?
Yes, much like Goomba, you just have to rename your preferred pocketNES fork/binary to nes.gba and place it within the scfw folder.

Is it possible to use other forks of SMSAdvance?
Yes, you just have to rename your preferred SMSAdvance fork/binary to smsa.gba and place it within the scfw folder.

Is it possible to use other forks of PCEAdvance?
Yes, you just have to rename your preferred PCEAdvance fork/binary to pcea.gba and place it within the scfw folder.

Is it possible to use other forks of WasabiGBA?
Yes, you just have to rename your preferred WasabiGBA fork/binary to wsv.gba and place it within the scfw folder.

Is it possible to use other forks of NGPGBA?
Yes, you just have to rename your preferred NGPGBA fork/binary to ngp.gba and place it within the scfw folder.

I'm unable to load Famicom Disk System/FDS games, what gives?
The FDS bios is not included for legal reasons
. You can either dump or download one over the internet and rename it to disksys.rom and place it in x:/scfw/hvca/

FDS ROMs are boot-looping or I can't get past the legal intro text.
Simply power cycle your Game Boy Advance / EXEQ Game Box SP and load the ROM again.


Is it possible to use other forks of SwanGBA?
Yes, you just have to rename your preferred SwanGBA fork/binary to bwsc.gba and place it within the scfw folder.

Is it possible to use other versions of DrSMS?
Yes, but I do NOT recommend using older or buggier versions of DrSMS. You can if you want to though, but it will require some technical know-how to get it working.

NOTE:

  • For SuperCard SD, Mini SD, and Micro SD versions, please download the respective zip with prefix scfw-*
  • For SuperCard lite micro SD version, please download the respective zip with prefix scfw-sclite-*
 

Attachments

  • scfw-0.5.2-WSwan-B-2024-11-05v0003.zip
    501.7 KB · Views: 36
  • scfw-sclite-0.5.2-WSwan-B-2024-11-05v0003.zip
    501.5 KB · Views: 16
Last edited by OmDRetro,

huncho

Active Member
Newcomer
Joined
Jan 31, 2017
Messages
27
Trophies
0
XP
337
Country
Saint Helena
pokemon crystal is super buggy and unstable and the second time i started it my gba sp power tripped and rebooted, links awakening DX worked fine tho
 
Last edited by huncho,

OmDRetro

Well-Known Member
OP
Newcomer
Joined
Apr 23, 2024
Messages
97
Trophies
0
XP
280
Country
Philippines
pokemon crystal is super buggy and unstable and the second time i started it my gba sp power tripped and rebooted, links awakening DX worked fine tho

The graphical issues that you see are entirely dependent on the emulator used. It is not related to the firmware based on what I can tell so far.

You may refer to the compatibility list here for the current Goomba fork I bundled in the zip file.

Section "P" indicates that Pokemon: Crystal has graphical issues on dwedit's goomba fork I bundled in the zip file.
Pokemon Crystal Support.png


I'd suggest utilizing the Jagoomba Color emulator to see if it's fixed on that fork of Goomba.

There's also another fork called Super Goomba, but this version doesn't support GBC games.

Also, I'll be setting up a bug reporting form for future reports. So it wouldn't add more clutter to the thread :)
 
  • Like
Reactions: huncho and zfreeman

huncho

Active Member
Newcomer
Joined
Jan 31, 2017
Messages
27
Trophies
0
XP
337
Country
Saint Helena
The graphical issues that you see are entirely dependent on the emulator used. It is not related to the firmware based on what I can tell so far.

You may refer to the compatibility list here for the current Goomba fork I bundled in the zip file.

Section "P" indicates that Pokemon: Crystal has graphical issues on dwedit's goomba fork I bundled in the zip file.
View attachment 440428

I'd suggest utilizing the Jagoomba Color emulator to see if it's fixed on that fork of Goomba.

There's also another fork called Super Goomba, but this version doesn't support GBC games.

Also, I'll be setting up a bug reporting form for future reports. So it wouldn't add more clutter to the thread :)
yeah jagoomba color fixed it, thanks and sorry!
 

Apache Thunder

I have cameras in your head!
Member
Joined
Oct 7, 2007
Messages
4,632
Trophies
3
Age
37
Location
Levelland, Texas
Website
www.mariopc.co.nr
XP
7,537
Country
United States
Through testing I found that the optimization in SCFW 4.3 has broken fat init in the kernel GBA for my SuperCard Lite (MicroSD version not Rumble) and I believe this also means your fork fails fat init after kernal load as well. Any chance you can look into seeing if that's fixable?

I've tested regular SCFW 4.2 and pretty much everything works as expected on my SC Lite even with 4GB MicroSD card.....so the SDHC stuff works too. But for what ever reason the changes in 4.3 break fat init on my unit. :(

(fat init fails regardless of using 2GB or 4GB MicroSD card)

EDIT:

It appears updating the DLDI might be all that's needed. I tested this DLDI:

https://github.com/ArcheyChen/SuperCard-SDHC-DLDI

And it appears to work for my SC Lite just fine so hoping if the repo gets the updated DLDI things will be working again for us SC Lite users. :D
 
Last edited by Apache Thunder,
  • Like
Reactions: zfreeman

OmDRetro

Well-Known Member
OP
Newcomer
Joined
Apr 23, 2024
Messages
97
Trophies
0
XP
280
Country
Philippines
Through testing I found that the optimization in SCFW 4.3 has broken fat init in the kernel GBA for my SuperCard Lite (MicroSD version not Rumble) and I believe this also means your fork fails fat init after kernal load as well. Any chance you can look into seeing if that's fixable?

I've tested regular SCFW 4.2 and pretty much everything works as expected on my SC Lite even with 4GB MicroSD card.....so the SDHC stuff works too. But for what ever reason the changes in 4.3 break fat init on my unit. :(

(fat init fails regardless of using 2GB or 4GB MicroSD card)

EDIT:

It appears updating the DLDI might be all that's needed. I tested this DLDI:

https://github.com/ArcheyChen/SuperCard-SDHC-DLDI

And it appears to work for my SC Lite just fine so hoping if the repo gets the updated DLDI things will be working again for us SC Lite users. :D

That's odd... I haven't changed any other functionality apart from adding support for more filetypes. Updating the DLDI isn't on my to do list at the moment, but I'll keep it in mind.

My focus right now is to implement PocketNES.
 
  • Like
Reactions: zfreeman

OmDRetro

Well-Known Member
OP
Newcomer
Joined
Apr 23, 2024
Messages
97
Trophies
0
XP
280
Country
Philippines
UPDATE (as of 2024/06/15)

Kernel revision scfw-0.5.2-pocketN-2024-06-15v0009 is OUT!

Features:

  • PocketNES support
    ✅
    • Loads NES / Famicom games (*.nes)
    • Automatic ROM region detection (PAL / NTSC timing)
  • Goomba support
    ✅
    • Loads Game Boy games (*.gb)
    • Loads Game Boy Color games (*.gbc)
Updated binaries are in the OP. 😁

Notes:
  • The last version of PocketNES, that was developed by both loopy and FluBBa, is v9.98
  • The bundled PocketNES binary cannot properly quit to main menu.
    • Workaround: If soft reset is enabled in the kernel settings, simply hit the key combination:
      • START + SELECT + A + B ~ altogether
 
Last edited by OmDRetro,

Gamemaster2022

Active Member
Newcomer
Joined
Apr 9, 2024
Messages
43
Trophies
0
Age
19
XP
116
Country
Czech Republic
UPDATE (as of 2024/06/15)

Kernel revision scfw-0.5.2-pocketN-2024-06-15v0009 is OUT!

Features:

  • PocketNES support
    ✅
    • Loads NES / Famicom games (*.nes)
    • Automatic ROM region detection (PAL / NTSC timing)
  • Goomba support
    ✅
    • Loads Game Boy games (*.gb)
    • Loads Game Boy Color games (*.gbc)
Updated binaries are in the OP. 😁

Notes:
  • The last version of PocketNES, that was developed by both loopy and FluBBa, is v9.98
  • The bundled PocketNES binary cannot properly quit to main menu.
    • Workaround: If soft reset is enabled in the kernel settings, simply hit the key combination:
      • START + SELECT + L + R + A + B ~ altogether
Awesome! Any plans to implement MasterSystem emulator too?
 

OmDRetro

Well-Known Member
OP
Newcomer
Joined
Apr 23, 2024
Messages
97
Trophies
0
XP
280
Country
Philippines
Awesome! Any plans to implement MasterSystem emulator too?

Yup, it's actually in the list of planned features in the OP. Right now I'm leaning towards SMSAdvance for implementing Sega Master System / Game Gear / SG-1000 support simply because the source is available for anyone to look at and improve upon thus having more potential. While DrSMS is more accurate, it's not likely to be updated anymore as it is closed source( bummer... Since it has more features too ).

The goal right now is to implement a full alternative to the stock firmware so you're gonna have to wait until I figure this out and push the changes to github afterwards.
 

Gamemaster2022

Active Member
Newcomer
Joined
Apr 9, 2024
Messages
43
Trophies
0
Age
19
XP
116
Country
Czech Republic
Yup, it's actually in the list of planned features in the OP. Right now I'm leaning towards SMSAdvance for implementing Sega Master System / Game Gear / SG-1000 support simply because the source is available for anyone to look at and improve upon thus having more potential. While DrSMS is more accurate, it's not likely to be updated anymore as it is closed source( bummer... Since it has more features too ).

The goal right now is to implement a full alternative to the stock firmware so you're gonna have to wait until I figure this out and push the changes to github afterwards.
Great! Can't wait!
 

OmDRetro

Well-Known Member
OP
Newcomer
Joined
Apr 23, 2024
Messages
97
Trophies
0
XP
280
Country
Philippines
...

Post automatically merged:


UPDATE (as of 2024/06/20)

Kernel revision scfw-0.5.2-SMSAdv-2024-06-20v0001 is up. Sources uploaded to Github now :D

Features:

  • SMSAdvance support
    ✅
    • Loads Sega Master System games (*.sms)
    • Loads Game Gear games (*.gg)
    • Loads Sega Game 1000 / Sega 1000 games (*.sg)
    • Automatic ROM region detection (PAL / NTSC timing)
    • Custom SMS/GG BIOS loading is NOT SUPPORTED ❌
  • PocketNES support
    ✅
    • Loads NES / Famicom games (*.nes)
    • Automatic ROM region detection (PAL / NTSC timing)
  • Goomba support
    ✅
    • Loads Game Boy games (*.gb)
    • Loads Game Boy Color games (*.gbc)
Updated binaries are in the OP.

Relevant Notes:
  • The bundled PocketNES & SMSAdvance binary cannot properly quit to main menu.
    • Workaround: If soft reset is enabled in the kernel settings, simply hit the key combination:
      • START + SELECT + A + B ~ altogether
 
Last edited by OmDRetro,

Takafumi

Member
Newcomer
Joined
Jun 16, 2024
Messages
10
Trophies
0
Age
27
XP
325
Country
United Kingdom
Jeez, I look away for a brief moment and the amount of supported emulators skyrockets! Very excited for Neo Geo Pocket.
How involved is the process of adding support for them? Feels like you blitzed through them all.
 

OmDRetro

Well-Known Member
OP
Newcomer
Joined
Apr 23, 2024
Messages
97
Trophies
0
XP
280
Country
Philippines
Jeez, I look away for a brief moment and the amount of supported emulators skyrockets! Very excited for Neo Geo Pocket.
How involved is the process of adding support for them? Feels like you blitzed through them all.

It actually depends on how fast I understand the way the headers work for each emulator and Patter's compilation builder's helped A LOT so I understood it faster. As for the blitzing through the emu's, I just really like a multi-faceted SuperCard SD kernel and the fact that not everyone can afford an EZ Flash Omega DE(Even though I have one 😅) or an Everdrive X5 Mini.
 
  • Like
Reactions: Takafumi

Takafumi

Member
Newcomer
Joined
Jun 16, 2024
Messages
10
Trophies
0
Age
27
XP
325
Country
United Kingdom
It actually depends on how fast I understand the way the headers work for each emulator and Patter's compilation builder's helped A LOT so I understood it faster. As for the blitzing through the emu's, I just really like a multi-faceted SuperCard SD kernel and the fact that not everyone can afford an EZ Flash Omega DE(Even though I have one 😅) or an Everdrive X5 Mini.

Aah, I see. As much as I'd like to support them, I was never in a position to spend the asking price of the big GBA flash carts, so all this work is much appreciated.
Your and metroid maniac's efforts inspired me to pick up a SuperCard and make some homebrew, which I'd never done before. It's fun to see demos running on real hardware.
 
  • Like
Reactions: OmDRetro

OmDRetro

Well-Known Member
OP
Newcomer
Joined
Apr 23, 2024
Messages
97
Trophies
0
XP
280
Country
Philippines
Aah, I see. As much as I'd like to support them, I was never in a position to spend the asking price of the big GBA flash carts, so all this work is much appreciated.
Your and metroid maniac's efforts inspired me to pick up a SuperCard and make some homebrew, which I'd never done before. It's fun to see demos running on real hardware.

Glad we both made a positive impact on you. :D

There's actually a surprise for everyone in the next build.


It's one of the MOST clunky things to work on, but both @metroid maniac and I worked to get this new feature to work.


Through testing I found that the optimization in SCFW 4.3 has broken fat init in the kernel GBA for my SuperCard Lite (MicroSD version not Rumble) and I believe this also means your fork fails fat init after kernal load as well. Any chance you can look into seeing if that's fixable?

I've tested regular SCFW 4.2 and pretty much everything works as expected on my SC Lite even with 4GB MicroSD card.....so the SDHC stuff works too. But for what ever reason the changes in 4.3 break fat init on my unit. :(

(fat init fails regardless of using 2GB or 4GB MicroSD card)

EDIT:

It appears updating the DLDI might be all that's needed. I tested this DLDI:

https://github.com/ArcheyChen/SuperCard-SDHC-DLDI

And it appears to work for my SC Lite just fine so hoping if the repo gets the updated DLDI things will be working again for us SC Lite users. :D

@Apache Thunder: I'll PM/notify you once I have pushed the next build into our Github repo.

Disclaimer: I never tried dabbling with DLDI so you're gonna have to give me some pointers :rofl2:
 

Apache Thunder

I have cameras in your head!
Member
Joined
Oct 7, 2007
Messages
4,632
Trophies
3
Age
37
Location
Levelland, Texas
Website
www.mariopc.co.nr
XP
7,537
Country
United States
Yeah apparently since that DLDI is DS focused it will need some adjustments before you can port it over back to GBA. Since i can't get any of the SCFW projects to compile on my setup there's not much I can help with. But I will happily test any builds you send my way. ;)

I have a couple DS consoles, several DS flashcarts and the SC Lite's recovery NDS program so not worried about bricking it at all. :D

(although for now I can test it as the kernal file since the latest "firmware" binary still has working DLDI access. It's just the kernal side that I can't use the latest builds for right now)
 
  • Like
Reactions: zfreeman

OmDRetro

Well-Known Member
OP
Newcomer
Joined
Apr 23, 2024
Messages
97
Trophies
0
XP
280
Country
Philippines
UPDATE (as of 2024/06/28)

Kernel revision scfw-0.5.2-HVCA-2024-06-28v0002 is up.


  • Added HVCA support (Home Video Computer Advance) ✅
    • The hvca.gba file bundled in is a custom version done by metroid-maniac.
    • HVCA also acts as an NSF player
    • Loads Famicom Disk System games (*.fds)
    • Loads Nintendo Sound Files (*.nsf)

IMPORTANT: HVCA requires an FDS BIOS in order for FDS games to work. Obtain an FDS BIOS and rename it to "disksys.rom" without quotes and place it within X:\scfw\hvca

NOTE: If your FDS ROMs load up until the legal text prompt and starts boot-looping, simply power cycle your gameboy and reload the game.
 
Last edited by OmDRetro,

Gamemaster2022

Active Member
Newcomer
Joined
Apr 9, 2024
Messages
43
Trophies
0
Age
19
XP
116
Country
Czech Republic
UPDATE (as of 2024/06/28)

Kernel revision scfw-0.5.2-HVCA-2024-06-28v0002 is up.


  • Added HVCA support (Home Video Computer Advance) ✅
    • The hvca.gba file bundled in is a custom version done by metroid-maniac.
    • HVCA also acts as an NSF player
    • Loads Famicom Disk System games (*.fds)
    • Loads Nintendo Sound Files (*.nsf)

IMPORTANT: HVCA requires an FDS BIOS in order for FDS games to work. Obtain an FDS BIOS and rename it to "disksys.rom" without quotes and place it within X:\scfw\hvca
Love your work. Would it be possible to make a Genesis emulator too?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Kirbydogs
    Yesterday was history, tomorrow is a mystery, and I love me a good pancake
    Kirbydogs @ Kirbydogs: @MarioXlzzyXSonic I suggest waiting for a response. Posting in the General chit-chat about your...