mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-23 14:19:55 -06:00
make ROM path not be hardcoded.
This commit is contained in:
14
src/NDS.cpp
14
src/NDS.cpp
@ -135,7 +135,6 @@ bool Init()
|
|||||||
if (!SPI::Init()) return false;
|
if (!SPI::Init()) return false;
|
||||||
if (!RTC::Init()) return false;
|
if (!RTC::Init()) return false;
|
||||||
|
|
||||||
Reset();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -307,13 +306,14 @@ void Reset()
|
|||||||
KeyInput = 0x007F03FF;
|
KeyInput = 0x007F03FF;
|
||||||
|
|
||||||
_soundbias = 0;
|
_soundbias = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// test
|
void LoadROM(const char* path, bool direct)
|
||||||
//LoadROM();
|
{
|
||||||
//LoadFirmware();
|
Reset();
|
||||||
// a_interp2.nds a_rounding (10) (11) a_slope (5)
|
|
||||||
if (NDSCart::LoadROM("rom/nsmb.nds"))
|
if (NDSCart::LoadROM(path, direct))
|
||||||
Running = true; // hax
|
Running = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,6 +116,7 @@ bool Init();
|
|||||||
void DeInit();
|
void DeInit();
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
|
void LoadROM(const char* path, bool direct);
|
||||||
void SetupDirectBoot();
|
void SetupDirectBoot();
|
||||||
|
|
||||||
void RunFrame();
|
void RunFrame();
|
||||||
|
@ -601,7 +601,7 @@ void Reset()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool LoadROM(char* path)
|
bool LoadROM(const char* path, bool direct)
|
||||||
{
|
{
|
||||||
// TODO: streaming mode? for really big ROMs or systems with limited RAM
|
// TODO: streaming mode? for really big ROMs or systems with limited RAM
|
||||||
// for now we're lazy
|
// for now we're lazy
|
||||||
@ -632,10 +632,11 @@ bool LoadROM(char* path)
|
|||||||
fclose(f);
|
fclose(f);
|
||||||
//CartROM = f;
|
//CartROM = f;
|
||||||
|
|
||||||
// temp. TODO: later make this user selectable
|
if (direct)
|
||||||
// calling this sets up shit for booting from the cart directly.
|
{
|
||||||
// normal behavior is booting from the BIOS.
|
NDS::SetupDirectBoot();
|
||||||
NDS::SetupDirectBoot();
|
CmdEncMode = 2;
|
||||||
|
}
|
||||||
|
|
||||||
CartInserted = true;
|
CartInserted = true;
|
||||||
|
|
||||||
@ -650,7 +651,7 @@ bool LoadROM(char* path)
|
|||||||
if (arm9base >= 0x4000)
|
if (arm9base >= 0x4000)
|
||||||
{
|
{
|
||||||
// reencrypt secure area if needed
|
// reencrypt secure area if needed
|
||||||
if (*(u32*)&CartROM[arm9base] == 0xE7FFDEFF)
|
if (*(u32*)&CartROM[arm9base] == 0xE7FFDEFF && *(u32*)&CartROM[arm9base+0x10] != 0xE7FFDEFF)
|
||||||
{
|
{
|
||||||
printf("Re-encrypting cart secure area\n");
|
printf("Re-encrypting cart secure area\n");
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ bool Init();
|
|||||||
void DeInit();
|
void DeInit();
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
bool LoadROM(char* path);
|
bool LoadROM(const char* path, bool direct);
|
||||||
|
|
||||||
void WriteROMCnt(u32 val);
|
void WriteROMCnt(u32 val);
|
||||||
u32 ReadROMData();
|
u32 ReadROMData();
|
||||||
|
@ -86,11 +86,18 @@ MainFrame::MainFrame()
|
|||||||
|
|
||||||
sdlrend = SDL_CreateRenderer(sdlwin, -1, SDL_RENDERER_ACCELERATED); // SDL_RENDERER_PRESENTVSYNC
|
sdlrend = SDL_CreateRenderer(sdlwin, -1, SDL_RENDERER_ACCELERATED); // SDL_RENDERER_PRESENTVSYNC
|
||||||
sdltex = SDL_CreateTexture(sdlrend, SDL_PIXELFORMAT_RGBA32, SDL_TEXTUREACCESS_STREAMING, 256, 384);
|
sdltex = SDL_CreateTexture(sdlrend, SDL_PIXELFORMAT_RGBA32, SDL_TEXTUREACCESS_STREAMING, 256, 384);
|
||||||
|
|
||||||
|
NDS::Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainFrame::OnOpenROM(wxCommandEvent& event)
|
void MainFrame::OnOpenROM(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
NDS::Init();
|
wxFileDialog opener(this, _("Open ROM"), "", "", "DS ROM (*.nds)|*.nds;*.srl|Any file|*.*", wxFD_OPEN|wxFD_FILE_MUST_EXIST);
|
||||||
|
if (opener.ShowModal() == wxID_CANCEL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
wxString filename = opener.GetPath();
|
||||||
|
NDS::LoadROM(filename.mb_str(), true);
|
||||||
|
|
||||||
emuthread->EmuStatus = 1;
|
emuthread->EmuStatus = 1;
|
||||||
emumutex->Lock();
|
emumutex->Lock();
|
||||||
|
Reference in New Issue
Block a user