Skip to content

GBA Cart: Add Everdrive SD emulation#3766

Open
felixjones wants to merge 1 commit into
mgba-emu:masterfrom
felixjones:everdrive-diskio
Open

GBA Cart: Add Everdrive SD emulation#3766
felixjones wants to merge 1 commit into
mgba-emu:masterfrom
felixjones:everdrive-diskio

Conversation

@felixjones

Copy link
Copy Markdown
Contributor

I had a hacky version of this sitting on my drive for a while, and I was planning to figure out a sane & secure way to use a host defined folder before attempting to clean this up (because I really don't want GBA ROMs writing within my raw file system without some safety rails being in the way), but I couldn't come up with any ideas

So this uses disk images instead. If the user wants to manage the files in the disk image then they'll have to mount it on their OS. To me, this is a good enough security compromise, but there's something to be said about the loss of ease of use.

The implementation is based on the everdrive GBA development API krikzz.com/pub/support/everdrive-gba/original-series/development, and the SD protocol as detailed from https://elm-chan.org/docs/mmc/mmc_e.html

This does not implement the other Everdrive hardware features, I'm leaving that as a future exercise for anyone interested.

Switched from using C stdio to VFile, but I've only got this implemented for QT at the moment so this is QT only as of this PR

This means that GBAIO.GBA from the above linked everdrive development download now works:

image

I do plan to follow this up with an EZ Flash API version as well, but that's less graceful than Everdrive so I'd like to try this PR first and if this goes well then I'll tackle the tougher challenge of cleaning up the EZ Flash version


And this is what it looks like in the Enhancements screen

image

@endrift endrift added this to the mGBA 0.12.0 milestone Apr 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants