make ROM path not be hardcoded.

This commit is contained in:
StapleButter
2017-03-19 19:07:39 +01:00
parent 5a061bc638
commit 59d107bfb0
5 changed files with 24 additions and 15 deletions

View File

@ -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;
} }

View File

@ -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();

View File

@ -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");

View File

@ -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();

View File

@ -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();