Skip to content

Commit d91e560

Browse files
committed
Read ResetData.bin for specific game, instead of ResetIntoRocketLauncher.nds
1 parent 4716dfb commit d91e560

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

titleandsettings/arm7/source/main.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,18 @@ unsigned int * CPUID=(unsigned int*)0x4004D00;
3939
unsigned int * CPUID2=(unsigned int*)0x4004D04;
4040

4141
//---------------------------------------------------------------------------------
42-
void LoadRocketLauncherPayload() {
42+
void RocketLauncher() {
4343
//---------------------------------------------------------------------------------
4444
memcpy((u32*)0x02800000,payload_RocketLauncher,payload_RocketLauncher_len);
45+
i2cWriteRegister(0x4A, 0x70, 0x01); // Bootflag = Warmboot/SkipHealthSafety
46+
i2cWriteRegister(0x4A, 0x11, 0x01); // Reboot to RocketLauncher
4547
}
4648

4749
//---------------------------------------------------------------------------------
4850
void VblankHandler(void) {
4951
//---------------------------------------------------------------------------------
50-
if(fifoGetValue32(FIFO_USER_08) != 0) {
51-
LoadRocketLauncherPayload();
52+
if(fifoCheckValue32(FIFO_USER_08)) {
53+
RocketLauncher();
5254
}
5355
}
5456

titleandsettings/arm9/source/main.cpp

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -203,11 +203,14 @@ int main(int argc, char **argv) {
203203
scanKeys();
204204

205205
if (arm7SCFGLocked && !gotosettings && rebootInRocketLauncher && !(keysHeld() & KEY_L)) {
206+
int size = 0x560;
207+
FILE* ResetData = fopen("sd:/_nds/ResetData.bin","rb");
208+
fread((void*)0x02000000,1,size,ResetData);
209+
fclose(ResetData);
206210
fifoSendValue32(FIFO_USER_08, 1);
207-
for (int i = 0; i < 15; i++) {
211+
for (int i = 0; i < 20; i++) {
208212
swiWaitForVBlank();
209213
}
210-
runNdsFile ("sd:/_nds/ResetIntoRocketLauncher.nds", 0, 0);
211214
}
212215

213216
if (!gotosettings && autorun && !(keysHeld() & KEY_B)) {
@@ -221,7 +224,7 @@ int main(int argc, char **argv) {
221224

222225
char vertext[12];
223226
// snprintf(vertext, sizeof(vertext), "Ver %d.%d.%d ", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH); // Doesn't work :(
224-
snprintf(vertext, sizeof(vertext), "Ver %d.%d.%d ", 1, 7, 0);
227+
snprintf(vertext, sizeof(vertext), "Ver %d.%d.%d ", 1, 7, 1);
225228

226229
if (showlogo) {
227230
graphicsInit();
@@ -720,11 +723,14 @@ int main(int argc, char **argv) {
720723
clearText();
721724
printSmall(false, 4, 4, "Saving settings...");
722725
SaveSettings();
726+
int size = 0x560;
727+
FILE* ResetData = fopen("sd:/_nds/ResetData.bin","rb");
728+
fread((void*)0x02000000,1,size,ResetData);
729+
fclose(ResetData);
723730
fifoSendValue32(FIFO_USER_08, 1);
724-
for (int i = 0; i < 15; i++) {
731+
for (int i = 0; i < 20; i++) {
725732
swiWaitForVBlank();
726733
}
727-
runNdsFile ("sd:/_nds/ResetIntoRocketLauncher.nds", 0, 0);
728734
}
729735
menuprinted = false;
730736
break;

0 commit comments

Comments
 (0)