Add support for Slot 2 flashcarts using Compact Flash (#84)

- Supercard CF (SUPERCARDCF)
- GBA Media Player CF (MPCF)
- M3 Adapter CF (M3CF)
- Max Media Dock CF (MMCF)
This commit is contained in:
Edoardo Lolletti
2026-01-10 23:00:39 +01:00
committed by GitHub
parent eac8f7e734
commit 6a97b677a7
22 changed files with 945 additions and 3 deletions

View File

@@ -0,0 +1,41 @@
#include "common.h"
#include "M3CFLoaderPlatform.h"
#define M3_MODE_ROM 8
#define M3_MODE_MEDIA 6
static u16 volatileReadHalfword(u32 addr)
{
return *((vu16*)addr);
}
static void changeM3Mode(u32 mode)
{
volatileReadHalfword(0x08e00002);
volatileReadHalfword(0x0800000e);
volatileReadHalfword(0x08801FFC);
volatileReadHalfword(0x0800104A);
volatileReadHalfword(0x08800612);
volatileReadHalfword(0x08000000);
volatileReadHalfword(0x08801B66);
volatileReadHalfword(0x08800000 + mode);
volatileReadHalfword(0x0800080E);
volatileReadHalfword(0x08000000);
if(mode == M3_MODE_ROM)
{
volatileReadHalfword(0x080001E4);
volatileReadHalfword(0x080001E4);
volatileReadHalfword(0x08000188);
volatileReadHalfword(0x08000188);
}
else
{
volatileReadHalfword(0x09000000);
}
}
void M3CFLoaderPlatform::SetCardLocked(bool locked) const
{
changeM3Mode(locked ? M3_MODE_ROM : M3_MODE_MEDIA);
}