diff --git a/asm/overlay_17.s b/asm/overlay_17.s index 5f4e3335..48fda735 100644 --- a/asm/overlay_17.s +++ b/asm/overlay_17.s @@ -587,7 +587,11 @@ _0238A8C0: ; jump table _0238A968: ldrb r0, [r1, #9] cmp r0, #0 +#ifdef JAPAN + movne r5, #0x3d00 +#else ldrne r5, _0238AFAC ; =0x0000041E +#endif ldreq r5, _0238AFB0 ; =0x0000041F b _0238A9F8 _0238A97C: @@ -596,7 +600,11 @@ _0238A97C: b _0238A9F8 _0238A988: ldr r5, _0238AFBC ; =0x00000426 +#ifdef JAPAN + sub r4, r5, #0xcf0 +#else ldr r4, _0238AFB8 ; =0x00003018 +#endif b _0238A9F8 _0238A994: ldr r5, _0238AFC0 ; =0x00000427 @@ -604,14 +612,22 @@ _0238A994: b _0238A9F8 _0238A9A0: ldr r5, _0238AFC4 ; =0x00000428 +#ifdef JAPAN + ldr r4, _0238AFB8 ; =0x00003018 +#else rsb r4, r5, #0x3440 +#endif b _0238A9F8 _0238A9AC: ldr r5, _0238AFC8 ; =0x00000429 ldr r4, _0238AFB8 ; =0x00003018 b _0238A9F8 _0238A9B8: +#ifdef JAPAN + ldr r5, _0238C528 ; =0x00003D02 +#else mov r5, #0x420 +#endif ldr r4, _0238AFB8 ; =0x00003018 b _0238A9F8 _0238A9C4: @@ -1036,23 +1052,33 @@ _0238AF94: add sp, sp, #0x124 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 +#ifdef JAPAN +#define OV17_0238ADFC_OFFSET 0x38E2 +#else +#define OV17_0238ADFC_OFFSET 0 +#endif _0238AF9C: .word OVERLAY17_UNKNOWN_POINTER__NA_238BE00 _0238AFA0: .word OVERLAY17_FUNCTION_POINTER_TABLE _0238AFA4: .word 0x00003008 _0238AFA8: .word ASSEMBLY_WINDOW_PARAMS_4 +#ifndef JAPAN _0238AFAC: .word 0x0000041E -_0238AFB0: .word 0x0000041F -_0238AFB4: .word 0x00000425 +#endif +_0238AFB0: .word 0x0000041F + OV17_0238ADFC_OFFSET +_0238AFB4: .word 0x00000425 + OV17_0238ADFC_OFFSET _0238AFB8: .word 0x00003018 -_0238AFBC: .word 0x00000426 -_0238AFC0: .word 0x00000427 -_0238AFC4: .word 0x00000428 -_0238AFC8: .word 0x00000429 -_0238AFCC: .word 0x00000422 -_0238AFD0: .word 0x00000421 -_0238AFD4: .word 0x00000423 -_0238AFD8: .word 0x00000424 -_0238AFDC: .word 0x0000042A +_0238AFBC: .word 0x00000426 + OV17_0238ADFC_OFFSET +_0238AFC0: .word 0x00000427 + OV17_0238ADFC_OFFSET +_0238AFC4: .word 0x00000428 + OV17_0238ADFC_OFFSET +_0238AFC8: .word 0x00000429 + OV17_0238ADFC_OFFSET +#ifdef JAPAN +_0238C528: .word 0x00003D02 +#endif +_0238AFCC: .word 0x00000422 + OV17_0238ADFC_OFFSET +_0238AFD0: .word 0x00000421 + OV17_0238ADFC_OFFSET +_0238AFD4: .word 0x00000423 + OV17_0238ADFC_OFFSET +_0238AFD8: .word 0x00000424 + OV17_0238ADFC_OFFSET +_0238AFDC: .word 0x0000042A + OV17_0238ADFC_OFFSET _0238AFE0: .word 0x00000186 _0238AFE4: .word ASSEMBLY_WINDOW_PARAMS_1 _0238AFE8: .word 0x00300013 @@ -1757,7 +1783,9 @@ _0238B81C: ldrsh r0, [r0, #0x58] bl sub_02055B20 bl sub_0203C9C4 +#ifndef JAPAN bl sub_0203AF0C +#endif bl sub_02057180 ldr r0, _0238B850 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00 mov r1, #0x1d @@ -2046,61 +2074,125 @@ ASSEMBLY_WINDOW_PARAMS_5: .byte 0x00, 0x00, 0x00, 0x00 .global ASSEMBLY_MENU_ITEMS_CONFIRM ASSEMBLY_MENU_ITEMS_CONFIRM: - .byte 0x11, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x04, 0x00, 0x00 +#ifdef JAPAN +#define OV17_DATA_OFFSET 0x38E2 +#else +#define OV17_DATA_OFFSET 0 +#endif + .word 0x411 + OV17_DATA_OFFSET + .byte 0x00, 0x00, 0x00, 0x00 + .word 0x412 + OV17_DATA_OFFSET .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .global ASSEMBLY_MAIN_MENU_ITEMS_1 ASSEMBLY_MAIN_MENU_ITEMS_1: - .byte 0x14, 0x04, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x15, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word 0x414 + OV17_DATA_OFFSET + .byte 0x03, 0x00, 0x00, 0x00 + .word 0x415 + OV17_DATA_OFFSET + .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00 .global ASSEMBLY_MAIN_MENU_ITEMS_2 ASSEMBLY_MAIN_MENU_ITEMS_2: - .byte 0x13, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x04, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x15, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word 0x413 + OV17_DATA_OFFSET + .byte 0x02, 0x00, 0x00, 0x00 + .word 0x414 + OV17_DATA_OFFSET + .byte 0x03, 0x00, 0x00, 0x00 + .word 0x415 + OV17_DATA_OFFSET + .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00 .global ASSEMBLY_SUBMENU_ITEMS_1 ASSEMBLY_SUBMENU_ITEMS_1: - .byte 0x1A, 0x04, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1B, 0x04, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x1C, 0x04, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x1D, 0x04, 0x00, 0x00 + .word 0x41A + OV17_DATA_OFFSET + .byte 0x09, 0x00, 0x00, 0x00 + .word 0x41B + OV17_DATA_OFFSET + .byte 0x0A, 0x00, 0x00, 0x00 + .word 0x41C + OV17_DATA_OFFSET + .byte 0x0B, 0x00, 0x00, 0x00 + .word 0x41D + OV17_DATA_OFFSET .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .global ASSEMBLY_SUBMENU_ITEMS_2 ASSEMBLY_SUBMENU_ITEMS_2: - .byte 0x18, 0x04, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1B, 0x04, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x1C, 0x04, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x1D, 0x04, 0x00, 0x00 + .word 0x418 + OV17_DATA_OFFSET + .byte 0x07, 0x00, 0x00, 0x00 + .word 0x41A + OV17_DATA_OFFSET + .byte 0x09, 0x00, 0x00, 0x00 + .word 0x41B + OV17_DATA_OFFSET + .byte 0x0A, 0x00, 0x00, 0x00 + .word 0x41C + OV17_DATA_OFFSET + .byte 0x0B, 0x00, 0x00, 0x00 + .word 0x41D + OV17_DATA_OFFSET .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .global ASSEMBLY_SUBMENU_ITEMS_3 ASSEMBLY_SUBMENU_ITEMS_3: - .byte 0x17, 0x04, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1B, 0x04, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x1C, 0x04, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x1D, 0x04, 0x00, 0x00 + .word 0x417 + OV17_DATA_OFFSET + .byte 0x06, 0x00, 0x00, 0x00 + .word 0x41A + OV17_DATA_OFFSET + .byte 0x09, 0x00, 0x00, 0x00 + .word 0x41B + OV17_DATA_OFFSET + .byte 0x0A, 0x00, 0x00, 0x00 + .word 0x41C + OV17_DATA_OFFSET + .byte 0x0B, 0x00, 0x00, 0x00 + .word 0x41D + OV17_DATA_OFFSET .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .global ASSEMBLY_SUBMENU_ITEMS_4 ASSEMBLY_SUBMENU_ITEMS_4: - .byte 0x18, 0x04, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x19, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x1B, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x1C, 0x04, 0x00, 0x00 - .byte 0x0B, 0x00, 0x00, 0x00, 0x1D, 0x04, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word 0x418 + OV17_DATA_OFFSET + .byte 0x07, 0x00, 0x00, 0x00 + .word 0x419 + OV17_DATA_OFFSET + .byte 0x08, 0x00, 0x00, 0x00 + .word 0x41A + OV17_DATA_OFFSET + .byte 0x09, 0x00, 0x00, 0x00 + .word 0x41B + OV17_DATA_OFFSET + .byte 0x0A, 0x00, 0x00, 0x00 + .word 0x41C + OV17_DATA_OFFSET + .byte 0x0B, 0x00, 0x00, 0x00 + .word 0x41D + OV17_DATA_OFFSET + .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00 .global ASSEMBLY_SUBMENU_ITEMS_5 ASSEMBLY_SUBMENU_ITEMS_5: - .byte 0x17, 0x04, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x19, 0x04, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1B, 0x04, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x1C, 0x04, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x1D, 0x04, 0x00, 0x00 + .word 0x417 + OV17_DATA_OFFSET + .byte 0x06, 0x00, 0x00, 0x00 + .word 0x419 + OV17_DATA_OFFSET + .byte 0x08, 0x00, 0x00, 0x00 + .word 0x41A + OV17_DATA_OFFSET + .byte 0x09, 0x00, 0x00, 0x00 + .word 0x41B + OV17_DATA_OFFSET + .byte 0x0A, 0x00, 0x00, 0x00 + .word 0x41C + OV17_DATA_OFFSET + .byte 0x0B, 0x00, 0x00, 0x00 + .word 0x41D + OV17_DATA_OFFSET .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .global ASSEMBLY_SUBMENU_ITEMS_6 ASSEMBLY_SUBMENU_ITEMS_6: - .byte 0x16, 0x04, 0x00, 0x00 - .byte 0x05, 0x00, 0x00, 0x00, 0x18, 0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x1B, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x1C, 0x04, 0x00, 0x00 - .byte 0x0B, 0x00, 0x00, 0x00, 0x1D, 0x04, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word 0x416 + OV17_DATA_OFFSET + .byte 0x05, 0x00, 0x00, 0x00 + .word 0x418 + OV17_DATA_OFFSET + .byte 0x07, 0x00, 0x00, 0x00 + .word 0x41A + OV17_DATA_OFFSET + .byte 0x09, 0x00, 0x00, 0x00 + .word 0x41B + OV17_DATA_OFFSET + .byte 0x0A, 0x00, 0x00, 0x00 + .word 0x41C + OV17_DATA_OFFSET + .byte 0x0B, 0x00, 0x00, 0x00 + .word 0x41D + OV17_DATA_OFFSET + .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00 .global ASSEMBLY_SUBMENU_ITEMS_7 ASSEMBLY_SUBMENU_ITEMS_7: - .byte 0x16, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x18, 0x04, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x19, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x1B, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x1C, 0x04, 0x00, 0x00 - .byte 0x0B, 0x00, 0x00, 0x00, 0x1D, 0x04, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word 0x416 + OV17_DATA_OFFSET + .byte 0x05, 0x00, 0x00, 0x00 + .word 0x418 + OV17_DATA_OFFSET + .byte 0x07, 0x00, 0x00, 0x00 + .word 0x419 + OV17_DATA_OFFSET + .byte 0x08, 0x00, 0x00, 0x00 + .word 0x41A + OV17_DATA_OFFSET + .byte 0x09, 0x00, 0x00, 0x00 + .word 0x41B + OV17_DATA_OFFSET + .byte 0x0A, 0x00, 0x00, 0x00 + .word 0x41C + OV17_DATA_OFFSET + .byte 0x0B, 0x00, 0x00, 0x00 + .word 0x41D + OV17_DATA_OFFSET + .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00 .global OVERLAY17_FUNCTION_POINTER_TABLE OVERLAY17_FUNCTION_POINTER_TABLE: