diff --git a/asm/code_0801C1D4.s b/asm/code_0801C1D4.s index 4d052ca2..0432cd6d 100644 --- a/asm/code_0801C1D4.s +++ b/asm/code_0801C1D4.s @@ -39,7 +39,7 @@ _0801C204: .4byte gUnk_080C8F8C sub_0801C208: @ 0x0801C208 push {r4, r5, lr} movs r5, #0 - ldr r4, _0801C250 @ =gUnk_03001010 + ldr r4, _0801C250 @ =gOamCmd _0801C20E: lsls r1, r5, #5 ldr r0, _0801C254 @ =gUnk_0200AF34 @@ -75,7 +75,7 @@ _0801C248: bls _0801C20E pop {r4, r5, pc} .align 2, 0 -_0801C250: .4byte gUnk_03001010 +_0801C250: .4byte gOamCmd _0801C254: .4byte gUnk_0200AF34 _0801C258: .4byte gUnk_080C8F8C diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s index 79267c0b..247231b9 100644 --- a/asm/code_080A3BD0.s +++ b/asm/code_080A3BD0.s @@ -545,7 +545,7 @@ _080A407C: .4byte gUnk_02019EE0 thumb_func_start sub_080A4080 sub_080A4080: @ 0x080A4080 push {r4, r5, r6, r7, lr} - ldr r4, _080A4134 @ =gUnk_03001010 + ldr r4, _080A4134 @ =gOamCmd movs r0, #0 strh r0, [r4, #4] strh r0, [r4, #6] @@ -631,7 +631,7 @@ _080A411C: _080A4130: pop {r4, r5, r6, r7, pc} .align 2, 0 -_080A4134: .4byte gUnk_03001010 +_080A4134: .4byte gOamCmd _080A4138: .4byte gMenu _080A413C: .4byte 0x000001FB _080A4140: .4byte gUnk_03001000 @@ -644,7 +644,7 @@ sub_080A414C: @ 0x080A414C mov r7, sb mov r6, r8 push {r6, r7} - ldr r4, _080A4210 @ =gUnk_03001010 + ldr r4, _080A4210 @ =gOamCmd movs r0, #0 strh r0, [r4, #4] strh r0, [r4, #6] @@ -743,7 +743,7 @@ _080A4200: mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 -_080A4210: .4byte gUnk_03001010 +_080A4210: .4byte gOamCmd _080A4214: .4byte gMenu _080A4218: .4byte 0x00000B21 _080A421C: .4byte gSineTable @@ -772,7 +772,7 @@ sub_080A422C: @ 0x080A422C adds r2, r4, #0 movs r3, #0 bl sub_0805ECEC - ldr r1, _080A42AC @ =gUnk_03001010 + ldr r1, _080A42AC @ =gOamCmd movs r0, #0 strh r4, [r1, #4] strh r0, [r1, #6] @@ -811,7 +811,7 @@ sub_080A422C: @ 0x080A422C .align 2, 0 _080A42A4: .4byte gMenu _080A42A8: .4byte gUnk_08128120 -_080A42AC: .4byte gUnk_03001010 +_080A42AC: .4byte gOamCmd _080A42B0: cmp r0, #6 beq _080A42C6 @@ -826,7 +826,7 @@ _080A42B6: _080A42C4: movs r4, #0x8a _080A42C6: - ldr r0, _080A42D8 @ =gUnk_03001010 + ldr r0, _080A42D8 @ =gOamCmd strh r4, [r0] ldr r0, _080A42DC @ =gUnk_02022740 ldrb r0, [r0, #3] @@ -834,7 +834,7 @@ _080A42C6: bl sub_080A42E0 pop {r4, r5, pc} .align 2, 0 -_080A42D8: .4byte gUnk_03001010 +_080A42D8: .4byte gOamCmd _080A42DC: .4byte gUnk_02022740 thumb_func_start sub_080A42E0 @@ -873,7 +873,7 @@ _080A42FA: adds r1, r4, #0 bl sub_0801C2F0 _080A4324: - ldr r1, _080A434C @ =gUnk_03001010 + ldr r1, _080A434C @ =gOamCmd ldr r2, _080A4350 @ =0x00003AE0 adds r0, r5, r2 strh r0, [r1, #8] @@ -893,7 +893,7 @@ _080A4324: b _080A4362 .align 2, 0 _080A4348: .4byte gUnk_02019EE0 -_080A434C: .4byte gUnk_03001010 +_080A434C: .4byte gOamCmd _080A4350: .4byte 0x00003AE0 _080A4354: .4byte gMenu _080A4358: @@ -907,7 +907,7 @@ _080A4362: movs r0, #0 movs r1, #5 bl sub_080ADA14 - ldr r0, _080A4394 @ =gUnk_03001010 + ldr r0, _080A4394 @ =gOamCmd strh r4, [r0] strh r5, [r0, #2] _080A4372: @@ -921,14 +921,14 @@ _080A4372: lsls r2, r2, #2 adds r0, r0, r2 orrs r1, r0 - ldr r0, _080A4394 @ =gUnk_03001010 + ldr r0, _080A4394 @ =gOamCmd strh r1, [r0, #8] movs r0, #0 movs r1, #3 bl sub_080ADA14 pop {r4, r5, r6, r7, pc} .align 2, 0 -_080A4394: .4byte gUnk_03001010 +_080A4394: .4byte gOamCmd thumb_func_start sub_080A4398 sub_080A4398: @ 0x080A4398 @@ -1705,7 +1705,7 @@ sub_080A4978: @ 0x080A4978 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} - ldr r5, _080A4B1C @ =gUnk_03001010 + ldr r5, _080A4B1C @ =gOamCmd movs r0, #0 strh r0, [r5, #4] strh r0, [r5, #6] @@ -1793,7 +1793,7 @@ _080A4A10: ldrb r0, [r5, #0x1e] cmp r0, #0 beq _080A4A6A - ldr r4, _080A4B1C @ =gUnk_03001010 + ldr r4, _080A4B1C @ =gOamCmd strh r2, [r4, #2] movs r0, #0x1f ldrsb r0, [r5, r0] @@ -1833,7 +1833,7 @@ _080A4A6A: ands r0, r1 cmp r0, #0 beq _080A4ABE - ldr r1, _080A4B1C @ =gUnk_03001010 + ldr r1, _080A4B1C @ =gOamCmd movs r0, #0x10 strh r0, [r1, #2] ldrb r4, [r2, #0x1c] @@ -1873,7 +1873,7 @@ _080A4ABE: bl sub_080A4948 cmp r0, #0 beq _080A4B3A - ldr r1, _080A4B1C @ =gUnk_03001010 + ldr r1, _080A4B1C @ =gOamCmd movs r0, #0x2c strh r0, [r1] movs r0, #0x48 @@ -1907,7 +1907,7 @@ _080A4ABE: bl LZ77UnCompVram b _080A4B3A .align 2, 0 -_080A4B1C: .4byte gUnk_03001010 +_080A4B1C: .4byte gOamCmd _080A4B20: .4byte gSave _080A4B24: .4byte gMenu _080A4B28: .4byte gUnk_03001000 @@ -2715,7 +2715,7 @@ _080A515A: _080A5182: str r0, [sp, #0x10] str r1, [sp, #0x14] - ldr r4, _080A51CC @ =gUnk_03001010 + ldr r4, _080A51CC @ =gOamCmd movs r0, #0 strh r0, [r4, #4] strh r0, [r4, #6] @@ -2748,7 +2748,7 @@ _080A51C6: add sp, #0x18 pop {r4, r5, pc} .align 2, 0 -_080A51CC: .4byte gUnk_03001010 +_080A51CC: .4byte gOamCmd _080A51D0: .4byte 0x000001FB thumb_func_start sub_080A51D4 @@ -2985,7 +2985,7 @@ sub_080A5384: @ 0x080A5384 mov r6, sb mov r5, r8 push {r5, r6, r7} - ldr r0, _080A5400 @ =gUnk_03001010 + ldr r0, _080A5400 @ =gOamCmd movs r2, #0 movs r1, #0x80 lsls r1, r1, #3 @@ -3014,7 +3014,7 @@ _080A53B4: ldr r0, _080A540C @ =gUnk_08128B64 adds r1, r6, r0 ldrb r0, [r1, #6] - ldr r3, _080A5400 @ =gUnk_03001010 + ldr r3, _080A5400 @ =gOamCmd strh r0, [r3] ldrb r0, [r1, #7] strh r0, [r3, #2] @@ -3045,7 +3045,7 @@ _080A53E0: bhi _080A542E b _080A542C .align 2, 0 -_080A5400: .4byte gUnk_03001010 +_080A5400: .4byte gOamCmd _080A5404: .4byte gSave _080A5408: .4byte gMenu _080A540C: .4byte gUnk_08128B64 @@ -3075,7 +3075,7 @@ _080A542E: adds r1, r7, #0 orrs r0, r1 orrs r2, r0 - ldr r0, _080A5530 @ =gUnk_03001010 + ldr r0, _080A5530 @ =gOamCmd strh r2, [r0, #8] ldr r1, _080A5534 @ =gUnk_080FDFD8 lsls r0, r3, #2 @@ -3090,7 +3090,7 @@ _080A5456: adds r5, #1 cmp r5, #0x10 bls _080A53B4 - ldr r0, _080A5530 @ =gUnk_03001010 + ldr r0, _080A5530 @ =gOamCmd movs r1, #0x80 lsls r1, r1, #4 strh r1, [r0, #8] @@ -3194,7 +3194,7 @@ _080A5522: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A552C: .4byte gQuiverSizes -_080A5530: .4byte gUnk_03001010 +_080A5530: .4byte gOamCmd _080A5534: .4byte gUnk_080FDFD8 _080A5538: .4byte gMenu _080A553C: .4byte gUnk_08128B64 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index c6e22207..8ad62f9b 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -325,7 +325,7 @@ sub_080A57F4: @ 0x080A57F4 mov r7, sb mov r6, r8 push {r6, r7} - ldr r2, _080A5890 @ =gUnk_03001010 + ldr r2, _080A5890 @ =gOamCmd movs r1, #0 movs r0, #0x80 lsls r0, r0, #3 @@ -382,7 +382,7 @@ _080A5854: lsls r5, r3, #3 mov r0, sb adds r3, r0, r5 - ldr r4, _080A5890 @ =gUnk_03001010 + ldr r4, _080A5890 @ =gOamCmd ldrb r0, [r7, #1] strh r0, [r4] ldrb r2, [r7, #2] @@ -401,7 +401,7 @@ _080A5854: ldr r0, _080A58A4 @ =0x000001FB b _080A58E4 .align 2, 0 -_080A5890: .4byte gUnk_03001010 +_080A5890: .4byte gOamCmd _080A5894: .4byte gUnk_08128C94 _080A5898: .4byte gUnk_08128C14 _080A589C: .4byte gMenu @@ -455,7 +455,7 @@ _080A58E8: ldrb r0, [r4, #0x12] cmp r0, #0 beq _080A5920 - ldr r2, _080A5988 @ =gUnk_03001010 + ldr r2, _080A5988 @ =gOamCmd movs r3, #0x80 lsls r3, r3, #4 adds r1, r3, #0 @@ -478,7 +478,7 @@ _080A5920: bne _080A5976 mov r3, sb adds r3, #0x18 - ldr r1, _080A5988 @ =gUnk_03001010 + ldr r1, _080A5988 @ =gOamCmd ldrb r0, [r3, #6] adds r0, #8 strh r0, [r1] @@ -522,7 +522,7 @@ _080A5976: .align 2, 0 _080A5980: .4byte gUnk_080FDFD8 _080A5984: .4byte gMenu -_080A5988: .4byte gUnk_03001010 +_080A5988: .4byte gOamCmd _080A598C: .4byte gSave thumb_func_start sub_080A5990 @@ -1004,7 +1004,7 @@ sub_080A5D1C: @ 0x080A5D1C ldrb r6, [r0] bl sub_0801DB94 mov r8, r0 - ldr r5, _080A5EA4 @ =gUnk_03001010 + ldr r5, _080A5EA4 @ =gOamCmd movs r0, #0x80 lsls r0, r0, #3 strh r0, [r5, #4] @@ -1133,7 +1133,7 @@ _080A5E42: ldr r0, _080A5EB0 @ =0x000001FB bl sub_080ADA14 _080A5E48: - ldr r1, _080A5EA4 @ =gUnk_03001010 + ldr r1, _080A5EA4 @ =gOamCmd movs r0, #0 strh r0, [r1, #8] movs r0, #0x34 @@ -1164,7 +1164,7 @@ _080A5E7C: ldrb r0, [r5] cmp r0, #0 beq _080A5F14 - ldr r7, _080A5EA4 @ =gUnk_03001010 + ldr r7, _080A5EA4 @ =gOamCmd ldr r6, _080A5EBC @ =gScreen _080A5E88: ldrb r0, [r5] @@ -1179,7 +1179,7 @@ _080A5E88: _080A5E98: .4byte gArea _080A5E9C: .4byte gUnk_080C9C6C _080A5EA0: .4byte gUnk_08128D3C -_080A5EA4: .4byte gUnk_03001010 +_080A5EA4: .4byte gOamCmd _080A5EA8: .4byte gMenu _080A5EAC: .4byte gUnk_03001000 _080A5EB0: .4byte 0x000001FB @@ -1399,7 +1399,7 @@ sub_080A6044: @ 0x080A6044 ldr r0, _080A60CC @ =gMenu ldr r1, _080A60D0 @ =gUnk_08128D51 str r1, [r0, #0xc] - ldr r1, _080A60D4 @ =gUnk_03001010 + ldr r1, _080A60D4 @ =gOamCmd movs r0, #0 strh r0, [r1, #4] strh r0, [r1, #6] @@ -1459,7 +1459,7 @@ _080A60C2: .align 2, 0 _080A60CC: .4byte gMenu _080A60D0: .4byte gUnk_08128D51 -_080A60D4: .4byte gUnk_03001010 +_080A60D4: .4byte gOamCmd _080A60D8: .4byte gSave _080A60DC: .4byte 0x0000012B @@ -1545,7 +1545,7 @@ sub_080A617C: @ 0x080A617C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} - ldr r6, _080A6260 @ =gUnk_03001010 + ldr r6, _080A6260 @ =gOamCmd movs r0, #0 strh r0, [r6, #4] strh r0, [r6, #6] @@ -1653,7 +1653,7 @@ _080A6250: mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 -_080A6260: .4byte gUnk_03001010 +_080A6260: .4byte gOamCmd _080A6264: .4byte gMenu _080A6268: .4byte gUnk_03001000 _080A626C: .4byte gUnk_08128D70 @@ -1804,7 +1804,7 @@ sub_080A6378: @ 0x080A6378 beq _080A6392 bl sub_080A6438 _080A6392: - ldr r5, _080A6424 @ =gUnk_03001010 + ldr r5, _080A6424 @ =gOamCmd movs r0, #0x80 lsls r0, r0, #3 strh r0, [r5, #4] @@ -1852,7 +1852,7 @@ _080A63EA: lsls r0, r0, #3 ldr r1, _080A6434 @ =gUnk_08128DE8 adds r0, r0, r1 - ldr r2, _080A6424 @ =gUnk_03001010 + ldr r2, _080A6424 @ =gOamCmd ldrb r1, [r0, #6] strh r1, [r2] ldrb r0, [r0, #7] @@ -1873,7 +1873,7 @@ _080A63EA: pop {r4, r5, r6, pc} .align 2, 0 _080A6420: .4byte gMenu -_080A6424: .4byte gUnk_03001010 +_080A6424: .4byte gOamCmd _080A6428: .4byte gScreenTransition _080A642C: .4byte gPlayerState _080A6430: .4byte 0x000001FB @@ -1882,7 +1882,7 @@ _080A6434: .4byte gUnk_08128DE8 thumb_func_start sub_080A6438 sub_080A6438: @ 0x080A6438 push {r4, r5, r6, r7, lr} - ldr r2, _080A6484 @ =gUnk_03001010 + ldr r2, _080A6484 @ =gOamCmd movs r1, #0 movs r0, #0x80 lsls r0, r0, #3 @@ -1922,7 +1922,7 @@ _080A6478: _080A6482: pop {r4, r5, r6, r7, pc} .align 2, 0 -_080A6484: .4byte gUnk_03001010 +_080A6484: .4byte gOamCmd _080A6488: .4byte gSave _080A648C: .4byte gMenu _080A6490: .4byte gUnk_08128F58 @@ -1931,7 +1931,7 @@ _080A6494: .4byte 0x000001FB thumb_func_start sub_080A6498 sub_080A6498: @ 0x080A6498 push {r4, r5, r6, r7, lr} - ldr r0, _080A64E4 @ =gUnk_03001010 + ldr r0, _080A64E4 @ =gOamCmd movs r2, #0 movs r1, #0x80 lsls r1, r1, #4 @@ -1970,7 +1970,7 @@ _080A64D2: strh r1, [r0] pop {r4, r5, r6, r7, pc} .align 2, 0 -_080A64E4: .4byte gUnk_03001010 +_080A64E4: .4byte gOamCmd _080A64E8: .4byte gSave _080A64EC: .4byte gUnk_08128DE8 _080A64F0: .4byte 0x000001FB @@ -2206,7 +2206,7 @@ sub_080A66D0: @ 0x080A66D0 mov r6, sb mov r5, r8 push {r5, r6, r7} - ldr r6, _080A677C @ =gUnk_03001010 + ldr r6, _080A677C @ =gOamCmd movs r0, #0 strh r0, [r6, #4] strh r0, [r6, #6] @@ -2260,7 +2260,7 @@ _080A6738: ldr r1, _080A6780 @ =gMenu ldrh r0, [r1, #0xa] mov r8, r0 - ldr r2, _080A677C @ =gUnk_03001010 + ldr r2, _080A677C @ =gOamCmd movs r0, #0 strh r0, [r2, #4] strh r0, [r2, #6] @@ -2288,7 +2288,7 @@ _080A676E: lsrs r1, r5, #0x1f b _080A6796 .align 2, 0 -_080A677C: .4byte gUnk_03001010 +_080A677C: .4byte gOamCmd _080A6780: .4byte gMenu _080A6784: .4byte gUnk_08128E94 _080A6788: .4byte 0x000001FB @@ -3171,7 +3171,7 @@ _080A6E6C: .4byte gUnk_08128024 thumb_func_start sub_080A6E70 sub_080A6E70: @ 0x080A6E70 push {r4, r5, lr} - ldr r1, _080A6ED0 @ =gUnk_03001010 + ldr r1, _080A6ED0 @ =gOamCmd movs r0, #0 strh r0, [r1, #4] strh r0, [r1, #6] @@ -3218,7 +3218,7 @@ _080A6EC8: bls _080A6EAA pop {r4, r5, pc} .align 2, 0 -_080A6ED0: .4byte gUnk_03001010 +_080A6ED0: .4byte gOamCmd _080A6ED4: .4byte gMenu _080A6ED8: .4byte 0x000001FB _080A6EDC: .4byte gSave @@ -3247,7 +3247,7 @@ sub_080A6EE0: @ 0x080A6EE0 adds r3, r3, r0 ldrh r0, [r1, #2] adds r4, r4, r0 - ldr r6, _080A6F3C @ =gUnk_03001010 + ldr r6, _080A6F3C @ =gOamCmd lsls r0, r3, #2 adds r0, r0, r3 lsls r0, r0, #5 @@ -3268,7 +3268,7 @@ sub_080A6EE0: @ 0x080A6EE0 .align 2, 0 _080A6F34: .4byte gUnk_08128024 _080A6F38: .4byte gAreaRoomHeaders -_080A6F3C: .4byte gUnk_03001010 +_080A6F3C: .4byte gOamCmd thumb_func_start sub_080A6F40 sub_080A6F40: @ 0x080A6F40 diff --git a/asm/code_080AD90C.s b/asm/code_080AD90C.s index 9c9d41c4..a8d4a86c 100644 --- a/asm/code_080AD90C.s +++ b/asm/code_080AD90C.s @@ -148,13 +148,13 @@ sub_080ADA14: @ 0x080ADA14 adds r3, r0, #0 adds r2, r1, #0 ldr r4, _080ADA28 @ =gUnk_03006580 - ldr r0, _080ADA2C @ =gUnk_03001010 + ldr r0, _080ADA2C @ =gOamCmd adds r1, r3, #0 bl _call_via_r4 pop {r4, pc} .align 2, 0 _080ADA28: .4byte gUnk_03006580 -_080ADA2C: .4byte gUnk_03001010 +_080ADA2C: .4byte gOamCmd thumb_func_start sub_080ADA30 sub_080ADA30: @ 0x080ADA30 diff --git a/asm/fileScreen.s b/asm/fileScreen.s index e93a9e07..534bdbd8 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -846,375 +846,3 @@ _08052120: .4byte gSave _08052124: .4byte gUnk_03001000 _08052128: .4byte 0xFFFF0001 - thumb_func_start sub_0805212C -sub_0805212C: @ 0x0805212C - push {r4, lr} - ldr r4, _0805214C @ =gFadeControl - ldrb r0, [r4] - cmp r0, #0 - bne _0805219C - ldr r1, _08052150 @ =gUnk_03001000 - ldrb r0, [r1, #5] - cmp r0, #0 - bne _08052198 - ldr r1, _08052154 @ =gMenu - ldrb r0, [r1, #0x10] - cmp r0, #0x25 - bls _08052158 - subs r0, #1 - strb r0, [r1, #0x10] - b _0805219C - .align 2, 0 -_0805214C: .4byte gFadeControl -_08052150: .4byte gUnk_03001000 -_08052154: .4byte gMenu -_08052158: - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805219C - movs r0, #2 - bl sub_080520C4 - movs r0, #0 - movs r1, #0 - bl sub_08052418 - ldr r2, _08052190 @ =gScreen - ldrh r0, [r2] - movs r3, #0xc0 - lsls r3, r3, #3 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08052194 @ =0x0000FFFF - str r0, [r4, #4] - movs r0, #4 - movs r1, #0x10 - bl DoFade - b _0805219C - .align 2, 0 -_08052190: .4byte gScreen -_08052194: .4byte 0x0000FFFF -_08052198: - subs r0, #1 - strb r0, [r1, #5] -_0805219C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080521A0 -sub_080521A0: @ 0x080521A0 - push {r4, lr} - ldr r0, _080521C4 @ =gFadeControl - ldrb r0, [r0] - cmp r0, #0 - beq _080521AC - b _080522E8 -_080521AC: - ldr r0, _080521C8 @ =gMenu - ldrb r1, [r0, #5] - adds r2, r0, #0 - cmp r1, #4 - bls _080521B8 - b _080522D4 -_080521B8: - lsls r0, r1, #2 - ldr r1, _080521CC @ =_080521D0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080521C4: .4byte gFadeControl -_080521C8: .4byte gMenu -_080521CC: .4byte _080521D0 -_080521D0: @ jump table - .4byte _080521E4 @ case 0 - .4byte _08052208 @ case 1 - .4byte _08052278 @ case 2 - .4byte _080522B0 @ case 3 - .4byte _080522D4 @ case 4 -_080521E4: - movs r1, #0 - movs r0, #0x1e - strh r0, [r2, #8] - strb r1, [r2, #3] - movs r0, #1 - bl sub_080A7114 - movs r0, #0 - movs r1, #0 - bl sub_08052418 - ldr r1, _08052204 @ =gFadeControl - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1, #4] - b _080522E8 - .align 2, 0 -_08052204: .4byte gFadeControl -_08052208: - ldrh r0, [r2, #8] - cmp r0, #0 - bne _080522B6 - ldrb r4, [r2, #3] - ldr r0, _08052224 @ =gInput - ldrh r0, [r0, #2] - cmp r0, #0x40 - beq _0805222E - cmp r0, #0x40 - bgt _08052228 - cmp r0, #1 - beq _08052236 - b _0805225A - .align 2, 0 -_08052224: .4byte gInput -_08052228: - cmp r0, #0x80 - beq _08052232 - b _0805225A -_0805222E: - movs r4, #0 - b _0805225A -_08052232: - movs r4, #1 - b _0805225A -_08052236: - cmp r4, #0 - beq _0805223E - movs r2, #4 - b _08052248 -_0805223E: - movs r0, #8 - movs r1, #0 - bl CreateDialogBox - movs r2, #2 -_08052248: - ldr r1, _08052274 @ =gMenu - movs r0, #0x3c - strh r0, [r1, #8] - adds r0, r2, #0 - bl sub_080A7114 - movs r0, #0x6a - bl PlaySFX -_0805225A: - ldr r1, _08052274 @ =gMenu - ldrb r0, [r1, #3] - cmp r0, r4 - beq _080522E8 - strb r4, [r1, #3] - movs r0, #0 - adds r1, r4, #0 - bl sub_08052418 - movs r0, #0x69 - bl PlaySFX - b _080522E8 - .align 2, 0 -_08052274: .4byte gMenu -_08052278: - movs r0, #0 - bl sub_0807CDA4 - adds r1, r0, #0 - ldr r2, _08052298 @ =gMenu - strb r1, [r2] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0805229C - cmp r1, #1 - bne _080522E8 - movs r0, #4 - bl sub_080A7114 - b _080522E8 - .align 2, 0 -_08052298: .4byte gMenu -_0805229C: - movs r0, #0x3c - strh r0, [r2, #8] - movs r0, #9 - movs r1, #0 - bl CreateDialogBox - movs r0, #3 - bl sub_080A7114 - b _080522E8 -_080522B0: - ldrh r0, [r2, #8] - cmp r0, #0 - beq _080522BC -_080522B6: - subs r0, #1 - strh r0, [r2, #8] - b _080522E8 -_080522BC: - ldr r0, _080522D0 @ =gInput - ldrh r1, [r0, #2] - movs r0, #0xb - ands r0, r1 - cmp r0, #0 - beq _080522E8 - movs r0, #0 - bl sub_080A7114 - b _080522E8 - .align 2, 0 -_080522D0: .4byte gInput -_080522D4: - ldr r2, _080522EC @ =gScreen - ldrh r1, [r2] - ldr r0, _080522F0 @ =0x0000FDFF - ands r0, r1 - strh r0, [r2] - bl sub_08050384 - movs r0, #3 - bl sub_080520C4 -_080522E8: - pop {r4, pc} - .align 2, 0 -_080522EC: .4byte gScreen -_080522F0: .4byte 0x0000FDFF - - thumb_func_start sub_080522F4 -sub_080522F4: @ 0x080522F4 - push {r4, lr} - ldr r0, _08052320 @ =gMenu - ldrb r1, [r0, #5] - adds r3, r0, #0 - cmp r1, #1 - beq _08052324 - cmp r1, #1 - bgt _080523AC - cmp r1, #0 - bne _080523AC - movs r1, #0 - movs r0, #0x1e - strh r0, [r3, #8] - strb r1, [r3, #3] - movs r0, #1 - bl sub_080A7114 - movs r0, #1 - movs r1, #0 - bl sub_08052418 - b _080523CC - .align 2, 0 -_08052320: .4byte gMenu -_08052324: - ldr r2, _08052340 @ =gScreen - ldrh r1, [r2] - movs r4, #0x80 - lsls r4, r4, #2 - adds r0, r4, #0 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r3, #8] - cmp r0, #0 - beq _08052344 - subs r0, #1 - strh r0, [r3, #8] - b _080523CC - .align 2, 0 -_08052340: .4byte gScreen -_08052344: - ldrb r4, [r3, #3] - ldr r0, _08052358 @ =gInput - ldrh r0, [r0, #2] - cmp r0, #0x40 - beq _08052362 - cmp r0, #0x40 - bgt _0805235C - cmp r0, #1 - beq _0805236A - b _0805238C - .align 2, 0 -_08052358: .4byte gInput -_0805235C: - cmp r0, #0x80 - beq _08052366 - b _0805238C -_08052362: - movs r4, #0 - b _0805238C -_08052366: - movs r4, #1 - b _0805238C -_0805236A: - movs r0, #2 - bl sub_080A7114 - movs r0, #0x6a - bl PlaySFX - cmp r4, #0 - bne _08052384 - movs r0, #5 - movs r1, #8 - bl DoFade - b _0805238C -_08052384: - movs r0, #7 - movs r1, #8 - bl DoFade -_0805238C: - ldr r1, _080523A8 @ =gMenu - ldrb r0, [r1, #3] - cmp r0, r4 - beq _080523CC - strb r4, [r1, #3] - movs r0, #1 - adds r1, r4, #0 - bl sub_08052418 - movs r0, #0x69 - bl PlaySFX - b _080523CC - .align 2, 0 -_080523A8: .4byte gMenu -_080523AC: - ldr r0, _080523C4 @ =gFadeControl - ldrb r0, [r0] - cmp r0, #0 - bne _080523CC - ldrb r0, [r3, #3] - cmp r0, #0 - bne _080523C8 - movs r0, #2 - bl InitScreen - b _080523CC - .align 2, 0 -_080523C4: .4byte gFadeControl -_080523C8: - bl DoSoftReset -_080523CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_107 -nullsub_107: @ 0x080523D0 - bx lr - .align 2, 0 - - thumb_func_start sub_080523D4 -sub_080523D4: @ 0x080523D4 - push {r4, r5, r6, lr} - ldr r1, _08052408 @ =gUnk_03001010 - movs r0, #0 - strh r0, [r1, #4] - strh r0, [r1, #6] - movs r0, #0x86 - lsls r0, r0, #8 - strh r0, [r1, #8] - ldr r0, _0805240C @ =gMenu - ldrb r0, [r0, #0x10] - strh r0, [r1, #2] - movs r4, #0 - adds r6, r1, #0 - ldr r5, _08052410 @ =gUnk_080FCA84 -_080523F0: - adds r0, r4, r5 - ldrb r0, [r0] - strh r0, [r6] - ldr r0, _08052414 @ =0x000001FD - adds r1, r4, #0 - bl sub_080ADA14 - adds r4, #1 - cmp r4, #7 - bls _080523F0 - pop {r4, r5, r6, pc} - .align 2, 0 -_08052408: .4byte gUnk_03001010 -_0805240C: .4byte gMenu -_08052410: .4byte gUnk_080FCA84 -_08052414: .4byte 0x000001FD diff --git a/asm/sub_08052418.s b/asm/non_matching/game/sub_08052418.inc similarity index 89% rename from asm/sub_08052418.s rename to asm/non_matching/game/sub_08052418.inc index 3de7ca93..5e372531 100644 --- a/asm/sub_08052418.s +++ b/asm/non_matching/game/sub_08052418.inc @@ -1,12 +1,4 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08052418 -sub_08052418: @ 0x08052418 + .syntax unified push {r4, r5, r6, lr} sub sp, #0x18 adds r6, r0, #0 @@ -71,3 +63,4 @@ _08052498: .4byte gUnk_020227E8 _0805249C: .4byte gUnk_080FCA8C _080524A0: .4byte gUnk_080FCAA4 _080524A4: .4byte gScreen + .syntax divided \ No newline at end of file diff --git a/include/fileScreen.h b/include/fileScreen.h index 4c86040a..b5782093 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -38,8 +38,9 @@ typedef struct { } struct_080FC844; typedef struct { - u8 filler0[0x4]; + union SplitWord _0[8]; } struct_020227E8; + extern struct_020227E8 gUnk_020227E8; typedef struct { @@ -56,16 +57,8 @@ typedef struct { } struct_02019EE0; extern struct_02019EE0 gUnk_02019EE0; -struct OAMCommand { - u16 x; - u16 y; - u16 _4; - u16 _6; - u16 _8; -} extern gUnk_03001010; - extern void sub_08056FEC(u32, struct_020227E8*); -extern void sub_0805F46C(u32, struct_080FC844*); +extern void sub_0805F46C(u32, void*); extern void sub_0801C4A0(u32, u32); extern void sub_08080668(void); extern void sub_0805194C(u32); diff --git a/include/main.h b/include/main.h index 767b9441..3d60ee25 100644 --- a/include/main.h +++ b/include/main.h @@ -1,5 +1,6 @@ #ifndef MAIN_H #define MAIN_H + typedef struct { // 0x03001000 u8 field_0x0; u8 field_0x1; @@ -13,6 +14,7 @@ typedef struct { // 0x03001000 u8 field_0xb; u32 spritePriority; } MainStruct; + #define SIGNATURE 'MCZ3' #define MAX_MSG_SPEED 3 #define NUM_SAVE_SLOTS 3 @@ -75,6 +77,8 @@ static_assert(sizeof(UI) == 0x3b4); extern Main gUnk_03001000; extern UI gUnk_02032EC0; +void InitScreen(); + extern void InitSound(void); extern void sub_0807CE90(void); extern void sub_080560B8(void); @@ -103,5 +107,4 @@ extern void sub_08016B34(void); static void sub_08055F70(void); static bool32 SoftResetKeysPressed(void); - #endif diff --git a/include/screen.h b/include/screen.h index 5046e62f..b1e5fff7 100644 --- a/include/screen.h +++ b/include/screen.h @@ -79,6 +79,14 @@ typedef struct { /*0x78*/ u32 _78; } Screen; +struct OAMCommand { + u16 x; + u16 y; + u16 _4; + u16 _6; + u16 _8; +} extern gOamCmd; + extern BgControls gBgControls; extern Screen gScreen; diff --git a/include/structures.h b/include/structures.h index 534f0d98..60d1a36e 100644 --- a/include/structures.h +++ b/include/structures.h @@ -11,8 +11,9 @@ typedef struct { u8 messageSpeed; u8 brightnessPref; u8 gameLanguage; - u8 _8[6]; + u8 name[6]; u8 _e; + u8 _f; } struct_02000000; #define gUnk_02000000 ((struct_02000000*)(0x2000000)) // extern struct_02000000 gUnk_02000000; diff --git a/linker.ld b/linker.ld index 528c2783..39154469 100644 --- a/linker.ld +++ b/linker.ld @@ -177,7 +177,7 @@ SECTIONS { . = 0x00000FD0; gFadeControl = .; . = 0x00000FF0; gInput = .; . = 0x00001000; gUnk_03001000 = .; - . = 0x00001010; gUnk_03001010 = .; + . = 0x00001010; gOamCmd = .; . = 0x00001020; gUnk_03001020 = .; . = 0x000010A0; gScreenTransition = .; . = 0x000010AC; gUnk_030010AC = .; @@ -457,11 +457,7 @@ SECTIONS { asm/code_08050038.o(.text); src/fileScreen.o(.text); asm/fileScreen.o(.text); - asm/sub_08052418.o(.text); - src/initializePlayer.o(.text); - src/area.o(.text); - src/modHealth.o(.text); - src/modRupees.o(.text); + src/game.o(.text); asm/code_080526F8.o(.text); asm/modBombs.o(.text); asm/modArrows.o(.text); diff --git a/src/area.c b/src/area.c deleted file mode 100644 index 92a7ed24..00000000 --- a/src/area.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "global.h" -#include "entity.h" - -extern u8 gArea; -extern u8 gUnk_08127D30[]; - -bool32 sub_08052620(u32 r0) { - return gArea == 0x81; -} - -bool32 sub_08052638(u32 r0) { - - return gUnk_08127D30[r0 * 4] == 0x81; -} - -u32 sub_08052654() { - return (gArea >> 7) & 1; -} - -u32 CheckIsDungeon() { - return (gArea >> 2) & 1; -} - -u32 sub_08052670() { - return (gArea >> 4) & 1; -} - -u32 sub_08052680() { - return (gArea >> 6) & 1; -} - -u32 sub_08052690() - -{ - return (gArea >> 3) & 1; -} diff --git a/src/fileScreen.c b/src/fileScreen.c index 2b1d9341..23384734 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -458,29 +458,29 @@ void sub_08050A64(u32 idx) { return; } - gUnk_03001010._4 = 0; - gUnk_03001010._6 = 0; - gUnk_03001010._8 = 0x400; + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd._8 = 0x400; // Draw the save file's obtained elements. if (GetInventoryValue(0x40)) { - gUnk_03001010.x = 0xA2; - gUnk_03001010.y = 0x36; + gOamCmd.x = 0xA2; + gOamCmd.y = 0x36; sub_080ADA14(0x145, 0x24); } if (GetInventoryValue(0x41)) { - gUnk_03001010.x = 0x96; - gUnk_03001010.y = 0x3D; + gOamCmd.x = 0x96; + gOamCmd.y = 0x3D; sub_080ADA14(0x145, 0x22); } if (GetInventoryValue(0x42)) { - gUnk_03001010.x = 0xAE; - gUnk_03001010.y = 0x3D; + gOamCmd.x = 0xAE; + gOamCmd.y = 0x3D; sub_080ADA14(0x145, 0x23); } if (GetInventoryValue(0x43)) { - gUnk_03001010.x = 0xA2; - gUnk_03001010.y = 0x44; + gOamCmd.x = 0xA2; + gOamCmd.y = 0x44; sub_080ADA14(0x145, 0x21); } } diff --git a/src/game.c b/src/game.c new file mode 100644 index 00000000..6fcd7af9 --- /dev/null +++ b/src/game.c @@ -0,0 +1,346 @@ +#include "global.h" +#include "screen.h" +#include "structures.h" +#include "functions.h" +#include "screen.h" +#include "entity.h" +#include "player.h" +#include "room.h" +#include "main.h" +#include "flags.h" +#include "save.h" +#include "fileScreen.h" + +extern u8 gArea; +extern Entity gPlayerEntity; +extern u32 gUnk_03000B80; +extern u32 gUnk_03003FC0; + +extern u16 gWalletSizes[4]; +extern u8 gUnk_080FCA84[]; +extern u8 gUnk_080FCAC8[]; +extern u8 gUnk_08127D30[]; + +void sub_080520C4(); +void sub_08052418(); + +typedef struct { + u8 _0[8]; + u8 _8[2]; + u16 _a[13]; +} struct_080FCAA4; +static_assert(sizeof(struct_080FCAA4) == 0x24); + +typedef struct { + void* _0; + void* _4; + void* _8; + u32 _c; + u8 _10; + u8 _11; + u8 _12; + u8 _13; + u32 _14; +} struct_080FCA8C; +static_assert(sizeof(struct_080FCA8C) == 0x18); + +extern struct_080FCA8C gUnk_080FCA8C; +extern struct_080FCAA4 gUnk_080FCAA4; + +extern void CreateDialogBox(); + +void sub_0805212C(void) { + if (gFadeControl.active) + return; + + if (gUnk_03001000.field_0x5 == 0) { + if (gMenu.focusCoords[0] >= 0x26) { + gMenu.focusCoords[0]--; + } else { + gMenu.transitionTimer--; + if (gMenu.transitionTimer == 0) { + sub_080520C4(2); + sub_08052418(0, 0); + gScreen.lcd.displayControl |= 0x600; + gFadeControl.field_0x4 = 0xffff; + DoFade(4, 0x10); + } + } + } else { + gUnk_03001000.field_0x5--; + } +} + +void sub_080521A0(void) { + s32 temp3; + u32 temp2; + + if (gFadeControl.active) + return; + + switch (gMenu.menuType) { + case 0: + gMenu.transitionTimer = 0x1e; + gMenu.field_0x3 = 0; + sub_080A7114(1); + sub_08052418(0, 0); + gFadeControl.field_0x4 = 0xffffffff; + break; + case 1: + if (gMenu.transitionTimer == 0) { + u32 temp = gMenu.field_0x3; + switch (gInput.newKeys) { + case 0x40: + temp = 0; + break; + case 0x80: + temp = 1; + break; + case 0x1: + if (gMenu.field_0x3 != 0) { + temp2 = 4; + } else { + CreateDialogBox(8, 0); + temp2 = 2; + } + gMenu.transitionTimer = 0x3c; + sub_080A7114(temp2); + PlaySFX(0x6a); + break; + } + if (gMenu.field_0x3 != temp) { + gMenu.field_0x3 = temp; + sub_08052418(0, temp); + PlaySFX(0x69); + } + break; + } + gMenu.transitionTimer--; + break; + case 2: + temp3 = sub_0807CDA4(0); + gMenu.field_0x0 = temp3; + switch (temp3) { + case 1: + sub_080A7114(4); + break; + case -1: + gMenu.transitionTimer = 0x3c; + CreateDialogBox(9, 0); + sub_080A7114(3); + break; + } + break; + case 3: + if (gMenu.transitionTimer != 0) { + gMenu.transitionTimer--; + } else if ((gInput.newKeys & 0xb) != 0) { + sub_080A7114(0); + } + break; + case 4: + default: + gScreen.lcd.displayControl = gScreen.lcd.displayControl & 0xfdff; + sub_08050384(); + sub_080520C4(3); + break; + } +} + +void sub_080522F4(void) { + switch (gMenu.menuType) { + case 0x0: + gMenu.transitionTimer = 0x1e; + gMenu.field_0x3 = 0; + sub_080A7114(1); + sub_08052418(1, 0); + break; + case 0x1: + gScreen.lcd.displayControl |= 0x200; + if (gMenu.transitionTimer != 0) { + gMenu.transitionTimer--; + } else { + u32 temp = gMenu.field_0x3; + switch (gInput.newKeys) { + case 0x40: + temp = 0; + break; + case 0x80: + temp = 1; + break; + case 0x1: + sub_080A7114(2); + PlaySFX(0x6a); + if (temp == 0) { + DoFade(5, 8); + } else { + DoFade(7, 8); + } + break; + } + if (gMenu.field_0x3 != temp) { + gMenu.field_0x3 = temp; + sub_08052418(1, temp); + PlaySFX(0x69); + } + } + break; + case 0x2: + default: + if (gFadeControl.active == 0) { + if (gMenu.field_0x3 == 0) { + InitScreen(2); + } else { + DoSoftReset(); + } + } + break; + } +} + +void nullsub_107(void) { +} + +void sub_080523D4(void) { + u32 i; + + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd._8 = 0x8600; + gOamCmd.y = gMenu.focusCoords[0]; + for (i = 0; i < 8; ++i) { + gOamCmd.x = gUnk_080FCA84[i]; + sub_080ADA14(0x1fd, i); + } +} + +// not sure how to approach this! +NONMATCH("asm/non_matching/game/sub_08052418.inc", void sub_08052418(int param_1, int param_2)) { + int i; + struct_080FCA8C temp; + + _DmaZero(&gBG1Buffer, 0x800); + gUnk_020227E8._0[0].WORD = 0xf; + gUnk_020227E8._0[2].WORD = 0xf; + gUnk_020227E8._0[4].WORD = 0xf; + gUnk_020227E8._0[6].WORD = 0xf; + gUnk_020227E8._0[param_2 * 2].BYTES.byte1 = 1; + _DmaCopy(&gUnk_080FCA8C, &temp, sizeof(temp)); + i = param_1 * 0xc; + // temp._0 = gBG1Buffer[gUnk_080FCAA4._8[param_1]][gUnk_080FCAA4._0[gUnk_02000000->gameLanguage + i]] * 2; + temp._13 = ((temp._13 & 0xfe) | gUnk_080FCAA4._8[i + 1]) & 1; + sub_0805F46C(gUnk_080FCAA4._a[param_1], &temp); + gScreen.bg.bg1xOffset = 1; +} +END_NONMATCH + +void InitializePlayer(void) { + Entity* pl; + + sub_080784C8(); + _DmaZero((void*)&gUnk_03000B80, 0x70); + _DmaZero((void*)&gPlayerState, 0xb0); + + _DmaFill32(0xffffffff, &gPlayerState.field_0x40, 0x40); + pl = &gPlayerEntity; + _DmaZero((void*)pl, 0x88); + gRoomControls.cameraTarget = pl; + gPlayerState.playerAction = gUnk_080FCAC8[gScreenTransition.field_0xf]; + if (!CheckGlobalFlag(0x14)) { + gPlayerState.flags.all |= 8; + } + switch (gScreenTransition.field_0xf) { + case 0x2: + case 0x6: + pl->height.HALF.HI = -0xc0; + break; + case 0x4: + gPlayerState.field_0x34[4] = 0x10; + pl->direction = gScreenTransition.playerState << 2; + case 0x3: + pl->nonPlanarMovement = 0xe0; + break; + case 0x7: + case 0x8: + gPlayerState.field_0x34[4] = 1; + gPlayerState.field_0x34[5] = gScreenTransition.field_0xf; + break; + case 0xa: + gPlayerState.field_0x34[4] = 1; + break; + case 0xb: + gPlayerState.field_0x34[4] = 3; + break; + case 0xc: + gPlayerState.field_0x34[4] = 4; + } + pl->entityType.type = 1; + pl->flags |= 0xa0; + pl->spritePriority.b0 = 4; + pl->currentHealth = gSave.stats.health; + pl->x.HALF.HI = gScreenTransition.playerStartPos.HALF.x; + pl->y.HALF.HI = gScreenTransition.playerStartPos.HALF.y; + pl->animationState = gScreenTransition.playerState; + pl->collisionLayer = gScreenTransition.playerLayer; + UpdateSpriteForCollisionLayer(pl); + AppendEntityToList(pl, 1); + sub_08017640(); +} + +bool32 sub_08052620(u32 r0) { + return gArea == 0x81; +} + +bool32 sub_08052638(u32 r0) { + return gUnk_08127D30[r0 * 4] == 0x81; +} + +u32 sub_08052654() { + return (gArea >> 7) & 1; +} + +u32 CheckIsDungeon() { + return (gArea >> 2) & 1; +} + +u32 sub_08052670() { + return (gArea >> 4) & 1; +} + +u32 sub_08052680() { + return (gArea >> 6) & 1; +} + +u32 sub_08052690() { + return (gArea >> 3) & 1; +} + +s32 ModHealth(s32 deltaHealth) { + s32 newHealth; + + newHealth = gStats.health + deltaHealth; + if (newHealth < 0) { + newHealth = 0; + } + if (gStats.maxHealth < newHealth) { + newHealth = (u32)gStats.maxHealth; + } + gStats.health = newHealth; + gPlayerEntity.currentHealth = newHealth; + return newHealth; +} + +void ModRupees(s32 rupeeDelta) { + s32 newRupeeCount; + Stats* s = &gStats; + + newRupeeCount = s->rupees + rupeeDelta; + if (newRupeeCount < 0) { + newRupeeCount = 0; + } else { + if (newRupeeCount > gWalletSizes[s->walletType * 2]) { + newRupeeCount = gWalletSizes[s->walletType * 2]; + } + } + s->rupees = newRupeeCount; +} diff --git a/src/initializePlayer.c b/src/initializePlayer.c deleted file mode 100644 index 9443c395..00000000 --- a/src/initializePlayer.c +++ /dev/null @@ -1,68 +0,0 @@ -#include "global.h" -#include "entity.h" -#include "player.h" -#include "structures.h" -#include "functions.h" -#include "room.h" -#include "flags.h" -#include "save.h" - -extern u32 gUnk_03000B80; -extern u32 gUnk_03003FC0; - -extern Entity gPlayerEntity; - -extern u8 gUnk_080FCAC8[]; - -void InitializePlayer(void) { - Entity* pl; - - sub_080784C8(); - _DmaZero((void*)&gUnk_03000B80, 0x70); - _DmaZero((void*)&gPlayerState, 0xb0); - - _DmaFill32(0xffffffff, &gPlayerState.field_0x40, 0x40); - pl = &gPlayerEntity; - _DmaZero((void*)pl, 0x88); - gRoomControls.cameraTarget = pl; - gPlayerState.playerAction = gUnk_080FCAC8[gScreenTransition.field_0xf]; - if (!CheckGlobalFlag(0x14)) { - gPlayerState.flags.all |= 8; - } - switch (gScreenTransition.field_0xf) { - case 0x2: - case 0x6: - pl->height.HALF.HI = -0xc0; - break; - case 0x4: - gPlayerState.field_0x34[4] = 0x10; - pl->direction = gScreenTransition.playerState << 2; - case 0x3: - pl->nonPlanarMovement = 0xe0; - break; - case 0x7: - case 0x8: - gPlayerState.field_0x34[4] = 1; - gPlayerState.field_0x34[5] = gScreenTransition.field_0xf; - break; - case 0xa: - gPlayerState.field_0x34[4] = 1; - break; - case 0xb: - gPlayerState.field_0x34[4] = 3; - break; - case 0xc: - gPlayerState.field_0x34[4] = 4; - } - pl->entityType.type = 1; - pl->flags |= 0xa0; - pl->spritePriority.b0 = 4; - pl->currentHealth = gSave.stats.health; - pl->x.HALF.HI = gScreenTransition.playerStartPos.HALF.x; - pl->y.HALF.HI = gScreenTransition.playerStartPos.HALF.y; - pl->animationState = gScreenTransition.playerState; - pl->collisionLayer = gScreenTransition.playerLayer; - UpdateSpriteForCollisionLayer(pl); - AppendEntityToList(pl, 1); - sub_08017640(); -} diff --git a/src/intro.c b/src/intro.c index e33f8bfa..b0e75a85 100644 --- a/src/intro.c +++ b/src/intro.c @@ -114,8 +114,6 @@ static void HandleNintendoCapcomLogos(void) { } } -extern u16 gUnk_03001010[5]; - static void HandleTitlescreen(void) { int advance; u32 paletteGroup; @@ -193,8 +191,8 @@ static void HandleTitlescreen(void) { } UpdatePressStartIcon(); if ((gIntroState.timer & 0x20) == 0) { - gUnk_03001010[4] = 0xe000; - gUnk_03001010[1] = 0x84; + gOamCmd._8 = 0xe000; + gOamCmd.y = 0x84; sub_080ADA14(0x1ff, 0); } } @@ -208,11 +206,11 @@ static void HandleTitlescreen(void) { } static void UpdatePressStartIcon(void) { - gUnk_03001010[2] = 0; - gUnk_03001010[3] = 0; - gUnk_03001010[4] = 0xE020; - gUnk_03001010[0] = 120; - gUnk_03001010[1] = 152; + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd._8 = 0xE020; + gOamCmd.x = 120; + gOamCmd.y = 152; sub_080ADA14(511, 1); return; } diff --git a/src/main.c b/src/main.c index 4a136d48..3d8b1f96 100644 --- a/src/main.c +++ b/src/main.c @@ -138,7 +138,27 @@ void DoSoftReset(void) { SoftReset(RESET_ALL & ~(RESET_EWRAM | RESET_SIO_REGS)); } -const int sDefaultSettings[] = { SIGNATURE, '\1\1\1\0', 'KNIL', '\0\0\0\0' }; +typedef struct { + int signature; + u8 saveFileId; + u8 messageSpeed; + u8 brightnessPref; + u8 gameLanguage; + u8 name[6]; + u8 _e; + u8 _f; +} test; + +const test sDefaultSettings = { + .signature = SIGNATURE, + .saveFileId = 0, + .messageSpeed = 1, + .brightnessPref = 1, + .gameLanguage = LANGUAGE_EN, + .name = "LINK", + ._e = 0, + ._f = 0, +}; // single misplaced ldr NONMATCH("asm/non_matching/sub_080560B8.inc", void sub_080560B8(void)) { diff --git a/src/modHealth.c b/src/modHealth.c deleted file mode 100644 index a42917a4..00000000 --- a/src/modHealth.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "global.h" -#include "entity.h" -#include "player.h" - -s32 ModHealth(s32 deltaHealth) - -{ - s32 newHealth; - - newHealth = gStats.health + deltaHealth; - if (newHealth < 0) { - newHealth = 0; - } - if (gStats.maxHealth < newHealth) { - newHealth = (u32)gStats.maxHealth; - } - gStats.health = newHealth; - gPlayerEntity.currentHealth = newHealth; - return newHealth; -} diff --git a/src/modRupees.c b/src/modRupees.c deleted file mode 100644 index cedec389..00000000 --- a/src/modRupees.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "global.h" -#include "player.h" - -extern u16 gWalletSizes[4]; - -void ModRupees(s32 rupeeDelta) - -{ - s32 newRupeeCount; - Stats* s = &gStats; - - newRupeeCount = s->rupees + rupeeDelta; - if (newRupeeCount < 0) { - newRupeeCount = 0; - } else { - if (newRupeeCount > gWalletSizes[s->walletType * 2]) { - newRupeeCount = gWalletSizes[s->walletType * 2]; - } - } - s->rupees = newRupeeCount; -} diff --git a/src/tmc.code-workspace b/src/tmc.code-workspace index 9a79bbb1..1c4c5521 100644 --- a/src/tmc.code-workspace +++ b/src/tmc.code-workspace @@ -14,7 +14,8 @@ "filescreen.h": "c", "screen.h": "c", "global.h": "c", - "player.h": "c" + "player.h": "c", + "typeinfo": "c" } } }