mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-24 14:49:53 -06:00
lay class base
This commit is contained in:
@ -499,6 +499,7 @@ u64 Key2_X;
|
|||||||
u64 Key2_Y;
|
u64 Key2_Y;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void ROMCommand_Retail(u8* cmd);
|
void ROMCommand_Retail(u8* cmd);
|
||||||
void ROMCommand_RetailNAND(u8* cmd);
|
void ROMCommand_RetailNAND(u8* cmd);
|
||||||
void ROMCommand_Homebrew(u8* cmd);
|
void ROMCommand_Homebrew(u8* cmd);
|
||||||
|
134
src/NDSCart.h
134
src/NDSCart.h
@ -31,9 +31,143 @@
|
|||||||
// * saveRAM management (interface between emulated SRAM interface and save file)
|
// * saveRAM management (interface between emulated SRAM interface and save file)
|
||||||
// * DLDI shito (for homebrew)
|
// * DLDI shito (for homebrew)
|
||||||
|
|
||||||
|
/*class NDSCart
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static bool Init();
|
||||||
|
static void DeInit();
|
||||||
|
static void Reset;
|
||||||
|
|
||||||
|
static void DoSavestate(Savestate* file);
|
||||||
|
|
||||||
|
static bool LoadROM(const char* path, const char* sram, bool direct);
|
||||||
|
static bool LoadROM(const u8* romdata, u32 filelength, const char *sram, bool direct);
|
||||||
|
|
||||||
|
// direct boot support
|
||||||
|
static void DecryptSecureArea(u8* out);
|
||||||
|
|
||||||
|
static u16 SPICnt;
|
||||||
|
static u32 ROMCnt;
|
||||||
|
|
||||||
|
static u8 ROMCommand[8];
|
||||||
|
|
||||||
|
static bool CartInserted;
|
||||||
|
static u8* CartROM;
|
||||||
|
static u32 CartROMSize;
|
||||||
|
static u32 CartID;
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
private:
|
||||||
|
// private parts go here
|
||||||
|
};*/
|
||||||
|
|
||||||
namespace NDSCart
|
namespace NDSCart
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// CartCommon -- base code shared by all cart types
|
||||||
|
class CartCommon
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CartCommon(u8* rom, u32 len);
|
||||||
|
virtual ~CartCommon();
|
||||||
|
|
||||||
|
virtual void Reset();
|
||||||
|
|
||||||
|
virtual void DoSavestate(Savestate* file) = 0;
|
||||||
|
|
||||||
|
virtual void ROMCommandStart(u8* cmd);
|
||||||
|
virtual void ROMCommandFinish(u8* cmd);
|
||||||
|
|
||||||
|
virtual u8 SPIRead();
|
||||||
|
virtual void SPIWrite(u8 val, u32 hold);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
u8* ROM;
|
||||||
|
u32 ROMLength;
|
||||||
|
};
|
||||||
|
|
||||||
|
// CartRetail -- regular retail cart (ROM, SPI SRAM)
|
||||||
|
class CartRetail : public CartCommon
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CartRetail(u8* rom, u32 len);
|
||||||
|
virtual ~CartRetail();
|
||||||
|
|
||||||
|
virtual void Reset();
|
||||||
|
|
||||||
|
virtual void DoSavestate(Savestate* file);
|
||||||
|
|
||||||
|
virtual void ROMCommandStart(u8* cmd);
|
||||||
|
virtual void ROMCommandFinish(u8* cmd);
|
||||||
|
|
||||||
|
virtual u8 SPIRead();
|
||||||
|
virtual void SPIWrite(u8 val, u32 hold);
|
||||||
|
};
|
||||||
|
|
||||||
|
// CartRetailNAND -- retail cart with NAND SRAM (WarioWare DIY, Jam with the Band, ...)
|
||||||
|
class CartRetailNAND : public CartCommon
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CartRetailNAND(u8* rom, u32 len);
|
||||||
|
~CartRetailNAND();
|
||||||
|
|
||||||
|
void Reset();
|
||||||
|
|
||||||
|
void DoSavestate(Savestate* file);
|
||||||
|
|
||||||
|
void ROMCommandStart(u8* cmd);
|
||||||
|
void ROMCommandFinish(u8* cmd);
|
||||||
|
|
||||||
|
u8 SPIRead();
|
||||||
|
void SPIWrite(u8 val, u32 hold);
|
||||||
|
};
|
||||||
|
|
||||||
|
// CartRetailPoke -- Pok<6F>mon cart (SPI IR device and SRAM)
|
||||||
|
class CartRetailPoke : public CartCommon
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CartRetailPoke(u8* rom, u32 len);
|
||||||
|
~CartRetailPoke();
|
||||||
|
|
||||||
|
void Reset();
|
||||||
|
|
||||||
|
void DoSavestate(Savestate* file);
|
||||||
|
|
||||||
|
u8 SPIRead();
|
||||||
|
void SPIWrite(u8 val, u32 hold);
|
||||||
|
};
|
||||||
|
|
||||||
|
// CartRetailBT - Pok<6F>mon Typing Adventure (SPI BT controller)
|
||||||
|
class CartRetailBT : public CartCommon
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CartRetailBT(u8* rom, u32 len);
|
||||||
|
~CartRetailBT();
|
||||||
|
|
||||||
|
void Reset();
|
||||||
|
|
||||||
|
void DoSavestate(Savestate* file);
|
||||||
|
|
||||||
|
u8 SPIRead();
|
||||||
|
void SPIWrite(u8 val, u32 hold);
|
||||||
|
};
|
||||||
|
|
||||||
|
// CartHomebrew -- homebrew 'cart' (no SRAM, DLDI)
|
||||||
|
class CartHomebrew : public CartCommon
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CartHomebrew(u8* rom, u32 len);
|
||||||
|
~CartHomebrew();
|
||||||
|
|
||||||
|
void Reset();
|
||||||
|
|
||||||
|
void DoSavestate(Savestate* file);
|
||||||
|
|
||||||
|
void ROMCommandStart(u8* cmd);
|
||||||
|
void ROMCommandFinish(u8* cmd);
|
||||||
|
};
|
||||||
|
|
||||||
extern u16 SPICnt; //
|
extern u16 SPICnt; //
|
||||||
extern u32 ROMCnt; //
|
extern u32 ROMCnt; //
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user