From a1ddcdc3568675619287f68863fde2e8e0bd348e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=94elta?= <134818705+1312Delta@users.noreply.github.com> Date: Sat, 5 Jul 2025 17:27:15 +0200 Subject: [PATCH] Decompile functions: sub_50F04, nullsub_20 sub_50DE8, sub_50DB8, sub_50B80, added variables and fixed currentpinballgame struct (#127) * Decompiled sub_50F04, nullsub_20 sub_50DE8, sub_50DB8, and sub_50B80 added gUnknown_0200C668,gUnknown_0200EA58,gUnknown_0200BAE8,gUnknown_0200BBA0 to variables.h * Correct PinballGame struct field at offset 0x1BC thanks to @Retn Correct struct access in sub_50B80 Remove section .text50AD4 from linker script * Deleted expected objects * cleanup --------- Co-authored-by: THCFree Co-authored-by: Marcus Huderle --- asm/rom_4CEA8.s | 528 ------------------------------------- expected_objs/nullsub_20.o | Bin 596 -> 0 bytes expected_objs/sub_50B80.o | Bin 2248 -> 0 bytes expected_objs/sub_50DB8.o | Bin 856 -> 0 bytes expected_objs/sub_50F04.o | Bin 1120 -> 0 bytes include/global.h | 3 +- ld_script.txt | 1 - src/rom_50FAC.c | 166 ++++++++++++ 8 files changed, 168 insertions(+), 530 deletions(-) delete mode 100644 expected_objs/nullsub_20.o delete mode 100644 expected_objs/sub_50B80.o delete mode 100644 expected_objs/sub_50DB8.o delete mode 100644 expected_objs/sub_50F04.o diff --git a/asm/rom_4CEA8.s b/asm/rom_4CEA8.s index 17d6d22..b8c9983 100644 --- a/asm/rom_4CEA8.s +++ b/asm/rom_4CEA8.s @@ -7258,531 +7258,3 @@ _08050AC8: .4byte 0x00002B38 _08050ACC: .4byte 0x000029C8 _08050AD0: .4byte 0x00000A28 -.section .text50AD4 - - thumb_func_start sub_50B80 -sub_50B80: @ 0x08050B80 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - movs r0, #0x37 - ldr r1, _08050CF0 @ =gMain - mov sb, r1 - mov r5, sb - movs r4, #0xb8 - movs r3, #0xbe - lsls r3, r3, #2 - movs r2, #0 -_08050B9A: - lsls r1, r0, #0x10 - asrs r1, r1, #0x10 - adds r0, r1, #0 - muls r0, r4, r0 - adds r0, r0, r5 - adds r0, r0, r3 - strh r2, [r0] - adds r1, #1 - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0x46 - ble _08050B9A - mov r5, sb - ldr r2, _08050CF4 @ =0x00002858 - adds r7, r5, r2 - movs r0, #0 - strh r0, [r7] - ldr r1, _08050CF8 @ =0x000036B8 - adds r1, r1, r5 - mov r8, r1 - strh r0, [r1] - ldr r2, _08050CFC @ =gUnknown_0200C668 - strh r0, [r2] - ldr r1, _08050D00 @ =0x000027A0 - adds r6, r5, r1 - strh r0, [r6] - ldr r2, _08050D04 @ =gUnknown_0200EA58 - strh r0, [r2] - ldr r1, _08050D08 @ =0x000038E0 - adds r1, r1, r5 - mov sl, r1 - strh r0, [r1] - ldr r2, _08050D0C @ =gUnknown_0200BAE8 - strh r0, [r2] - ldr r1, _08050D10 @ =gUnknown_0200BBA0 - strh r0, [r1] - ldr r2, _08050D14 @ =gCurrentPinballGame - ldr r4, [r2] - ldr r0, [r5, #0x4c] - movs r1, #0x19 - bl __umodsi3 - movs r2, #0xde - lsls r2, r2, #1 - adds r1, r4, r2 - strh r0, [r1] - adds r4, #0x68 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0x59 - bgt _08050C08 - movs r0, #1 - strh r0, [r7] - strh r0, [r6] -_08050C08: - ldr r2, _08050D14 @ =gCurrentPinballGame - ldr r0, [r2] - adds r4, r0, #0 - adds r4, #0x68 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0xdb - bgt _08050C1E - movs r0, #1 - mov r2, r8 - strh r0, [r2] -_08050C1E: - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0x95 - bgt _08050C34 - ldr r2, _08050D18 @ =0x00002E18 - adds r0, r5, r2 - movs r1, #1 - strh r1, [r0] - ldr r2, _08050D1C @ =0x00003490 - adds r0, r5, r2 - strh r1, [r0] -_08050C34: - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0xc3 - bgt _08050C4A - movs r2, #0xc1 - lsls r2, r2, #6 - adds r1, r5, r2 - movs r0, #1 - strh r0, [r1] - mov r1, sl - strh r0, [r1] -_08050C4A: - movs r2, #0 - ldrsh r0, [r4, r2] - cmp r0, #0xc9 - bgt _08050C70 - ldr r1, _08050D20 @ =0x00002ED0 - adds r0, r5, r1 - movs r1, #1 - strh r1, [r0] - ldr r2, _08050D24 @ =0x00002CA8 - adds r0, r5, r2 - strh r1, [r0] - ldr r2, _08050D28 @ =0x00002F88 - adds r0, r5, r2 - strh r1, [r0] - ldr r2, _08050D2C @ =0x00002D60 - adds r0, r5, r2 - strh r1, [r0] - ldr r0, _08050D04 @ =gUnknown_0200EA58 - strh r1, [r0] -_08050C70: - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0x76 - ble _08050CA2 - ldr r2, _08050D30 @ =0x00003548 - adds r1, r5, r2 - movs r0, #1 - strh r0, [r1] - ldr r1, _08050CFC @ =gUnknown_0200C668 - strh r0, [r1] - ldr r2, _08050D34 @ =0x000030F8 - adds r1, r5, r2 - strh r0, [r1] - ldr r2, _08050D38 @ =0x000033D8 - adds r1, r5, r2 - strh r0, [r1] - ldr r2, _08050D3C @ =0x000031B0 - adds r1, r5, r2 - strh r0, [r1] - adds r2, #0xb8 - adds r1, r5, r2 - strh r0, [r1] - adds r2, #0xb8 - adds r1, r5, r2 - strh r0, [r1] -_08050CA2: - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #0xd8 - ble _08050CC8 - ldr r2, _08050D40 @ =0x00002BF0 - adds r0, r5, r2 - movs r1, #1 - strh r1, [r0] - movs r2, #0xaa - lsls r2, r2, #6 - adds r0, r5, r2 - strh r1, [r0] - adds r2, #0xb8 - adds r0, r5, r2 - strh r1, [r0] - ldr r0, _08050D0C @ =gUnknown_0200BAE8 - strh r1, [r0] - ldr r2, _08050D10 @ =gUnknown_0200BBA0 - strh r1, [r2] -_08050CC8: - mov r0, sb - ldrb r1, [r0, #4] - lsls r1, r1, #3 - ldr r2, _08050D44 @ =gUnknown_086B155C - adds r1, r1, r2 - ldr r0, [r1] - ldrh r1, [r1, #4] - movs r2, #0xbe - lsls r2, r2, #2 - add r2, sb - bl LoadSpriteSets - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08050CF0: .4byte gMain -_08050CF4: .4byte 0x00002858 -_08050CF8: .4byte 0x000036B8 -_08050CFC: .4byte gUnknown_0200C668 -_08050D00: .4byte 0x000027A0 -_08050D04: .4byte gUnknown_0200EA58 -_08050D08: .4byte 0x000038E0 -_08050D0C: .4byte gUnknown_0200BAE8 -_08050D10: .4byte gUnknown_0200BBA0 -_08050D14: .4byte gCurrentPinballGame -_08050D18: .4byte 0x00002E18 -_08050D1C: .4byte 0x00003490 -_08050D20: .4byte 0x00002ED0 -_08050D24: .4byte 0x00002CA8 -_08050D28: .4byte 0x00002F88 -_08050D2C: .4byte 0x00002D60 -_08050D30: .4byte 0x00003548 -_08050D34: .4byte 0x000030F8 -_08050D38: .4byte 0x000033D8 -_08050D3C: .4byte 0x000031B0 -_08050D40: .4byte 0x00002BF0 -_08050D44: .4byte gUnknown_086B155C - - thumb_func_start sub_50D48 -sub_50D48: @ 0x08050D48 - push {r4, r5, r6, r7, lr} - movs r1, #0 - ldr r6, _08050D74 @ =gMain - ldr r0, _08050D78 @ =gUnknown_086B155C - mov ip, r0 - adds r5, r6, #0 - movs r4, #0xb8 - movs r2, #0xbe - lsls r2, r2, #2 - movs r7, #1 -_08050D5C: - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r3, r0, #0 - cmp r1, #4 - bgt _08050D7C - adds r0, r1, #0 - muls r0, r4, r0 - adds r0, r0, r5 - adds r0, r0, r2 - strh r7, [r0] - b _08050D88 - .align 2, 0 -_08050D74: .4byte gMain -_08050D78: .4byte gUnknown_086B155C -_08050D7C: - adds r0, r1, #0 - muls r0, r4, r0 - adds r0, r0, r5 - adds r0, r0, r2 - movs r1, #0 - strh r1, [r0] -_08050D88: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r3, r1 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xe - ble _08050D5C - ldr r0, [r6, #0x44] - ldr r1, [r0] - movs r0, #1 - strh r0, [r1] - ldrb r1, [r6, #4] - lsls r1, r1, #3 - add r1, ip - ldr r0, [r1] - ldrh r1, [r1, #4] - movs r3, #0xbe - lsls r3, r3, #2 - adds r2, r6, r3 - bl LoadSpriteSets - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_start sub_50DB8 -sub_50DB8: @ 0x08050DB8 - push {lr} - ldr r0, _08050DD8 @ =gUnknown_086B155C - ldr r2, _08050DDC @ =gMain - ldrb r1, [r2, #4] - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, [r1] - ldrh r1, [r1, #4] - movs r3, #0xbe - lsls r3, r3, #2 - adds r2, r2, r3 - bl LoadSpriteSets - pop {r0} - bx r0 - .align 2, 0 -_08050DD8: .4byte gUnknown_086B155C -_08050DDC: .4byte gMain - - thumb_func_start sub_50DE0 -sub_50DE0: @ 0x08050DE0 - push {r4, r5, r6, r7, lr} - movs r1, #0 - ldr r2, _08050E0C @ =gMain - ldr r0, _08050E10 @ =gUnknown_086B155C - mov ip, r0 - adds r6, r2, #0 - movs r5, #0xb8 - movs r4, #0xbe - lsls r4, r4, #2 - movs r7, #1 -_08050DF4: - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r3, r0, #0 - cmp r1, #4 - bgt _08050E14 - adds r0, r1, #0 - muls r0, r5, r0 - adds r0, r0, r6 - adds r0, r0, r4 - strh r7, [r0] - b _08050E20 - .align 2, 0 -_08050E0C: .4byte gMain -_08050E10: .4byte gUnknown_086B155C -_08050E14: - adds r0, r1, #0 - muls r0, r5, r0 - adds r0, r0, r6 - adds r0, r0, r4 - movs r1, #0 - strh r1, [r0] -_08050E20: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r3, r1 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x20 - ble _08050DF4 - ldr r0, [r2, #0x44] - ldr r1, [r0] - movs r0, #1 - strh r0, [r1] - movs r3, #0x9c - lsls r3, r3, #5 - adds r1, r2, r3 - strh r0, [r1] - movs r3, #0x97 - lsls r3, r3, #4 - adds r1, r2, r3 - strh r0, [r1] - ldr r3, _08050EE8 @ =0x00001438 - adds r1, r2, r3 - strh r0, [r1] - ldr r3, _08050EEC @ =0x00000E78 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r2, r3 - strh r0, [r1] - ldr r3, _08050EF0 @ =0x00000A28 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - ldr r3, _08050EF4 @ =0x00000FE8 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - ldr r3, _08050EF8 @ =0x000014F0 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - movs r3, #0xca - lsls r3, r3, #5 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - ldr r3, _08050EFC @ =0x000017D0 - adds r1, r2, r3 - strh r0, [r1] - adds r3, #0xb8 - adds r1, r2, r3 - strh r0, [r1] - ldrb r1, [r2, #4] - lsls r1, r1, #3 - add r1, ip - ldr r0, [r1] - ldrh r1, [r1, #4] - movs r3, #0xbe - lsls r3, r3, #2 - adds r2, r2, r3 - bl LoadSpriteSets - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08050EE8: .4byte 0x00001438 -_08050EEC: .4byte 0x00000E78 -_08050EF0: .4byte 0x00000A28 -_08050EF4: .4byte 0x00000FE8 -_08050EF8: .4byte 0x000014F0 -_08050EFC: .4byte 0x000017D0 - - thumb_func_start nullsub_20 -nullsub_20: @ 0x08050F00 - bx lr - - thumb_func_start sub_50F04 -sub_50F04: @ 0x08050F04 - push {r4, r5, r6, r7, lr} - movs r1, #0 - ldr r2, _08050F30 @ =gMain - ldr r0, _08050F34 @ =gUnknown_086B155C - mov ip, r0 - adds r6, r2, #0 - movs r5, #0xb8 - movs r4, #0xbe - lsls r4, r4, #2 - movs r7, #1 -_08050F18: - lsls r0, r1, #0x10 - asrs r1, r0, #0x10 - adds r3, r0, #0 - cmp r1, #4 - bgt _08050F38 - adds r0, r1, #0 - muls r0, r5, r0 - adds r0, r0, r6 - adds r0, r0, r4 - strh r7, [r0] - b _08050F44 - .align 2, 0 -_08050F30: .4byte gMain -_08050F34: .4byte gUnknown_086B155C -_08050F38: - adds r0, r1, #0 - muls r0, r5, r0 - adds r0, r0, r6 - adds r0, r0, r4 - movs r1, #0 - strh r1, [r0] -_08050F44: - movs r1, #0x80 - lsls r1, r1, #9 - adds r0, r3, r1 - lsrs r1, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1a - ble _08050F18 - ldr r0, [r2, #0x44] - ldr r0, [r0] - movs r1, #1 - strh r1, [r0] - movs r3, #0xae - lsls r3, r3, #4 - adds r0, r2, r3 - strh r1, [r0] - adds r3, #0xb8 - adds r0, r2, r3 - strh r1, [r0] - adds r3, #0xb8 - adds r0, r2, r3 - strh r1, [r0] - adds r3, #0xb8 - adds r0, r2, r3 - strh r1, [r0] - ldr r3, _08050FA8 @ =0x00001210 - adds r0, r2, r3 - strh r1, [r0] - adds r3, #0xb8 - adds r0, r2, r3 - strh r1, [r0] - adds r3, #0xb8 - adds r0, r2, r3 - strh r1, [r0] - movs r3, #0xdc - lsls r3, r3, #4 - adds r0, r2, r3 - strh r1, [r0] - ldrb r1, [r2, #4] - lsls r1, r1, #3 - add r1, ip - ldr r0, [r1] - ldrh r1, [r1, #4] - movs r3, #0xbe - lsls r3, r3, #2 - adds r2, r2, r3 - bl LoadSpriteSets - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08050FA8: .4byte 0x00001210 diff --git a/expected_objs/nullsub_20.o b/expected_objs/nullsub_20.o deleted file mode 100644 index 7a25d56464860db80d8dc0baa774990a3f11cdaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmah_O-lnY6r41+-JblQo;+AVum=euf*yJ)Xp3Mk#e+9VaKS>A(!2#d`PV%95BxiQ z&&^wRFPiX}nPl=Z$;Zvz#25n|21EQRpkIpi#gAc#3|*|IpOf(+FZkSt1botBhcQm~aiicdiVeUQ!X$;~-A%Zr|J?(h5g zo!{?w&dt5~rSB%EO+`_N4~2ZxCZf4Vnkzlwrty)BG-`bPx_Qn_nuj|Ro=fRx3lSr zTeqj7rs4en-m}nW)65PQe=84-JoxMWgI~Sp>6%-!i(wj>n|Z^h?klLH+wn|)v3uC@ z{?hcu&3>E3eC+Gpe<8E&Rz?*2d1jm5Z{fY`-BfP46^~}Wg5AiwHFM9`w;xIuo3X)W zY(Tn>rJUTieS-&QGEU}`INxb#em&LH^&s;&S9XRyU*Ex4>kK!sD?3F!$gTsZIgmMK zr%dI_J$fRu?$(OyYq!0dlu5ArjqYAGubDT^#;&qUQ_hpQoXiHl6f-g&qTcTBo*~ei^ zJPCeJ;tY6A;)~!9C7uCqNL&PeBypAHV>&~jRfx|y;_lvu-jR3%`l^)w3HURKuY-S( z;=hD$NL+{BlH$JsUzhkt@V3N1gTIjY5bTxscknHV{{-(yd>>qwScBe`cmO&j@i6oq ziH}2nC$SD)kr?I0=%OA9VT~^jK)uKTQT>=x9sF7czuCd!a_xbGFmF3^NfVf;}SZLOXwmlAmRc%&Jb}%AjvC-_-Y~` zsswlyBP>oeA?gL&O5_GbZcyaLg8a-Ok zvbZ!~D}`u!DK~#%xmvOc7YbI57P7fgg%)0|yj59xr!uPtb=?>rk3Q^4#v&b_cr4lJ ziN|zWFjlJ7LdANyRLSSc<*D3aL8=rTj|UdP&cx2gzU%BB b_@0n-vpuwkC%SZt z?%krlq+7S_J=f96L%n78ecsIXy`6cpw|k|c5CX~s5|~85ryKaThk^t`2m;T6gTPUw z|AtUB*toxYU4O(!bnx{(5HHwQm4NITv1yxD6Jm+bmpv};o)pT5@Oy$Hq zT>xHsbn{|nN+Db-8^Tcs2juNkG@fZob@L`3#+SDS^h9+1bc6;DXa$KBRM_i(s zOea&xLLoh-JmNJtJ*!I7xim^`vsUSJo6@e>(n0;Sb>3=UwJ2{Vx0OoeQ7@a#7M7`Y zIP9LsGwYtiGe?t#)4!CaMP7DY-%!-GFAQm4OBgj%nlLQKfk8btOewoft0!$o+wtGX zSI52Zk7RuI#E98(ui3a~AsQJPY!8&gedavQXC3`9!(MW%Zt;v*H(q1gq`~_CbV*m! zAvZLx7jtp=R`u9>wD}w2cNzg2yl>tg-zBs9CLv0cSYjBNsu!VH*FDifMv2HP-4D)e BM)3du diff --git a/expected_objs/sub_50F04.o b/expected_objs/sub_50F04.o deleted file mode 100644 index c28d2ef4d9711ea2bd6911f175a8d000dcbcbff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1120 zcmah|zi-n}5dL0%v`$n(TLqNTND!Ke0F~t`P6=B=N}$k4r~!$svK6a|C}|bH3OeC| z0saM87&uiZm&0l5Ktyi#3=)Q z#{5ju^j#4tXgL0eeCl5M?#ssc++gvjZ~$>dONdN7m$;f9YPn9`o5S3sm;R=z0xF8U z@Vxw5>~U61A#X*zrvU2Tg&Bg9qT(*yS3ZzN~h&W*Y8P;4#$0r%>Zx6r)jp(-TkN1vdPQ- z$afU#JKMT+o=fO$OIpxv*M&~A*DWdgU3*VDZscbFhWrX~&n5yH_y2u>+40QT=4qv9 zRcW!kqwj|2&HH#i>oi)60atI+ka*P8e6CZF_5agxUr4j7YH+unk1BC = gMain.systemFrameCount % 25; + if (gCurrentPinballGame->unk68 < 90) + { + gMain.spriteGroups[52].available = 1; + gMain.spriteGroups[51].available = 1; + } + if (gCurrentPinballGame->unk68 < 220) + { + gMain.spriteGroups[72].available = 1; + } + if (gCurrentPinballGame->unk68 < 150) + { + gMain.spriteGroups[60].available = 1; + gMain.spriteGroups[69].available = 1; + } + if (gCurrentPinballGame->unk68 < 196) + { + gMain.spriteGroups[63].available = 1; + gMain.spriteGroups[75].available = 1; + } + if (gCurrentPinballGame->unk68 < 202) + { + gMain.spriteGroups[61].available = 1; + gMain.spriteGroups[58].available = 1; + gMain.spriteGroups[62].available = 1; + gMain.spriteGroups[59].available = 1; + gMain.spriteGroups[76].available = 1; + } + if (gCurrentPinballGame->unk68 > 118) + { + gMain.spriteGroups[70].available = 1; + gMain.spriteGroups[26].available = 1; + gMain.spriteGroups[64].available = 1; + gMain.spriteGroups[68].available = 1; + gMain.spriteGroups[65].available = 1; + gMain.spriteGroups[66].available = 1; + gMain.spriteGroups[67].available = 1; + } + if (gCurrentPinballGame->unk68 > 216) + { + gMain.spriteGroups[57].available = 1; + gMain.spriteGroups[55].available = 1; + gMain.spriteGroups[56].available = 1; + gMain.spriteGroups[10].available = 1; + gMain.spriteGroups[11].available = 1; + } + + LoadSpriteSets(gUnknown_086B155C[gMain.selectedField].spriteSets, gUnknown_086B155C[gMain.selectedField].numSpriteSets, gMain.spriteGroups); +} + +void sub_50D48(void) +{ + s16 i; + + for (i = 0; i < 15; i++) + { + if (i < 5) + gMain.spriteGroups[i].available = 1; + else + gMain.spriteGroups[i].available = 0; + } + + gMain.unk44[0]->available = 1; + + LoadSpriteSets(gUnknown_086B155C[gMain.selectedField].spriteSets, + gUnknown_086B155C[gMain.selectedField].numSpriteSets, + gMain.spriteGroups); +} + +void sub_50DB8(void) +{ + LoadSpriteSets(gUnknown_086B155C[gMain.selectedField].spriteSets, + gUnknown_086B155C[gMain.selectedField].numSpriteSets, + gMain.spriteGroups); +} + +void sub_50DE0(void) +{ + s16 i; + + for (i = 0; i < 33; i++) + { + if (i < 5) + gMain.spriteGroups[i].available = 1; + else + gMain.spriteGroups[i].available = 0; + } + + gMain.unk44[0]->available = 1; + gMain.spriteGroups[23].available = 1; + gMain.spriteGroups[9].available = 1; + gMain.spriteGroups[24].available = 1; + gMain.spriteGroups[16].available = 1; + gMain.spriteGroups[17].available = 1; + gMain.spriteGroups[7].available = 1; + gMain.spriteGroups[10].available = 1; + gMain.spriteGroups[11].available = 1; + gMain.spriteGroups[12].available = 1; + gMain.spriteGroups[13].available = 1; + gMain.spriteGroups[14].available = 1; + gMain.spriteGroups[15].available = 1; + gMain.spriteGroups[18].available = 1; + gMain.spriteGroups[19].available = 1; + gMain.spriteGroups[20].available = 1; + gMain.spriteGroups[21].available = 1; + gMain.spriteGroups[25].available = 1; + gMain.spriteGroups[26].available = 1; + gMain.spriteGroups[27].available = 1; + gMain.spriteGroups[28].available = 1; + gMain.spriteGroups[31].available = 1; + gMain.spriteGroups[32].available = 1; + gMain.spriteGroups[29].available = 1; + gMain.spriteGroups[30].available = 1; + + LoadSpriteSets( + gUnknown_086B155C[gMain.selectedField].spriteSets, + gUnknown_086B155C[gMain.selectedField].numSpriteSets, + gMain.spriteGroups + ); +} + +void nullsub_20(void) +{} + +void sub_50F04() +{ + s16 i; + + for (i = 0; i < 27; i++) + { + if (i < 5) + gMain.spriteGroups[i].available = 1; + else + gMain.spriteGroups[i].available = 0; + } + + gMain.unk44[0]->available = 1; + gMain.spriteGroups[11].available = 1; + gMain.spriteGroups[12].available = 1; + gMain.spriteGroups[13].available = 1; + gMain.spriteGroups[14].available = 1; + gMain.spriteGroups[21].available = 1; + gMain.spriteGroups[22].available = 1; + gMain.spriteGroups[23].available = 1; + gMain.spriteGroups[15].available = 1; + + LoadSpriteSets(gUnknown_086B155C[gMain.selectedField].spriteSets, + gUnknown_086B155C[gMain.selectedField].numSpriteSets, + gMain.spriteGroups); +} + void sub_50FAC(void) { LoadSpriteSets(gUnknown_086B155C[gMain.selectedField].spriteSets,