From a2c226ed9b0b8acd622bca01d9f084a2a1997bf4 Mon Sep 17 00:00:00 2001 From: AnonymousRandomPerson Date: Sat, 20 Apr 2024 00:01:54 -0400 Subject: [PATCH] Finished ov29 JP mismatches --- asm/overlay_29_02344B1C.s | 40 +++- asm/overlay_29_023456BC.s | 418 +++++++++++++++++++++++++++++++++++++- asm/overlay_29_02347BC8.s | 96 +++++++-- asm/overlay_29_023498A0.s | 288 ++++++++++++++++++++++---- asm/overlay_29_0234DDF4.s | 40 +++- asm/overlay_29_0234EC38.s | 32 +++ asm/overlay_31.s | 2 + 7 files changed, 833 insertions(+), 83 deletions(-) diff --git a/asm/overlay_29_02344B1C.s b/asm/overlay_29_02344B1C.s index c09b5d94..048cd440 100644 --- a/asm/overlay_29_02344B1C.s +++ b/asm/overlay_29_02344B1C.s @@ -127,6 +127,11 @@ _02344C48: .word ov29_023531CC arm_func_start ov29_02344C4C ov29_02344C4C: ; 0x02344C4C +#ifdef JAPAN +#define OV29_02344C4C_OFFSET -0xA4 +#else +#define OV29_02344C4C_OFFSET 0 +#endif stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x20 mov sb, #0 @@ -152,7 +157,7 @@ ov29_02344C4C: ; 0x02344C4C ldr r1, [r1] ldr r2, _02344E84 ; =ov29_023531A0 add r1, r1, #0x3f00 - strh r5, [r1, #0xc0] + strh r5, [r1, #0xc0 + OV29_02344C4C_OFFSET] ldrh r3, [r2] ldrh r1, [r2, #2] mov r7, r0 @@ -268,15 +273,15 @@ _02344E40: ldr r0, _02344E7C ; =DUNGEON_PTR ldr r0, [r0] add r0, r0, #0x3f00 - ldrsh r2, [r0, #0xc0] - ldrsh r1, [r0, #0xc2] + ldrsh r2, [r0, #0xc0 + OV29_02344C4C_OFFSET] + ldrsh r1, [r0, #0xc2 + OV29_02344C4C_OFFSET] add r1, r2, r1 - strh r1, [r0, #0xc0] + strh r1, [r0, #0xc0 + OV29_02344C4C_OFFSET] add sp, sp, #0x20 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _02344E7C: .word DUNGEON_PTR -_02344E80: .word 0x0002C9E8 +_02344E80: .word 0x0002C9E8 + OV29_02344C4C_OFFSET _02344E84: .word ov29_023531A0 arm_func_end ov29_02344C4C @@ -741,16 +746,21 @@ _02345508: add sp, sp, #0x198 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 +#ifdef JAPAN +#define TRY_LEADER_ITEM_PICK_UP_OFFSET -0x2C1 +#else +#define TRY_LEADER_ITEM_PICK_UP_OFFSET 0 +#endif _02345510: .word ov29_023531BC -_02345514: .word 0x00000BD2 -_02345518: .word 0x00000BD3 +_02345514: .word 0x00000BD2 + TRY_LEADER_ITEM_PICK_UP_OFFSET +_02345518: .word 0x00000BD3 + TRY_LEADER_ITEM_PICK_UP_OFFSET _0234551C: .word 0x00001308 -_02345520: .word 0x00000BD6 +_02345520: .word 0x00000BD6 + TRY_LEADER_ITEM_PICK_UP_OFFSET _02345524: .word DUNGEON_PTR _02345528: .word 0x00001304 -_0234552C: .word 0x00000BD4 -_02345530: .word 0x00000BD5 -_02345534: .word 0x00000BD7 +_0234552C: .word 0x00000BD4 + TRY_LEADER_ITEM_PICK_UP_OFFSET +_02345530: .word 0x00000BD5 + TRY_LEADER_ITEM_PICK_UP_OFFSET +_02345534: .word 0x00000BD7 + TRY_LEADER_ITEM_PICK_UP_OFFSET arm_func_end TryLeaderItemPickUp arm_func_start SpawnItem @@ -830,7 +840,11 @@ _02345648: ldr r0, [r5] add r0, r0, r6, lsl #2 add r0, r0, #0x12000 +#ifdef JAPAN + ldr r0, [r0, #0xb24] +#else ldr r0, [r0, #0xbc8] +#endif bl EntityIsValid__02345698 cmp r0, #0 addne r4, r6, #1 @@ -840,7 +854,11 @@ _02345648: ldr r0, _02345694 ; =DUNGEON_PTR ldr r0, [r0] add r0, r0, #0x3f00 +#ifdef JAPAN + strh r4, [r0, #0x1c] +#else strh r4, [r0, #0xc0] +#endif bl RemoveEmptyItemsInBag #ifdef EUROPE mov r0, #0 diff --git a/asm/overlay_29_023456BC.s b/asm/overlay_29_023456BC.s index 57aa516d..4056b660 100644 --- a/asm/overlay_29_023456BC.s +++ b/asm/overlay_29_023456BC.s @@ -61,7 +61,11 @@ _02345784: ldr r0, [r5] add r0, r0, r7, lsl #2 add r0, r0, #0x12000 +#ifdef JAPAN + ldr r0, [r0, #0xb24] +#else ldr r0, [r0, #0xbc8] +#endif bl EntityIsValid__02345698 cmp r0, #0 addne r4, r7, #1 @@ -72,7 +76,11 @@ _02345784: mov r0, #1 ldr r1, [r1] add r1, r1, #0x3f00 +#ifdef JAPAN + strh r4, [r1, #0x1c] +#else strh r4, [r1, #0xc0] +#endif ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 _023457C4: .word DUNGEON_PTR @@ -115,7 +123,11 @@ _02345830: add r0, r2, #0x1a000 ldr sl, [r7, #0x10] ldr sb, [r7, #0x1c] +#ifdef JAPAN + ldr r0, [r0, #0x18c] +#else ldr r0, [r0, #0x230] +#endif rsb r8, r1, sl, asr #8 add r8, r0, r8 sub sb, sl, sb @@ -237,7 +249,11 @@ _02345A18: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 _02345A20: .word DUNGEON_PTR +#ifdef JAPAN +_02345A24: .word 0x0001A180 +#else _02345A24: .word 0x0001A224 +#endif _02345A28: .word ov29_0237C864 _02345A2C: .word ov29_023537BC _02345A30: .word ov29_023537B4 @@ -467,14 +483,19 @@ _02345D5C: add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_02345D64: .word 0x00000BD8 +#ifdef JAPAN +#define SPAWN_DROPPED_ITEM_OFFSET -0x2C1 +#else +#define SPAWN_DROPPED_ITEM_OFFSET 0 +#endif +_02345D64: .word 0x00000BD8 + SPAWN_DROPPED_ITEM_OFFSET _02345D68: .word DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST _02345D6C: .word ov29_023531BC -_02345D70: .word 0x00000BD9 -_02345D74: .word 0x00000BDA -_02345D78: .word 0x00000BDB -_02345D7C: .word 0x00000BDF -_02345D80: .word 0x00000BDC +_02345D70: .word 0x00000BD9 + SPAWN_DROPPED_ITEM_OFFSET +_02345D74: .word 0x00000BDA + SPAWN_DROPPED_ITEM_OFFSET +_02345D78: .word 0x00000BDB + SPAWN_DROPPED_ITEM_OFFSET +_02345D7C: .word 0x00000BDF + SPAWN_DROPPED_ITEM_OFFSET +_02345D80: .word 0x00000BDC + SPAWN_DROPPED_ITEM_OFFSET arm_func_end SpawnDroppedItem arm_func_start ov29_02345D84 @@ -492,7 +513,11 @@ ov29_02345D84: ; 0x02345D84 ldr r0, [r0] ldr r1, _0234604C ; =SECONDARY_TERRAIN_TYPES add r0, r0, #0x4000 +#ifdef JAPAN + ldrsh r0, [r0, #0x30] +#else ldrsh r0, [r0, #0xd4] +#endif mov r7, r4 mov r8, r4 ldrb r0, [r1, r0] @@ -558,7 +583,11 @@ _02345E90: add r0, r3, #0x1a000 add r2, r2, #4 add r1, r1, #4 +#ifdef JAPAN + ldrb fp, [r0, #0x1a1] +#else ldrb fp, [r0, #0x245] +#endif mov r5, #0x10000 mov r7, r2, lsl #8 mov r8, r1, lsl #8 @@ -672,8 +701,13 @@ _02346048: .word DUNGEON_PTR _0234604C: .word SECONDARY_TERRAIN_TYPES _02346050: .word DISPLACEMENTS_WITHIN_3 _02346054: .word ov29_023531BC +#ifdef JAPAN +_02346058: .word 0x00000885 +_0234605C: .word 0x00000886 +#else _02346058: .word 0x00000B74 _0234605C: .word 0x00000B75 +#endif arm_func_end ov29_02345D84 arm_func_start TryGenerateUnownStoneDrop @@ -1092,7 +1126,11 @@ _0234662C: ldr r0, [r0] mov fp, r6 add r0, r0, #0x1a000 +#ifdef JAPAN + ldrb r0, [r0, #0x1a1] +#else ldrb r0, [r0, #0x245] +#endif mov r5, r6 str r0, [sp, #0x10] _0234664C: @@ -1183,11 +1221,13 @@ _02346784: add r0, r6, r8, lsl #2 mov r2, #1 bl SpawnItem +#ifndef JAPAN mov r0, r8, lsl #2 add r1, r6, r8, lsl #2 ldrsh r0, [r6, r0] ldrsh r1, [r1, #2] bl DrawMinimapTile +#endif add r0, r4, #1 mov r0, r0, lsl #0x10 mov r4, r0, asr #0x10 @@ -1202,10 +1242,15 @@ _023467C4: add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_023467D0: .word 0x00000BDD +#ifdef JAPAN +#define OV29_02346344_OFFSET -0x2C1 +#else +#define OV29_02346344_OFFSET 0 +#endif +_023467D0: .word 0x00000BDD + OV29_02346344_OFFSET _023467D4: .word ov29_023531BC -_023467D8: .word 0x00000BDC -_023467DC: .word 0x00000BDE +_023467D8: .word 0x00000BDC + OV29_02346344_OFFSET +_023467DC: .word 0x00000BDE + OV29_02346344_OFFSET _023467E0: .word DUNGEON_PTR arm_func_end ov29_02346344 @@ -1279,9 +1324,15 @@ ov29_02346888: ; 0x02346888 cmp r1, #1 cmpeq r4, #0 bne _023468F0 +#ifdef JAPAN + ldr r1, _02347CAC ; =0x0000091F + mov r2, r0 + mov r3, r0 +#else mov r2, r0 mov r3, r0 mov r1, #0xbe0 +#endif str r0, [sp] bl YesNoMenu cmp r0, #1 @@ -1294,6 +1345,9 @@ _023468F0: ldmia sp!, {r3, r4, pc} .align 2, 0 _023468F8: .word DUNGEON_PTR +#ifdef JAPAN +_02347CAC: .word 0x0000091F +#endif arm_func_end ov29_02346888 arm_func_start ov29_023468FC @@ -1322,7 +1376,11 @@ _0234694C: ldr r0, [r4] add r0, r0, r7, lsl #2 add r0, r0, #0x12000 +#ifdef JAPAN + ldr sl, [r0, #0xa84] +#else ldr sl, [r0, #0xb28] +#endif mov r0, sl bl EntityIsValid__02345698 cmp r0, #0 @@ -1416,7 +1474,11 @@ _02346A78: ldr r0, [r5] add r0, r0, r4, lsl #2 add r0, r0, #0x12000 +#ifdef JAPAN + ldr r8, [r0, #0xa84] +#else ldr r8, [r0, #0xb28] +#endif mov r0, r8 bl EntityIsValid__02345698 cmp r0, #0 @@ -1555,7 +1617,11 @@ _02346C54: ldr r0, [r6] add r0, r0, r4, lsl #2 add r0, r0, #0x12000 +#ifdef JAPAN + ldr sb, [r0, #0xa84] +#else ldr sb, [r0, #0xb28] +#endif mov r0, sb bl EntityIsValid__02345698 cmp r0, #0 @@ -1703,7 +1769,13 @@ _02346E30: arm_func_start ov29_02346E48 ov29_02346E48: ; 0x02346E48 stmdb sp!, {r3, lr} +#ifdef JAPAN + bl IsMarowakTrainingMaze + cmp r0, #0 + beq _02348210 +#endif bl ov29_02346CBC +_02348210: bl sub_02057CE8 bl CleanStickyItemsInBag ldmia sp!, {r3, pc} @@ -1746,10 +1818,27 @@ ov29_02346EBC: ; 0x02346EBC cmp r1, #0 bne _02346F04 ldr r1, _02346F0C ; =DUNGEON_PTR +#ifdef JAPAN + mov ip, #0 +#else mov r3, #0 +#endif ldr r1, [r1] add r1, r1, #0x3f4 add r2, r1, #0x400 +#ifdef JAPAN + mov r1, #0x23c + b _023482BC +_02346EE0: + mla r3, ip, r1, r2 + cmp r3, r0 + ldreq r0, _02346F10 ; =ov29_023531C8 + ldreqb r0, [r0, ip] + bxeq lr + add ip, ip, #1 +_023482BC: + cmp ip, #4 +#else b _02346EFC _02346EE0: add r1, r3, r3, lsl #3 @@ -1761,6 +1850,7 @@ _02346EE0: add r3, r3, #1 _02346EFC: cmp r3, #4 +#endif blt _02346EE0 _02346F04: mov r0, #0 @@ -1822,10 +1912,30 @@ _02346FB4: .word BAG_ITEMS_PTR_MIRROR arm_func_start ov29_02346FB8 ov29_02346FB8: ; 0x02346FB8 ldr r1, _02346FFC ; =DUNGEON_PTR +#ifdef JAPAN + mov ip, #0 +#else mov r3, #0 +#endif ldr r1, [r1] add r1, r1, #0x56 add r2, r1, #0x800 +#ifdef JAPAN + mov r1, #0x23c + b _023483A4 +_02348394: + mla r3, ip, r1, r2 + cmp r3, r0 + beq _023483AC + add ip, ip, #1 +_023483A4: + cmp ip, #4 + blt _02348394 +_023483AC: + cmp ip, #4 + mvneq r0, #0 + movne r0, ip +#else b _02346FE4 _02346FD0: add r1, r3, r3, lsl #3 @@ -1840,6 +1950,7 @@ _02346FEC: cmp r3, #4 mvneq r0, #0 movne r0, r3 +#endif bx lr .align 2, 0 _02346FFC: .word DUNGEON_PTR @@ -1900,7 +2011,11 @@ _0234705C: ldr r0, [r5] add r0, r0, r1, lsl #2 add r0, r0, #0x12000 +#ifdef JAPAN + ldr sb, [r0, #0xa80] +#else ldr sb, [r0, #0xb24] +#endif mov r0, sb bl EntityIsValid__02345698 cmp r0, #0 @@ -2032,6 +2147,23 @@ _02347224: mov r0, r1, lsl #0x10 add r1, sp, #0 mov r0, r0, asr #0x10 +#ifdef JAPAN + ldr r4, [r1, r0, lsl #2] + ldrb r0, [r4] + orr r0, r0, #8 + strb r0, [r4] + ldrb r0, [r4, #1] + cmp r0, #0 + beq _023472B4 + sub r2, r0, #1 + mov r0, #0x23c + ldr r1, _023472C0 ; =DUNGEON_PTR + mul r3, r2, r0 + ldr r0, [r1] + add r0, r0, #0x56 + add r1, r0, #0x800 + ldrb r0, [r1, r3] +#else ldr r3, [r1, r0, lsl #2] ldrb r0, [r3] orr r0, r0, #8 @@ -2047,15 +2179,24 @@ _02347224: add r2, r0, #0x800 ldrb r0, [r2, r1, lsl #6] mov r1, r1, lsl #6 +#endif tst r0, #1 movne r0, #1 moveq r0, #0 tst r0, #0xff +#ifdef JAPAN + ldrneb r0, [r1, r3] + orrne r0, r0, #8 + strneb r0, [r1, r3] +_023472B4: + ldrsh r0, [r4, #4] +#else ldrneb r0, [r2, r1] orrne r0, r0, #8 strneb r0, [r2, r1] _023472B4: ldrsh r0, [r3, #4] +#endif _023472B8: add sp, sp, #0xc8 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -2083,7 +2224,11 @@ GenerateItem: ; 0x023472C4 ldr r1, _02347374 ; =DUNGEON_PTR ldr r1, [r1] add r1, r1, #0x28000 +#ifdef JAPAN + ldrb r1, [r1, #0x618] +#else ldrb r1, [r1, #0x6bc] +#endif cmp r0, r1 movlt r6, #1 b _02347324 @@ -2104,7 +2249,11 @@ _02347324: ldr r0, [r1, #0x7cc] cmp r0, #0 add r0, r1, #0x28000 +#ifdef JAPAN + ldrb r2, [r0, #0x625] +#else ldrb r2, [r0, #0x6c9] +#endif moveq r3, #5 movne r3, #0x28 mul r1, r2, r3 @@ -2124,11 +2273,19 @@ ov29_02347378: ; 0x02347378 ldr r0, [r3] cmp r2, #0 add r0, r0, #0x1a000 +#ifdef JAPAN + ldrb fp, [r0, #0x1a1] +#else ldrb fp, [r0, #0x245] +#endif beq _023473B0 cmp r2, #0 beq _023473B8 +#ifdef JAPAN + ldrb r0, [r0, #0x19a] +#else ldrb r0, [r0, #0x23e] +#endif cmp r0, #0 bne _023473B8 _023473B0: @@ -2240,7 +2397,11 @@ ov29_02347518: ; 0x02347518 ldr r4, [r4] mov r6, #3 add r0, r4, #0x1a000 +#ifdef JAPAN + ldrb r0, [r0, #0x1a1] +#else ldrb r0, [r0, #0x245] +#endif mov r5, #0 mov sb, r3 str r0, [sp, #0x20] @@ -2252,6 +2413,16 @@ ov29_02347518: ; 0x02347518 mov r0, r1 str r0, [r4, #0x180] str r5, [r4, #0xe8] +#ifdef JAPAN + ldrh r5, [r2] + str r1, [sp, #8] + mov r1, #0x18 + strh r5, [r4, #0xd0] + ldrh r5, [r2, #2] + add r0, r4, #0xcc + ldr r8, [sp, #0x270] + strh r5, [r4, #0xd2] +#else ldrh r6, [r2] str r1, [sp, #8] mov r1, #0x18 @@ -2260,6 +2431,7 @@ ov29_02347518: ; 0x02347518 add r0, r4, #0xcc ldr r8, [sp, #0x270] strh r6, [r4, #0xd2] +#endif ldrsh r3, [r2] ldrsh r2, [r2, #2] smulbb r3, r3, r1 @@ -2268,7 +2440,11 @@ ov29_02347518: ; 0x02347518 mov r1, r1, lsl #8 mov r2, r2, lsl #8 bl ov29_022E1A84 +#ifdef JAPAN + mov r0, #0 +#else mov r0, r5 +#endif str r0, [sp, #0x1c] strh r0, [r4, #0xf2] ldr r0, [sl] @@ -2281,10 +2457,16 @@ ov29_02347518: ; 0x02347518 movne r0, #1 strne r0, [sp, #0x1c] _023475D4: +#ifdef JAPAN + mov r0, #1 + ldrsh fp, [r8, #2] + mov r5, #0 +#else ldrsh r1, [r8, #2] mov r0, #1 mov r6, #0 str r1, [sp, #0x24] +#endif bl ov29_0234B4CC _023475E8: ldrh r2, [r4, #0xd0] @@ -2300,23 +2482,48 @@ _023475E8: ldr r1, _02347B40 ; =DIRECTIONS_XY mov r2, sb, lsl #2 add r0, r1, sb, lsl #2 +#ifdef JAPAN + ldrsh r6, [r4, #0xd0] +#else ldrsh r7, [r4, #0xd0] +#endif ldrsh r3, [r1, r2] ldrsh r2, [r4, #0xd2] ldrsh r1, [r0, #2] +#ifdef JAPAN + add r0, r6, r3 +#else add r0, r7, r3 +#endif add r1, r2, r1 bl GetTile ldrh r0, [r0] tst r0, #3 bne _023476BC ldrsh r0, [sp, #0x46] +#ifdef JAPAN + mov r6, #0 +#else mov r7, #0 +#endif str r0, [sp, #0x10] ldrsh r0, [sp, #0x44] str r0, [sp, #0xc] ldr r0, _02347B44 ; =ov29_023516FC add r0, r0, sb, lsl #2 +#ifdef JAPAN + str r0, [sp, #0x24] + b _023476B4 +_02347668: + ldr r0, [sp, #0x24] + ldrb r7, [r6, r0] + cmp r7, #8 + bge _023476B0 + ldr r0, _02347B40 ; =DIRECTIONS_XY + mov r1, r7, lsl #2 + ldrsh r1, [r0, r1] + add r0, r0, r7, lsl #2 +#else str r0, [sp, #0x28] b _023476B4 _02347668: @@ -2328,6 +2535,7 @@ _02347668: mov r1, fp, lsl #2 ldrsh r1, [r0, r1] add r0, r0, fp, lsl #2 +#endif ldrsh r2, [r0, #2] ldr r0, [sp, #0xc] add r0, r0, r1 @@ -2336,12 +2544,21 @@ _02347668: bl GetTile ldrh r0, [r0] tst r0, #3 +#ifdef JAPAN + movne sb, r7 + bne _023476BC +_023476B0: + add r6, r6, #1 +_023476B4: + cmp r6, #4 +#else movne sb, fp bne _023476BC _023476B0: add r7, r7, #1 _023476B4: cmp r7, #4 +#endif blt _02347668 _023476BC: mov r0, sb, lsl #0x10 @@ -2370,25 +2587,42 @@ _023476BC: cmplt r1, #0x20 blt _02347728 _02347720: +#ifdef JAPAN + mov r6, #2 +#else mov r7, #2 +#endif b _02347978 _02347728: mov r2, sb, lsl #2 add r1, r0, sb, lsl #2 ldrsh r0, [r0, r2] ldrsh r1, [r1, #2] +#ifdef JAPAN + mov r6, #0 +#else mov r7, #0 +#endif mov r0, r0, lsl #0xa str r0, [sp, #0x14] and r0, sb, #0xff +#ifdef JAPAN + mov r7, r1, lsl #0xa + str r0, [sp, #0x28] +#else mov fp, r1, lsl #0xa str r0, [sp, #0x2c] +#endif _02347750: mov r0, #0 str r0, [sp, #0x18] ldr r1, [sp, #0x14] add r0, r4, #0xcc +#ifdef JAPAN + mov r2, r7 +#else mov r2, fp +#endif bl ov29_022E1A90 bl IsWaterTileset cmp r0, #0 @@ -2407,7 +2641,11 @@ _02347750: mov r0, #1 str r0, [sp] ldr r1, [sp, #0x20] +#ifdef JAPAN + ldr r3, [sp, #0x28] +#else ldr r3, [sp, #0x2c] +#endif add r0, r4, #0xcc mov r2, #0 bl ov29_023457C8 @@ -2420,30 +2658,52 @@ _02347750: mov r0, #0x12 bl AdvanceFrame _023477DC: +#ifdef JAPAN + add r6, r6, #1 + cmp r6, #6 +#else add r7, r7, #1 cmp r7, #6 +#endif blt _02347750 ldrsh r0, [r4, #0xd0] ldrsh r1, [r4, #0xd2] bl GetTile +#ifdef JAPAN + mov r6, r0 + ldrh r0, [r6] +#else mov r7, r0 ldrh r0, [r7] +#endif tst r0, #3 ldreqb r0, [r8] cmpeq r0, #0 bne _02347824 ldrh r1, [sp, #0x44] ldrh r0, [sp, #0x46] +#ifdef JAPAN + mov r6, #1 +#else mov r7, #1 +#endif strh r1, [r4, #0xd0] strh r0, [r4, #0xd2] b _02347978 _02347824: +#ifdef JAPAN + ldr r0, [r6, #0xc] +#else ldr r0, [r7, #0xc] +#endif cmp r0, #0 beq _02347960 ldrb r1, [r8] +#ifdef JAPAN + mov r7, #0 +#else mov fp, #0 +#endif cmp r1, #0 ldreq r1, [r0] cmpeq r1, #1 @@ -2458,6 +2718,16 @@ _02347824: cmp r0, #0 beq _02347870 _0234786C: +#ifdef JAPAN + mov r7, #1 +_02347870: + cmp r7, #0 + addne r0, sb, #4 + andne sb, r0, #7 + bne _02347960 + ldr r0, [r6, #0xc] + mov r7, #1 +#else mov fp, #1 _02347870: cmp fp, #0 @@ -2472,20 +2742,31 @@ _02347870: _02347894: ldr r0, [r7, #0xc] mov fp, #1 +#endif ldr r0, [r0] cmp r0, #1 bne _0234791C add r0, sp, #0x34 +#ifdef JAPAN + add r1, r7, #0x194 + bl InitMove + ldr r0, [r6, #0xc] +#else add r1, fp, #0x194 bl InitMove ldr r0, [r7, #0xc] +#endif add r1, sp, #0x34 bl TwoTurnMoveForcedMiss cmp r0, #0 ldr r0, [sp, #8] mov r1, #1 ldrsh r0, [r0, #4] +#ifdef JAPAN + movne r7, #0 +#else movne fp, #0 +#endif bl TestItemAiFlag cmp r0, #0 bne _0234791C @@ -2500,10 +2781,31 @@ _02347894: cmp r0, #0 beq _0234791C _02347908: +#ifdef JAPAN + ldr r1, [r6, #0xc] +#else ldr r1, [r7, #0xc] +#endif mov r0, sl bl ov29_022FAFD4 cmp r0, #0 +#ifdef JAPAN + movne r7, #0 +_0234791C: + cmp r7, #0 + beq _02347960 + cmp r5, #0x40 + bge _02347950 + ldr r1, [r6, #0xc] + add r2, sp, #0x48 + mov r0, sl + str r1, [r2, r5, lsl #3] + bl DoesProjectileHitTarget + add r1, sp, #0x48 + add r1, r1, r5, lsl #3 + strb r0, [r1, #4] + add r5, r5, #1 +#else movne fp, #0 _0234791C: cmp fp, #0 @@ -2519,9 +2821,43 @@ _0234791C: add r1, r1, r6, lsl #3 strb r0, [r1, #4] add r6, r6, #1 +#endif _02347950: ldrb r0, [r8] cmp r0, #0 +#ifdef JAPAN + moveq r6, #0 + beq _02347978 +_02347960: + sub fp, fp, #1 + cmp fp, #0 + bgt _023475E8 + mov r6, #1 +_02347978: + mov r0, #0 + bl ov29_0234B4CC + ldr r0, _02348EF8 ; =0x00000922 + mov fp, #0 + sub r0, r0, #1 + str r0, [sp, #0x2c] + b _02347A94 +_02347988: + add r0, sp, #0x48 + ldr r7, [r0, fp, lsl #3] + cmp r7, #0 + moveq r0, #0 + beq _02348D5C + ldr r0, [r7] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + and r0, r0, #0xff +_02348D5C: + cmp r0, #0 + beq _02347A90 + add r0, sp, #0x48 + add r0, r0, fp, lsl #3 +#else moveq r7, #0 beq _02347978 _02347960: @@ -2549,22 +2885,36 @@ _02347988: beq _02347A90 add r0, sp, #0x48 add r0, r0, r5, lsl #3 +#endif ldrb r0, [r0, #4] cmp r0, #0 beq _02347A38 mov r0, #0 +#ifdef JAPAN + mov r1, r7 +#else mov r1, fp +#endif mov r2, r0 bl SubstitutePlaceholderStringTags ldr r1, [sp, #8] mov r0, #0 bl ov29_02344B70 +#ifdef JAPAN + mov r0, sl + mov r1, r7 + mov r2, #0x920 + bl LogMessageByIdWithPopupCheckUserTarget + mov r0, sl + mov r1, r7 +#else ldr r2, _02347B48 ; =0x00000BE1 mov r0, sl mov r1, fp bl LogMessageByIdWithPopupCheckUserTarget mov r0, sl mov r1, fp +#endif bl ov29_02307BDC mov r2, r0 ldr r0, [sp, #0x1c] @@ -2576,39 +2926,70 @@ _02347988: moveq r0, #0 and r1, r0, #0xff ldr r0, [sp, #8] +#ifdef JAPAN + str r7, [sp] +#else str fp, [sp] +#endif str r0, [sp, #4] mov r0, #1 bl ApplyItemEffect b _02347A90 _02347A38: ldrb r0, [r8] +#ifdef JAPAN + mov r1, r7 + cmp r0, #0 + mov r0, #0 + cmpeq r5, #1 + mov r2, r0 + moveq r6, #1 +#else mov r1, fp cmp r0, #0 mov r0, #0 cmpeq r6, #1 mov r2, r0 moveq r7, #1 +#endif bl SubstitutePlaceholderStringTags ldr r1, [sp, #8] mov r0, #0 bl ov29_02344B44 ldrb r0, [r8] +#ifdef JAPAN + mov r1, r7 +#else mov r1, fp ldr r2, _02347B48 ; =0x00000BE1 +#endif cmp r0, #0 mov r0, sl beq _02347A88 +#ifdef JAPAN + ldr r2, [sp, #0x2c] +#else add r2, r2, #1 +#endif bl LogMessageByIdWithPopupCheckUserTarget b _02347A90 _02347A88: +#ifdef JAPAN + ldr r2, _02348EF8 ; =0x00000922 +#else add r2, r2, #2 +#endif bl LogMessageByIdWithPopupCheckUserTarget _02347A90: +#ifdef JAPAN + add fp, fp, #1 +_02347A94: + cmp fp, r5 +#else add r5, r5, #1 _02347A94: cmp r5, r6 +#endif blt _02347988 _02347A9C: mov r0, sb, lsl #0x10 @@ -2618,7 +2999,11 @@ _02347A9C: add r0, r1, r0, lsl #2 ldrh r1, [r1, r2] ldrh r0, [r0, #2] +#ifdef JAPAN + cmp r6, #0 +#else cmp r7, #0 +#endif strh r1, [sp, #0x30] strh r0, [sp, #0x32] ldrsh r1, [sp, #0x30] @@ -2628,9 +3013,15 @@ _02347A9C: strh r1, [sp, #0x40] strh r0, [sp, #0x42] beq _02347B34 +#ifdef JAPAN + cmp r6, #1 + beq _02347AF4 + cmp r6, #2 +#else cmp r7, #1 beq _02347AF4 cmp r7, #2 +#endif beq _02347B1C b _02347B34 _02347AF4: @@ -2658,8 +3049,13 @@ _02347B34: _02347B3C: .word DUNGEON_PTR _02347B40: .word DIRECTIONS_XY _02347B44: .word ov29_023516FC +#ifdef JAPAN +_02348EF8: .word 0x00000922 +_02347B4C: .word 0x00000924 +#else _02347B48: .word 0x00000BE1 _02347B4C: .word 0x00000BE5 +#endif arm_func_end ov29_02347518 arm_func_start ItemIsActive__02347B50 @@ -2686,7 +3082,11 @@ ExclusiveItemEffectIsActive__02347B80: ; 0x02347B80 cmp r0, #0 movne r0, #0 ldmneia sp!, {r3, pc} +#ifdef JAPAN + add r0, r2, #0x224 +#else add r0, r2, #0x228 +#endif bl ExclusiveItemEffectFlagTest ldmia sp!, {r3, pc} arm_func_end ExclusiveItemEffectIsActive__02347B80 diff --git a/asm/overlay_29_02347BC8.s b/asm/overlay_29_02347BC8.s index 97471f32..dbf02988 100644 --- a/asm/overlay_29_02347BC8.s +++ b/asm/overlay_29_02347BC8.s @@ -12,7 +12,11 @@ ov29_02347BC8: ; 0x02347BC8 ldr r4, [r4] mov r6, #3 add r0, r4, #0x1a000 +#ifdef JAPAN + ldrb r0, [r0, #0x1a1] +#else ldrb r0, [r0, #0x245] +#endif mov r5, #0 mov sb, r3 str r0, [sp, #0x30] @@ -236,9 +240,15 @@ _02347F10: mov r0, r5 mov r1, #8 bl ov29_02304A84 +#ifdef JAPAN + mov r0, sl + mov r1, r5 + mov r2, #0x920 +#else ldr r2, _02348014 ; =0x00000BE1 mov r0, sl mov r1, r5 +#endif bl LogMessageByIdWithPopupCheckUserTarget mov r0, sl mov r1, r5 @@ -296,9 +306,14 @@ _02348004: .align 2, 0 _0234800C: .word DUNGEON_PTR _02348010: .word 0x00000195 +#ifdef JAPAN +_02348018: .word 0x00000923 +_0234801C: .word 0x00000922 +#else _02348014: .word 0x00000BE1 _02348018: .word 0x00000BE4 _0234801C: .word 0x00000BE3 +#endif arm_func_end ov29_02347BC8 arm_func_start DoesProjectileHitTarget @@ -371,6 +386,11 @@ ov29_023480FC: ; 0x023480FC arm_func_start ov29_02348100 ov29_02348100: ; 0x02348100 +#ifdef JAPAN +#define OV29_02348100_OFFSET -4 +#else +#define OV29_02348100_OFFSET 0 +#endif stmdb sp!, {r4, r5, r6, r7, r8, lr} movs r4, r0 moveq r0, #0 @@ -390,7 +410,7 @@ _02348124: ldrsh r1, [r7, #4] ldrb r2, [r7, #0x5e] ldrb r3, [r7, #0x5f] - add r0, r7, #0x224 + add r0, r7, #0x224 + OV29_02348100_OFFSET bl sub_02011220 mov r0, r4 mov r1, #0x4c @@ -435,47 +455,47 @@ _023481C4: cmp r0, #0 movne r6, #1 mov r8, #0 - add r4, r7, #0x124 + add r4, r7, #0x124 + OV29_02348100_OFFSET _023481FC: add r0, r7, r8, lsl #3 cmp r5, #0 addne r0, r0, #0x100 - ldrneh r1, [r0, #0x26] + ldrneh r1, [r0, #0x26 + OV29_02348100_OFFSET] orrne r1, r1, #0x200 - strneh r1, [r0, #0x26] + strneh r1, [r0, #0x26 + OV29_02348100_OFFSET] bne _02348248 add r1, r0, #0x100 - ldrh r2, [r1, #0x26] + ldrh r2, [r1, #0x26 + OV29_02348100_OFFSET] add r0, r4, r8, lsl #3 bic r2, r2, #0x200 - strh r2, [r1, #0x26] + strh r2, [r1, #0x26 + OV29_02348100_OFFSET] bl GetMaxPp add r2, r7, r8, lsl #3 mov r0, r0, lsl #0x10 - ldrb r1, [r2, #0x12a] + ldrb r1, [r2, #0x12a + OV29_02348100_OFFSET] mov r3, r0, asr #0x10 cmp r1, r0, asr #16 - strgtb r3, [r2, #0x12a] + strgtb r3, [r2, #0x12a + OV29_02348100_OFFSET] _02348248: add r0, r7, r8, lsl #3 cmp r6, #0 addne r0, r0, #0x100 - ldrneh r1, [r0, #0x26] + ldrneh r1, [r0, #0x26 + OV29_02348100_OFFSET] orrne r1, r1, #0x400 - strneh r1, [r0, #0x26] + strneh r1, [r0, #0x26 + OV29_02348100_OFFSET] bne _02348294 add r1, r0, #0x100 - ldrh r2, [r1, #0x26] + ldrh r2, [r1, #0x26 + OV29_02348100_OFFSET] add r0, r4, r8, lsl #3 bic r2, r2, #0x400 - strh r2, [r1, #0x26] + strh r2, [r1, #0x26 + OV29_02348100_OFFSET] bl GetMaxPp add r2, r7, r8, lsl #3 mov r0, r0, lsl #0x10 - ldrb r1, [r2, #0x12a] + ldrb r1, [r2, #0x12a + OV29_02348100_OFFSET] mov r3, r0, asr #0x10 cmp r1, r0, asr #16 - strgtb r3, [r2, #0x12a] + strgtb r3, [r2, #0x12a + OV29_02348100_OFFSET] _02348294: add r0, r8, #1 mov r0, r0, lsl #0x10 @@ -658,12 +678,28 @@ ov29_023484A0: ; 0x023484A0 ldr r4, _02348804 ; =DUNGEON_PTR b _02348798 _023484FC: +#ifdef JAPAN + mov r0, r8 + bl GetAcceptedMission + mov sb, r0 + ldrb r0, [sb] + cmp r0, #5 + ldreqb r1, [r7] + ldreqb r0, [sb, #4] + cmpeq r1, r0 + ldreqb r1, [r7, #1] + ldreqb r0, [sb, #5] + cmpeq r1, r0 + movne r0, #0 + bne _02348784 +#else mov r0, r7 mov r1, r8 bl ov29_02349790 movs sb, r0 moveq r0, #0 beq _02348784 +#endif strb r6, [r7, #0x18] ldrb r0, [sb, #1] strb r0, [r7, #0x19] @@ -881,6 +917,7 @@ _02348804: .word DUNGEON_PTR _02348808: .word ov10_022C48E4 arm_func_end ov29_023484A0 +#ifndef JAPAN arm_func_start ov29_0234880C ov29_0234880C: ; 0x0234880C stmdb sp!, {r3, r4, r5, lr} @@ -922,6 +959,7 @@ ov29_02348850: ; 0x02348850 .align 2, 0 _02348884: .word DUNGEON_PTR arm_func_end ov29_02348850 +#endif arm_func_start ov29_02348888 ov29_02348888: ; 0x02348888 @@ -1098,7 +1136,11 @@ _02348A90: mov r0, #0 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 +#ifdef JAPAN +_02348AB8: .word 0x00000B65 +#else _02348AB8: .word 0x00000E24 +#endif arm_func_end ov29_02348A18 arm_func_start ov29_02348ABC @@ -1130,7 +1172,11 @@ ov29_02348ABC: ; 0x02348ABC ldmia sp!, {r3, pc} .align 2, 0 _02348B20: .word DUNGEON_PTR +#ifdef JAPAN +_02348B24: .word 0x00000B63 +#else _02348B24: .word 0x00000E22 +#endif arm_func_end ov29_02348ABC arm_func_start ov29_02348B28 @@ -1164,8 +1210,13 @@ ov29_02348B28: ; 0x02348B28 ldmia sp!, {r4, pc} .align 2, 0 _02348B94: .word DUNGEON_PTR +#ifdef JAPAN +_02348B98: .word 0x00000B58 +_02348B9C: .word 0x00000B85 +#else _02348B98: .word 0x00000E17 _02348B9C: .word 0x00000E44 +#endif arm_func_end ov29_02348B28 arm_func_start ov29_02348BA0 @@ -1224,9 +1275,14 @@ _02348C50: add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 -_02348C58: .word 0x00000E3B -_02348C5C: .word 0x00000E3C -_02348C60: .word 0x00000E3D +#ifdef JAPAN +#define OV29_02348BE8_OFFSET -0x2BF +#else +#define OV29_02348BE8_OFFSET 0 +#endif +_02348C58: .word 0x00000E3B + OV29_02348BE8_OFFSET +_02348C5C: .word 0x00000E3C + OV29_02348BE8_OFFSET +_02348C60: .word 0x00000E3D + OV29_02348BE8_OFFSET arm_func_end ov29_02348BE8 arm_func_start ov29_02348C64 @@ -1413,7 +1469,11 @@ _02348EAC: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 +#ifdef JAPAN +_02348EC8: .word 0x00000911 +#else _02348EC8: .word 0x00000BD2 +#endif arm_func_end ov29_02348DD8 arm_func_start ov29_02348ECC @@ -2197,6 +2257,7 @@ _02349788: bx lr arm_func_end FloorHasMissionMonster +#ifndef JAPAN arm_func_start ov29_02349790 ov29_02349790: ; 0x02349790 stmdb sp!, {r4, lr} @@ -2214,6 +2275,7 @@ ov29_02349790: ; 0x02349790 movne r0, #0 ldmia sp!, {r4, pc} arm_func_end ov29_02349790 +#endif arm_func_start ov29_023497C8 ov29_023497C8: ; 0x023497C8 diff --git a/asm/overlay_29_023498A0.s b/asm/overlay_29_023498A0.s index 2f888477..1ab5e608 100644 --- a/asm/overlay_29_023498A0.s +++ b/asm/overlay_29_023498A0.s @@ -13,6 +13,7 @@ GenerateMissionEggMonster: ; 0x023498A0 bne _02349A54 bl GetRandomSpawnMonsterID mov sb, r0 +#ifndef JAPAN bl IsCastform cmp r0, #0 mov r0, sb @@ -32,6 +33,7 @@ _023498E4: moveq sb, #0x1cc ldrne sb, _02349A64 ; =0x00000424 _02349904: +#endif ldr r0, _02349A68 ; =0x000001C1 sub r0, r0, #2 str r0, [sp, #8] @@ -126,9 +128,11 @@ _02349A54: add sp, sp, #0x18 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 +#ifndef JAPAN _02349A5C: .word 0x0000017B _02349A60: .word 0x000003D3 _02349A64: .word 0x00000424 +#endif _02349A68: .word 0x000001C1 _02349A6C: .word 0x00000418 arm_func_end GenerateMissionEggMonster @@ -143,7 +147,11 @@ _02349A80: ldr r0, [r4] add r0, r0, r5, lsl #2 add r0, r0, #0x12000 +#ifdef JAPAN + ldr r6, [r0, #0xa84] +#else ldr r6, [r0, #0xb28] +#endif mov r0, r6 bl EntityIsValid__0234987C cmp r0, #0 @@ -385,8 +393,13 @@ _02349DC8: mov r0, #1 mov r2, #0 bl SubstitutePlaceholderStringTags +#ifdef JAPAN + ldr r1, _0234B4B4 ; =0x00000B71 + mov r0, #0 +#else mov r0, #0 mov r1, #0xe30 +#endif mov r2, #1 bl DisplayMessage ldrsh r4, [r4, #0xa] @@ -430,8 +443,13 @@ _02349E6C: mov r1, r5 mov r2, #0 bl SubstitutePlaceholderStringTags +#ifdef JAPAN + ldr r1, _0234B4B4 ; =0x00000B71 + mov r0, #0 +#else mov r0, #0 mov r1, #0xe30 +#endif mov r2, #1 bl DisplayMessage ldrsh r4, [r4, #0xa] @@ -573,8 +591,13 @@ _0234A088: mov r1, r4 mov r0, #1 bl ov29_0234B0CC +#ifdef JAPAN + add r0, sp, #0x40 + mov r1, #0xb50 +#else ldr r1, _0234A238 ; =0x00000E0F add r0, sp, #0x40 +#endif mov r2, #1 bl DisplayMessage b _0234A1D4 @@ -593,8 +616,13 @@ _0234A0D4: mov r1, r4 mov r0, #1 bl ov29_0234B0CC +#ifdef JAPAN + ldr r1, _0234B4DC_2 ; =0x00000B51 + add r0, sp, #0x30 +#else add r0, sp, #0x30 mov r1, #0xe10 +#endif mov r2, #1 bl DisplayMessage b _0234A1D4 @@ -665,23 +693,35 @@ _0234A1F8: add sp, sp, #0xa0 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 +#ifdef JAPAN +#define OV29_02349C84_OFFSET -0x2BF +#else +#define OV29_02349C84_OFFSET 0 +#endif _0234A200: .word ov29_023537C8 -_0234A204: .word 0x00000E11 -_0234A208: .word 0x00000E04 -_0234A20C: .word 0x00000E34 -_0234A210: .word 0x00000E35 -_0234A214: .word 0x00000E31 -_0234A218: .word 0x00000E32 +_0234A204: .word 0x00000E11 + OV29_02349C84_OFFSET +_0234A208: .word 0x00000E04 + OV29_02349C84_OFFSET +_0234A20C: .word 0x00000E34 + OV29_02349C84_OFFSET +_0234A210: .word 0x00000E35 + OV29_02349C84_OFFSET +#ifdef JAPAN +_0234B4B4: .word 0x00000B71 +#endif +_0234A214: .word 0x00000E31 + OV29_02349C84_OFFSET +_0234A218: .word 0x00000E32 + OV29_02349C84_OFFSET _0234A21C: .word DUNGEON_PTR -_0234A220: .word 0x00000E33 -_0234A224: .word 0x00000E0A -_0234A228: .word 0x00000E0B -_0234A22C: .word 0x00000E0C -_0234A230: .word 0x00000E0D -_0234A234: .word 0x00000E0E +_0234A220: .word 0x00000E33 + OV29_02349C84_OFFSET +_0234A224: .word 0x00000E0A + OV29_02349C84_OFFSET +_0234A228: .word 0x00000E0B + OV29_02349C84_OFFSET +_0234A22C: .word 0x00000E0C + OV29_02349C84_OFFSET +_0234A230: .word 0x00000E0D + OV29_02349C84_OFFSET +_0234A234: .word 0x00000E0E + OV29_02349C84_OFFSET +#ifdef JAPAN +_0234B4DC_2: .word 0x00000B51 +#else _0234A238: .word 0x00000E0F -_0234A23C: .word 0x00000E09 -_0234A240: .word 0x00000E07 +#endif +_0234A23C: .word 0x00000E09 + OV29_02349C84_OFFSET +_0234A240: .word 0x00000E07 + OV29_02349C84_OFFSET arm_func_end ov29_02349C84 arm_func_start ov29_0234A244 @@ -705,8 +745,13 @@ _0234A26C: bl ov29_023009CC cmp r0, #0 bne _0234A2A0 +#ifdef JAPAN + mov r0, #0 + mov r1, #0xb70 +#else ldr r1, _0234A2CC ; =0x00000E2F mov r0, #0 +#endif mov r2, #1 bl DisplayMessage2 ldmia sp!, {r3, r4, r5, pc} @@ -722,9 +767,14 @@ _0234A2A0: bl DisplayMessage2 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 +#ifdef JAPAN +_0234A2C8: .word 0x00000B6E +_0234A2D0: .word 0x00000B6D +#else _0234A2C8: .word 0x00000E2D _0234A2CC: .word 0x00000E2F _0234A2D0: .word 0x00000E2C +#endif arm_func_end ov29_0234A244 arm_func_start ov29_0234A2D4 @@ -828,7 +878,11 @@ _0234A40C: ldr r0, [r0] add r0, r0, r1, lsl #2 add r0, r0, #0x12000 +#ifdef JAPAN + ldr r1, [r0, #0xa84] +#else ldr r1, [r0, #0xb28] +#endif cmp r1, #0 moveq r0, #0 beq _0234A468 @@ -872,15 +926,25 @@ _0234A47C: add r0, sp, #0x14 mov r2, #1 bl DisplayMessage +#ifdef JAPAN + mov r0, #0 + mov r1, #0xb60 +#else ldr r1, _0234A5CC ; =0x00000E1F mov r0, #0 +#endif mov r2, #1 bl DisplayMessage ldr r4, _0234A5D0 ; =0x00000E44 b _0234A570 _0234A504: +#ifdef JAPAN + ldr r1, _0234B870 ; =0x00000B61 + mov r2, r0 +#else mov r2, r0 mov r1, #0xe20 +#endif str r0, [sp] bl YesNoMenu cmp r0, #1 @@ -925,19 +989,29 @@ _0234A5A8: add sp, sp, #0x24 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0234A5B0: .word 0x00000E27 -_0234A5B4: .word 0x00000E21 +#ifdef JAPAN +#define OV29_0234A2D4_OFFSET -0x2BF +#else +#define OV29_0234A2D4_OFFSET 0 +#endif +_0234A5B0: .word 0x00000E27 + OV29_0234A2D4_OFFSET +_0234A5B4: .word 0x00000E21 + OV29_0234A2D4_OFFSET _0234A5B8: .word BAG_ITEMS_PTR_MIRROR -_0234A5BC: .word 0x00000E26 +_0234A5BC: .word 0x00000E26 + OV29_0234A2D4_OFFSET _0234A5C0: .word DUNGEON_PTR -_0234A5C4: .word 0x00000E1D -_0234A5C8: .word 0x00000E1E +_0234A5C4: .word 0x00000E1D + OV29_0234A2D4_OFFSET +_0234A5C8: .word 0x00000E1E + OV29_0234A2D4_OFFSET +#ifndef JAPAN _0234A5CC: .word 0x00000E1F -_0234A5D0: .word 0x00000E44 -_0234A5D4: .word 0x00000E1A -_0234A5D8: .word 0x00000E1B -_0234A5DC: .word 0x00000E1C -_0234A5E0: .word 0x00000E23 +#endif +_0234A5D0: .word 0x00000E44 + OV29_0234A2D4_OFFSET +#ifdef JAPAN +_0234B870: .word 0x00000B61 +#endif +_0234A5D4: .word 0x00000E1A + OV29_0234A2D4_OFFSET +_0234A5D8: .word 0x00000E1B + OV29_0234A2D4_OFFSET +_0234A5DC: .word 0x00000E1C + OV29_0234A2D4_OFFSET +_0234A5E0: .word 0x00000E23 + OV29_0234A2D4_OFFSET arm_func_end ov29_0234A2D4 arm_func_start ov29_0234A5E4 @@ -982,8 +1056,13 @@ _0234A65C: bl ov29_023009CC cmp r0, #0 bne _0234A690 +#ifdef JAPAN + mov r0, #0 + mov r1, #0xb70 +#else ldr r1, _0234A748 ; =0x00000E2F mov r0, #0 +#endif mov r2, #1 bl DisplayMessage2 b _0234A738 @@ -1035,17 +1114,25 @@ _0234A738: add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 -_0234A740: .word 0x00000E2E -_0234A744: .word 0x00000E2D +#ifdef JAPAN +#define OV29_0234A5E4_OFFSET -0x2BF +#else +#define OV29_0234A5E4_OFFSET 0 +#endif +_0234A740: .word 0x00000E2E + OV29_0234A5E4_OFFSET +_0234A744: .word 0x00000E2D + OV29_0234A5E4_OFFSET +#ifndef JAPAN _0234A748: .word 0x00000E2F -_0234A74C: .word 0x00000E2C -_0234A750: .word 0x00000E28 -_0234A754: .word 0x00000E29 -_0234A758: .word 0x00000E2A +#endif +_0234A74C: .word 0x00000E2C + OV29_0234A5E4_OFFSET +_0234A750: .word 0x00000E28 + OV29_0234A5E4_OFFSET +_0234A754: .word 0x00000E29 + OV29_0234A5E4_OFFSET +_0234A758: .word 0x00000E2A + OV29_0234A5E4_OFFSET _0234A75C: .word DUNGEON_PTR -_0234A760: .word 0x00000E2B +_0234A760: .word 0x00000E2B + OV29_0234A5E4_OFFSET arm_func_end ov29_0234A5E4 +#ifndef JAPAN arm_func_start ov29_0234A764 ov29_0234A764: ; 0x0234A764 stmdb sp!, {r3, lr} @@ -1060,15 +1147,22 @@ ov29_0234A764: ; 0x0234A764 and r0, r0, #0xff ldmia sp!, {r3, pc} arm_func_end ov29_0234A764 +#endif arm_func_start ov29_0234A790 ov29_0234A790: ; 0x0234A790 stmdb sp!, {r3, r4, r5, r6, r7, lr} sub sp, sp, #0x10 mov r7, r0 +#ifdef JAPAN + bl GetLeader + cmp r0, #0 + beq _0234A8A4 +#else bl ov29_0234A764 cmp r0, #0 bne _0234A8A4 +#endif mov r0, #0xa mov r1, #4 bl IsCurrentMissionTypeExact @@ -1140,19 +1234,30 @@ _0234A8A4: add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, r6, r7, pc} .align 2, 0 -_0234A8AC: .word 0x00000E14 -_0234A8B0: .word 0x00000E18 +#ifdef JAPAN +#define OV29_0234A790_OFFSET -0x2BF +#else +#define OV29_0234A790_OFFSET 0 +#endif +_0234A8AC: .word 0x00000E14 + OV29_0234A790_OFFSET +_0234A8B0: .word 0x00000E18 + OV29_0234A790_OFFSET _0234A8B4: .word DUNGEON_PTR -_0234A8B8: .word 0x00000E44 +_0234A8B8: .word 0x00000E44 + OV29_0234A790_OFFSET arm_func_end ov29_0234A790 arm_func_start ov29_0234A8BC ov29_0234A8BC: ; 0x0234A8BC stmdb sp!, {r4, lr} mov r4, r0 +#ifdef JAPAN + bl GetLeader + cmp r0, #0 + ldmeqia sp!, {r4, pc} +#else bl ov29_0234A764 cmp r0, #0 ldmneia sp!, {r4, pc} +#endif bl IsDestinationFloorWithHiddenOutlaw cmp r0, #0 beq _0234A928 @@ -1199,8 +1304,13 @@ _0234A958: bl ov29_022EA428 ldmia sp!, {r4, pc} .align 2, 0 +#ifdef JAPAN +_0234A978: .word 0x00000B57 +_0234A97C: .word 0x00000B56 +#else _0234A978: .word 0x00000E16 _0234A97C: .word 0x00000E15 +#endif arm_func_end ov29_0234A8BC arm_func_start ov29_0234A980 @@ -1272,12 +1382,17 @@ _0234AA78: add sp, sp, #0x10 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 -_0234AA80: .word 0x00000E39 -_0234AA84: .word 0x00000E36 -_0234AA88: .word 0x00000E37 -_0234AA8C: .word 0x00000E38 +#ifdef JAPAN +#define OV29_0234A980_OFFSET -0x2BF +#else +#define OV29_0234A980_OFFSET 0 +#endif +_0234AA80: .word 0x00000E39 + OV29_0234A980_OFFSET +_0234AA84: .word 0x00000E36 + OV29_0234A980_OFFSET +_0234AA88: .word 0x00000E37 + OV29_0234A980_OFFSET +_0234AA8C: .word 0x00000E38 + OV29_0234A980_OFFSET _0234AA90: .word DUNGEON_PTR -_0234AA94: .word 0x00000E3A +_0234AA94: .word 0x00000E3A + OV29_0234A980_OFFSET arm_func_end ov29_0234A980 arm_func_start ov29_0234AA98 @@ -1307,8 +1422,13 @@ _0234AAC4: mov r1, r0 mov r0, #1 bl ov29_0234B084 +#ifdef JAPAN + mov r0, #0 + mov r1, #0xb80 +#else ldr r1, _0234ABA0 ; =0x00000E3F mov r0, #0 +#endif mov r2, #1 bl DisplayMessage ldr r1, [r4, #0xb4] @@ -1320,8 +1440,13 @@ _0234AAC4: mov r1, r5 mov r0, #1 bl ov29_0234B0CC +#ifdef JAPAN + ldr r1, _0234BE10 ; =0x00000B81 + add r0, sp, #0 +#else add r0, sp, #0 mov r1, #0xe40 +#endif mov r2, #1 bl DisplayMessage ldr r1, _0234ABA4 ; =0x00000E41 @@ -1350,20 +1475,35 @@ _0234AB94: add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 -_0234AB9C: .word 0x00000E2D +#ifdef JAPAN +#define OV29_0234AA98_OFFSET -0x2BF +#else +#define OV29_0234AA98_OFFSET 0 +#endif +_0234AB9C: .word 0x00000E2D + OV29_0234AA98_OFFSET +#ifdef JAPAN +_0234BE10: .word 0x00000B81 +#else _0234ABA0: .word 0x00000E3F -_0234ABA4: .word 0x00000E41 +#endif +_0234ABA4: .word 0x00000E41 + OV29_0234AA98_OFFSET _0234ABA8: .word DUNGEON_PTR -_0234ABAC: .word 0x00000E42 +_0234ABAC: .word 0x00000E42 + OV29_0234AA98_OFFSET arm_func_end ov29_0234AA98 arm_func_start ov29_0234ABB0 ov29_0234ABB0: ; 0x0234ABB0 stmdb sp!, {r4, lr} mov r4, r0 +#ifdef JAPAN + bl GetLeader + cmp r0, #0 + ldmeqia sp!, {r4, pc} +#else bl ov29_0234A764 cmp r0, #0 ldmneia sp!, {r4, pc} +#endif bl GetLeader mov r1, r0 mov r0, #0 @@ -1390,7 +1530,11 @@ ov29_0234ABB0: ; 0x0234ABB0 ldr r0, _0234AC84 ; =DUNGEON_PTR ldr r0, [r0] add r0, r0, #0x4000 +#ifdef JAPAN + ldrsh r0, [r0, #0x32] +#else ldrsh r0, [r0, #0xd6] +#endif bl MusicTableIdxToMusicId bl ChangeDungeonMusic _0234AC38: @@ -1416,9 +1560,15 @@ _0234AC70: bl ov29_022EA428 ldmia sp!, {r4, pc} .align 2, 0 +#ifdef JAPAN +_0234AC80: .word 0x00000B54 +_0234AC84: .word DUNGEON_PTR +_0234AC88: .word 0x00000B84 +#else _0234AC80: .word 0x00000E13 _0234AC84: .word DUNGEON_PTR _0234AC88: .word 0x00000E43 +#endif arm_func_end ov29_0234ABB0 arm_func_start ov29_0234AC8C @@ -1457,8 +1607,13 @@ _0234ACE0: bl ov29_02348A18 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 +#ifdef JAPAN +_0234AD08: .word 0x00000B53 +_0234AD0C: .word 0x00000B84 +#else _0234AD08: .word 0x00000E12 _0234AD0C: .word 0x00000E43 +#endif arm_func_end ov29_0234AC8C arm_func_start ov29_0234AD10 @@ -1511,7 +1666,11 @@ _0234AD44: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 _0234ADC4: .word 0x0000025B +#ifdef JAPAN +_0234ADC8: .word 0x00000B5A +#else _0234ADC8: .word 0x00000E19 +#endif arm_func_end ov29_0234AD10 arm_func_start ov29_0234ADCC @@ -1547,8 +1706,13 @@ _0234AE1C: bl DisplayMessage ldmia sp!, {r3, pc} .align 2, 0 +#ifdef JAPAN +_0234AE38: .word 0x00000B45 +_0234AE3C: .word 0x00000B46 +#else _0234AE38: .word 0x00000E04 _0234AE3C: .word 0x00000E05 +#endif arm_func_end ov29_0234ADCC arm_func_start ov29_0234AE40 @@ -1576,7 +1740,11 @@ ov29_0234AE40: ; 0x0234AE40 add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 +#ifdef JAPAN +_0234AE98: .word 0x00000B47 +#else _0234AE98: .word 0x00000E06 +#endif _0234AE9C: .word ov29_0234AEA4 _0234AEA0: .word ov29_023537C8 arm_func_end ov29_0234AE40 @@ -1616,7 +1784,11 @@ ov29_0234AEE8: ; 0x0234AEE8 ldr r0, _0234AF30 ; =DUNGEON_PTR ldr r0, [r0] add r0, r0, #0x4000 +#ifdef JAPAN + ldrsh r0, [r0, #0x32] +#else ldrsh r0, [r0, #0xd6] +#endif bl MusicTableIdxToMusicId bl ChangeDungeonMusic _0234AF24: @@ -2429,9 +2601,11 @@ _0234B8A0: bl ov10_022BFD20 cmp r0, #0 bne _0234B9C8 +#ifndef JAPAN bl sub_02001808 cmp r0, #0x3000 blt _0234B9C8 +#endif ldr r0, _0234BA14 ; =ov29_023537CC mvn r1, #1 ldr r0, [r0, #4] @@ -3150,8 +3324,13 @@ _0234C1F4: ldr r0, [r0] cmp r0, #0 beq _0234C230 +#ifdef JAPAN + add r0, r0, #0x2180 + add r0, r0, #0x18000 +#else add r0, r0, #0x224 add r0, r0, #0x1a000 +#endif bl ov10_022BF764 bl ov29_022E6DD0 b _0234C238 @@ -4121,7 +4300,11 @@ _0234CE60: ldr r0, _0234CEA4 ; =DUNGEON_PTR ldr r0, [r0] ldrb r0, [r0, #0x748] +#ifdef JAPAN + cmp r0, #0x7a +#else cmp r0, #0x7b +#endif ldmneia sp!, {r4, pc} ldr r0, _0234CEE8 ; =0xFFFFFED2 add r0, r4, r0 @@ -4289,8 +4472,23 @@ _0234D04C: b _0234D1E0 _0234D0A0: cmp r0, #0xda +#ifdef JAPAN + bne _0234E334 + ldr r0, _0234D204 ; =DUNGEON_PTR + ldr r0, [r0] + ldrb r0, [r0, #0x748] + bl IsFutureDungeon + cmp r0, #0 + ldrne r0, _0234E48C ; =0x000004BC + ldreq r0, _0234D200 ; =0x000004B3 + mov r0, r0, lsl #0x10 + mov r4, r0, asr #0x10 + b _0234D1E0 +_0234E334: +#else ldreq r4, _0234D200 ; =0x000004B3 beq _0234D1E0 +#endif cmp r0, #0xed bne _0234D148 ldr r0, _0234D204 ; =DUNGEON_PTR @@ -4385,8 +4583,14 @@ _0234D1F0: .word 0x000001B2 _0234D1F4: .word 0x000004CD _0234D1F8: .word 0x000004CF _0234D1FC: .word 0x000004D1 +#ifdef JAPAN +_0234D204: .word DUNGEON_PTR +_0234E48C: .word 0x000004BC +_0234D200: .word 0x000004B3 +#else _0234D200: .word 0x000004B3 _0234D204: .word DUNGEON_PTR +#endif _0234D208: .word 0x000004C4 _0234D20C: .word 0x000004C6 _0234D210: .word 0x000004C7 diff --git a/asm/overlay_29_0234DDF4.s b/asm/overlay_29_0234DDF4.s index 8e2dd4f0..6d231247 100644 --- a/asm/overlay_29_0234DDF4.s +++ b/asm/overlay_29_0234DDF4.s @@ -5,6 +5,11 @@ arm_func_start OpenMenu OpenMenu: ; 0x0234DDF4 +#ifdef JAPAN +#define OPEN_MENU_OFFSET -0xA4 +#else +#define OPEN_MENU_OFFSET 0 +#endif stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x38 mov r0, #0x22 @@ -301,7 +306,7 @@ _0234E214: ldr r0, [r0] add r0, r0, r8, lsl #2 add r0, r0, #0x12000 - ldr r0, [r0, #0xb28] + ldr r0, [r0, #0xb28 + OPEN_MENU_OFFSET] str r0, [sp, #4] bl EntityIsValid__0234DDD0 cmp r0, #0 @@ -360,7 +365,7 @@ _0234E2E0: ldr r0, [r0] add r0, r0, r7, lsl #2 add r0, r0, #0x12000 - ldr sb, [r0, #0xb28] + ldr sb, [r0, #0xb28 + OPEN_MENU_OFFSET] mov r0, sb bl EntityIsValid__0234DDD0 cmp r0, #0 @@ -384,7 +389,7 @@ _0234E334: ldr r0, [r0] add r0, r0, sb, lsl #2 add r0, r0, #0x12000 - ldr r0, [r0, #0xb28] + ldr r0, [r0, #0xb28 + OPEN_MENU_OFFSET] str r0, [sp, #0xc] bl ov29_02302388 cmp r0, #0 @@ -483,9 +488,13 @@ _0234E48C: ldrb r1, [r0, #0xa] add r0, r3, r2, lsl #2 add r0, r0, #0x12000 - ldr r0, [r0, #0xb28] + ldr r0, [r0, #0xb28 + OPEN_MENU_OFFSET] ldr r2, [r0, #0xb4] +#ifdef JAPAN + add r2, r2, #0x120 +#else add r2, r2, #0x124 +#endif add r1, r2, r1, lsl #3 bl ov29_022F0C3C cmp r0, #0 @@ -706,7 +715,11 @@ _0234E7C0: mov r2, #0 bl ov29_022E2A78 mov r0, #0 +#ifdef JAPAN + mov r1, #0x870 +#else ldr r1, _0234E8F4 ; =0x00000B6A +#endif mov r2, #1 bl DisplayMessage _0234E7F8: @@ -784,7 +797,9 @@ _0234E8E0: _0234E8E8: .word DUNGEON_PTR _0234E8EC: .word ov29_02382804 _0234E8F0: .word ov29_0235352C +#ifndef JAPAN _0234E8F4: .word 0x00000B6A +#endif arm_func_end OpenMenu arm_func_start ov29_0234E8F8 @@ -907,7 +922,11 @@ _0234EA5C: mov r0, sl add r1, r1, r4, lsl #2 add r1, r1, #0x12000 +#ifdef JAPAN + ldr r1, [r1, #0xa84] +#else ldr r1, [r1, #0xb28] +#endif mov r2, r4 mov r3, r8 bl ov29_0234EC38 @@ -1005,9 +1024,14 @@ _0234EBA4: ov29_0234EBAC: ; 0x0234EBAC stmdb sp!, {r3, r4, r5, lr} mov r5, r0 +#ifdef JAPAN + add r0, r5, #0x10 + mov r4, r2 +#else mov r4, r2 add r0, r5, #0x10 mov r2, #0xa +#endif bl StrncpySimple strb r4, [r5, #0x1a] ldmia sp!, {r3, r4, r5, pc} @@ -1023,13 +1047,21 @@ _0234EBDC: ldr r0, [r4] add r0, r0, r6, lsl #2 add r0, r0, #0x12000 +#ifdef JAPAN + ldr r7, [r0, #0xa84] +#else ldr r7, [r0, #0xb28] +#endif mov r0, r7 bl EntityIsValid__0234EC14 cmp r0, #0 ldrne r0, [r7, #0xb4] add r6, r6, #1 +#ifdef JAPAN + strneb r5, [r0, #0x15d] +#else strneb r5, [r0, #0x161] +#endif cmp r6, #4 blt _0234EBDC ldmia sp!, {r3, r4, r5, r6, r7, pc} diff --git a/asm/overlay_29_0234EC38.s b/asm/overlay_29_0234EC38.s index 90411d33..7b093750 100644 --- a/asm/overlay_29_0234EC38.s +++ b/asm/overlay_29_0234EC38.s @@ -50,7 +50,11 @@ _0234ECCC: mov r0, r7 ldr r5, [r7, #0xb4] bl ov29_02347100 +#ifdef JAPAN + strb r0, [r5, #0x15d] +#else strb r0, [r5, #0x161] +#endif _0234ECE4: ldrsh r0, [r4, #0xc] ldr r5, [r8, #0x88] @@ -62,7 +66,11 @@ _0234ECE4: strb r0, [sl, #4] str r7, [sl, #0x1c] str r6, [sb, r5, lsl #5] +#ifdef JAPAN + ldrb r0, [r4, #0x15d] +#else ldrb r0, [r4, #0x161] +#endif ldr r1, [r8, #0x88] cmp r0, #0 movne r2, #0 @@ -148,7 +156,11 @@ ov29_0234EE10: ; 0x0234EE10 mov r3, #1 ldr r1, [r7, #0xb4] rsb r0, r3, #0x3e8 +#ifdef JAPAN + strb r3, [r1, #0x15d] +#else strb r3, [r1, #0x161] +#endif ldr ip, [r7, #0xb4] ldrsh r2, [ip, #0x12] ldrsh r1, [ip, #0x16] @@ -594,7 +606,11 @@ _0234F3D8: add sp, sp, #0xa4 ldmia sp!, {r3, r4, pc} .align 2, 0 +#ifdef JAPAN +_0234F3E0: .word 0x00001D35 +#else _0234F3E0: .word 0x000008DD +#endif _0234F3E4: .word ov29_023533E0 _0234F3E8: .word 0x00001813 _0234F3EC: .word ov29_023533C0 @@ -697,8 +713,12 @@ _0234F508: cmp r0, #1 beq _0234F578 ldrb r0, [r4, #1] +#ifdef JAPAN + add r0, r0, #0x2c8 +#else add r0, r0, #0x278 add r0, r0, #0x800 +#endif mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 bl StringFromId @@ -846,7 +866,11 @@ _0234F75C: _0234F764: .word ov29_023533F0 _0234F768: .word ov29_023533F8 _0234F76C: .word DUNGEON_PTR +#ifdef JAPAN +_0234F770: .word 0x00001D36 +#else _0234F770: .word 0x000008DE +#endif _0234F774: .word ov29_02353404 _0234F778: .word ov29_0235340C arm_func_end ov29_0234F430 @@ -1029,7 +1053,11 @@ _0234F9C0: _0234F9C8: .word ov29_0235383C _0234F9CC: .word ov29_0235343C _0234F9D0: .word ov29_02353474 +#ifdef JAPAN +_0234F9D4: .word 0x00001D11 +#else _0234F9D4: .word 0x000008B9 +#endif _0234F9D8: .word ov29_0235341C _0234F9DC: .word 0x00001A33 _0234F9E0: .word ov29_0234F77C @@ -1201,7 +1229,11 @@ _0234FBE4: ldr r0, [r4] add r0, r0, r5, lsl #2 add r0, r0, #0x12000 +#ifdef JAPAN + ldr r0, [r0, #0xa84] +#else ldr r0, [r0, #0xb28] +#endif bl ov29_0234FB60 cmp r0, #0 movne r0, #1 diff --git a/asm/overlay_31.s b/asm/overlay_31.s index 4757bf01..ae219437 100644 --- a/asm/overlay_31.s +++ b/asm/overlay_31.s @@ -7190,7 +7190,9 @@ _02388AA8: movgt r1, r0 strh r1, [r4, #0x10] _02388AF8: +#ifndef JAPAN bl UpdateMapSurveyorFlag +#endif add r0, sp, #0xc mov r1, #0x39 bl IqSkillFlagTest