From 005b903e6d77663786d3a25140680ff2ee2220bf Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 13 Aug 2025 08:29:17 -0500 Subject: [PATCH] sub_50000 --- asm/rom_4CEA8.s | 91 -------------------------------------- expected_objs/sub_50000.o | Bin 1180 -> 0 bytes include/global.h | 2 +- src/rom_50AD4.c | 30 +++++++++++++ 4 files changed, 31 insertions(+), 92 deletions(-) delete mode 100644 expected_objs/sub_50000.o diff --git a/asm/rom_4CEA8.s b/asm/rom_4CEA8.s index e79174c..601265b 100644 --- a/asm/rom_4CEA8.s +++ b/asm/rom_4CEA8.s @@ -5825,94 +5825,3 @@ _0804FFF0: .4byte 0x80000030 _0804FFF4: .4byte 0x00000105 _0804FFF8: .4byte gUnknown_086B146C _0804FFFC: .4byte 0x00000107 - - thumb_func_start sub_50000 -sub_50000: @ 0x08050000 - push {r4, r5, r6, lr} - movs r1, #0 - ldr r6, _0805009C @ =gCurrentPinballGame - ldr r2, [r6] - movs r3, #0xe5 - lsls r3, r3, #3 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08050026 - ldr r1, _080500A0 @ =0x00000734 - adds r0, r2, r1 - ldrh r1, [r0] - movs r0, #1 - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 -_08050026: - lsls r0, r1, #0x10 - asrs r0, r0, #0xc - ldr r3, _080500A4 @ =gUnknown_086B11FC - adds r4, r0, r3 - adds r5, r3, #0 - adds r5, #0x20 - adds r0, r2, #0 - adds r0, #0x6a - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0xff - bgt _0805004E - ldr r1, _080500A8 @ =0x040000D4 - ldr r0, [r4] - str r0, [r1] - ldr r0, [r3, #0x20] - str r0, [r1, #4] - ldr r0, _080500AC @ =0x80000020 - str r0, [r1, #8] - ldr r0, [r1, #8] -_0805004E: - ldr r0, [r6] - adds r2, r0, #0 - adds r2, #0x6a - ldrh r0, [r2] - subs r0, #0x61 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xa6 - bhi _08050070 - ldr r1, _080500A8 @ =0x040000D4 - ldr r0, [r4, #4] - str r0, [r1] - ldr r0, [r5, #4] - str r0, [r1, #4] - ldr r0, _080500B0 @ =0x80000040 - str r0, [r1, #8] - ldr r0, [r1, #8] -_08050070: - movs r3, #0 - ldrsh r0, [r2, r3] - cmp r0, #0x67 - ble _08050094 - ldr r0, _080500A8 @ =0x040000D4 - ldr r1, [r4, #8] - str r1, [r0] - ldr r1, [r5, #8] - str r1, [r0, #4] - ldr r2, _080500B0 @ =0x80000040 - str r2, [r0, #8] - ldr r1, [r0, #8] - ldr r1, [r4, #0xc] - str r1, [r0] - ldr r1, [r5, #0xc] - str r1, [r0, #4] - str r2, [r0, #8] - ldr r0, [r0, #8] -_08050094: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0805009C: .4byte gCurrentPinballGame -_080500A0: .4byte 0x00000734 -_080500A4: .4byte gUnknown_086B11FC -_080500A8: .4byte 0x040000D4 -_080500AC: .4byte 0x80000020 -_080500B0: .4byte 0x80000040 diff --git a/expected_objs/sub_50000.o b/expected_objs/sub_50000.o deleted file mode 100644 index ca52341ba82d5e830839d4995dabb07a4705e929..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1180 zcmaizzi-n(6vyA?r=u2>v;tWrKtfw&31qpEo2HxH&^9Tws!&-|+p3jInuf@6M42d^ z!p;N?ARz=20|RUw`2#vIAVCKtkYHzrcX7^K7~n-u@AEx>-{tOnzPEg1g%AQf2q^GJ z0qD`elej)83Zy`S&O6A@ZWQRZ=}&Mh!#*V7EGUVSe05VMeUdY#AV$We7))Nc{$4(x z&CRE?O%3u!?U$1LJXOt6$&#BDORn^-KGkR>+bpE}b_rrI{z6H9%v3FOP+GAv0|!hW z*Xqitld;M(N~~AZw8qvBt^4!~svoEhtpnOQB1f_Sfl^#edG2XJ6unip}*c5SBt zbv_s zs5`cAgX(mn-Obl)88+torR@fb3aSk(uX<)MW8UbKu z%=%bA^GTSqL(OmBchq9=_jLsang4%2E%0>s9BjTE7g+gxtm2ZwkZ{1jWS?0EldX@f dm+gW7Cn8j^=`n+0@cCGe==+I2gPX8&-*0a)ge(96 diff --git a/include/global.h b/include/global.h index 9b372a7..5b9be5a 100644 --- a/include/global.h +++ b/include/global.h @@ -624,7 +624,7 @@ struct PinballGame /*0x71D*/ u8 filler71D[0x7]; /*0x724*/ u16 unk724; /*0x726*/ u8 filler726[0x2]; - /*0x728*/ u8 unk728; // TODO: unknown type + /*0x728*/ s8 unk728; /*0x729*/ s8 unk729; /*0x72A*/ s8 unk72A; /*0x72B*/ u8 filler72B[0x3]; diff --git a/src/rom_50AD4.c b/src/rom_50AD4.c index 4c8e807..15f04fb 100644 --- a/src/rom_50AD4.c +++ b/src/rom_50AD4.c @@ -11,8 +11,38 @@ extern const u8 *gUnknown_086B12D0[][4]; extern const u8 *gUnknown_086B14A8[][5][3]; extern const u8 *gUnknown_086B1340[][5][3]; extern const u8 *gUnknown_086B122C[][4]; +extern const u8 *gUnknown_086B11FC[][4]; +void sub_50000(void) +{ + s16 index; + const u8 **src; + const u8 **dest; + + index = 0; + if (gCurrentPinballGame->unk728 > 0) + index = 1 - gCurrentPinballGame->unk734; + + src = gUnknown_086B11FC[index]; + dest = gUnknown_086B11FC[2]; + if (gCurrentPinballGame->unk6A < 256) + { + DmaCopy16(3, src[0], dest[0], 0x40); + } + + if (gCurrentPinballGame->unk6A >= 97 && gCurrentPinballGame->unk6A < 264) + { + DmaCopy16(3, src[1], dest[1], 0x80); + } + + if (gCurrentPinballGame->unk6A > 0x67) + { + DmaCopy16(3, src[2], dest[2], 0x80); + DmaCopy16(3, src[3], dest[3], 0x80); + } +} + void sub_500B4(void) { s16 index;