mirror of
https://github.com/LNH-team/pico-loader.git
synced 2026-06-02 09:16:49 +02:00
- Supercard CF (SUPERCARDCF) - GBA Media Player CF (MPCF) - M3 Adapter CF (M3CF) - Max Media Dock CF (MMCF)
42 lines
995 B
C++
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);
|
|
}
|