Reduced size of OSResetSystemPatchCode (patch_osresetsystem section). Fixes #100.

Fixes Dragon Quest Heroes - Rocket Slime (USA), Imagine - Fashion Designer (Europe) and Mugen Kouro (Japan)
This commit is contained in:
Gericom
2026-01-13 20:04:19 +01:00
parent 61ab97091a
commit 653e620c29

View File

@@ -7,8 +7,8 @@
.type patch_osresetsystem_entry, %function .type patch_osresetsystem_entry, %function
patch_osresetsystem_entry: patch_osresetsystem_entry:
adr r0, regIpcSync adr r0, regIpcSync
// regIpcSync, arm7ResetCommand, regVramCntA, vramAbcdLcdcSetting, readSdSectors_address, loader_info_address, vramCLcdcAddress, patch_osresetsystem_bootPicoLoader_address // regIpcSync, arm7ResetCommand, vramAbcdLcdcSetting, readSdSectors_address, loader_info_address, vramCLcdcAddress, patch_osresetsystem_bootPicoLoader_address
ldmia r0, {r0, r1, r2, r3, r4, r5, r6, r7} ldmia r0, {r0, r1, r3, r4, r5, r6, r7}
// r9 = readSdSectors_address // r9 = readSdSectors_address
mov r9, r4 mov r9, r4
@@ -23,22 +23,24 @@ patch_osresetsystem_entry:
str r1, [r0, #8] str r1, [r0, #8]
adds r7, #(twl_arm7_sync - patch_osresetsystem_bootPicoLoader) adds r7, #(twl_arm7_sync - patch_osresetsystem_bootPicoLoader)
mov lr, pc
.global patch_osresetsystem_entry_jump_to_twl_arm7_sync .global patch_osresetsystem_entry_jump_to_twl_arm7_sync
patch_osresetsystem_entry_jump_to_twl_arm7_sync: patch_osresetsystem_entry_jump_to_twl_arm7_sync:
bx r7 blx r7
2: 2:
ldrb r7, [r0] // ipc sync ldrb r7, [r0] // ipc sync
cmp r7, #1 cmp r7, #1
bne 2b // while ipc sync from arm7 is not 1 bne 2b // while ipc sync from arm7 is not 1
adds r0, #(0x04000240 - 0x04000180)
// map vram ABCD to LCDC // map vram ABCD to LCDC
str r3, [r2] str r3, [r0]
// load pico loader arm9 // load pico loader arm9
ldmia r5!, {r4,r6,r7} // clusterShift, database, clusterMap[0] ldmia r5!, {r4,r6,r7} // clusterShift, database, clusterMap[0]
ldr r7,= 0x06800000 movs r7, #0x68
lsls r7, r7, #20 // 0x06800000
mov r11, pc mov r11, pc
b loadData b loadData
@@ -77,9 +79,6 @@ regIpcSync:
arm7ResetCommand: arm7ResetCommand:
.word 0x4000C .word 0x4000C
regVramCntA:
.word 0x04000240
vramAbcdLcdcSetting: vramAbcdLcdcSetting:
.word 0x80808080 .word 0x80808080