Files
pico-loader/arm9/source/patches/platform/m3cf/M3CFLoaderPlatform.cpp
Edoardo Lolletti 6a97b677a7 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)
2026-01-10 22:00:39 +00:00

42 lines
995 B
C++

#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);
}