From 46d14fdc0ccfbd832a0d154407b64c7a85ad15be Mon Sep 17 00:00:00 2001 From: theo3 Date: Sun, 31 Oct 2021 22:59:41 -0700 Subject: [PATCH] asm notes --- asm/chestSpawner.s | 2 +- asm/code_080011C4.s | 13 +-- asm/code_08016B30.s | 4 +- asm/code_0801D79C.s | 4 +- asm/code_080A5574.s | 2 +- asm/crt0.s | 2 +- asm/intr.s | 163 +++++++++++++++++++--------------- asm/macros.inc | 2 + asm/macros/ram.inc | 20 +++++ asm/object74.s | 2 +- asmdiff.sh | 4 +- constants/audio_constants.inc | 2 +- data/sounds.s | 8 +- include/audio.h | 2 +- include/room.h | 4 +- linker.ld | 6 +- src/arm_proxy.c | 4 +- src/audio.c | 4 +- src/code_0805EC04.c | 3 +- src/manager/manager3.c | 14 +-- src/object/jarPortal.c | 6 +- 21 files changed, 161 insertions(+), 110 deletions(-) create mode 100644 asm/macros/ram.inc diff --git a/asm/chestSpawner.s b/asm/chestSpawner.s index 701e03dd..bc6f7bc2 100644 --- a/asm/chestSpawner.s +++ b/asm/chestSpawner.s @@ -126,7 +126,7 @@ sub_08083F14: @ 0x08083F14 movs r2, #0x32 ldrsh r1, [r4, r2] movs r2, #2 - bl sub_080577AC + bl CreateMagicSparkles ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s index dece593a..b3ef8bab 100644 --- a/asm/code_080011C4.s +++ b/asm/code_080011C4.s @@ -1264,14 +1264,17 @@ _0800268C: .byte 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00 _0800269C: .4byte gUnk_0800232E _080026A0: .4byte gUnk_08002342 + gUnk_080026A4:: - .4byte gUnk_020000B0 - .4byte gUnk_03003D68 - .4byte gUnk_03003DB0 - .4byte gUnk_03005FBC +@ normal entities + .4byte gUnk_020000B0 @ enemy target? (player) + .4byte gUnk_03003D68 @ first linked list + .4byte gUnk_03003DB0 @ last linked list + .4byte gUnk_03005FBC @ entity table +@ managers .4byte gUnk_020000B0 .4byte gUnk_03003DA8 - .4byte gHitboxCount + .4byte gCollidableCount .4byte gUnk_03005FBC thumb_func_start sub_080026C4 diff --git a/asm/code_08016B30.s b/asm/code_08016B30.s index 059e1c4c..6726c90a 100644 --- a/asm/code_08016B30.s +++ b/asm/code_08016B30.s @@ -13,7 +13,7 @@ sub_08016B30: @ 0x08016B30 thumb_func_start sub_08016B34 sub_08016B34: @ 0x08016B34 ldr r1, _08016B54 @ =0x03007FFC - ldr r0, _08016B58 @ =IntrMain + ldr r0, _08016B58 @ =gIntrMain str r0, [r1] ldr r1, _08016B5C @ =0x04000004 ldr r2, _08016B60 @ =0x00005028 @@ -29,7 +29,7 @@ sub_08016B34: @ 0x08016B34 bx lr .align 2, 0 _08016B54: .4byte 0x03007FFC -_08016B58: .4byte IntrMain +_08016B58: .4byte gIntrMain _08016B5C: .4byte 0x04000004 _08016B60: .4byte 0x00005028 _08016B64: .4byte 0x04000200 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index caed4ae5..2f3defb3 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -660,8 +660,8 @@ _0801DD7C: .4byte gAreaRoomHeaders _0801DD80: .4byte gArea _0801DD84: .4byte 0x0000085C - thumb_func_start sub_0801DD88 -sub_0801DD88: @ 0x0801DD88 + thumb_func_start LoadDungeonMap +LoadDungeonMap: @ 0x0801DD88 push {lr} ldr r0, _0801DD98 @ =gUnk_0201AEE0 ldr r1, _0801DD9C @ =0x06006000 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index e7582e86..02f47ac8 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -1230,7 +1230,7 @@ sub_080A5CFC: @ 0x080A5CFC push {r4, lr} adds r4, r0, #0 bl sub_0801DDA0 - bl sub_0801DD88 + bl LoadDungeonMap ldr r1, _080A5D18 @ =gUnk_02019EE0 movs r2, #0x80 lsls r2, r2, #3 diff --git a/asm/crt0.s b/asm/crt0.s index d72915b1..84a9e59d 100644 --- a/asm/crt0.s +++ b/asm/crt0.s @@ -33,7 +33,7 @@ _080000F0: sp_irq: .4byte gUnk_03007FA0 sp_usr: .4byte gUnk_03007F00 INTR_VECTOR_BUF: .4byte 0x03007FFC -intr_main: .4byte IntrMain +intr_main: .4byte gIntrMain .ifdef EU unk_function: .4byte sub_08000118 .endif diff --git a/asm/intr.s b/asm/intr.s index ed83cba1..06ea086d 100644 --- a/asm/intr.s +++ b/asm/intr.s @@ -6,6 +6,10 @@ .text .code 16 + +.global RAMFUNCS_BASE +RAMFUNCS_BASE:: + sub_080B197C:: @ 0x080B197C push {r4, r5, r6} ldr r2, _080B19C0 @ =gRoomControls @@ -250,13 +254,14 @@ _080B1C48: .4byte gUnk_080B7A3E _080B1C4C: .4byte gRoomControls _080B1C50: .4byte gUnk_08000278 - arm_func_start sub_080B1C54 -sub_080B1C54: @ 0x080B1C54 + arm_func_start UpdateCollision +UpdateCollision: @ 0x080B1C54 + @ r0 : Entity* this ldrb r1, [r0, #0x10] - ands r1, r1, #0x80 + ands r1, r1, #0x80 @ disable collision flag bxeq lr - ldr r2, _080B200C @ =gUnk_03000E10 - ldr r3, _080B2010 @ =gHitboxCount + ldr r2, _080B200C @ =gCollidableList + ldr r3, _080B2010 @ =gCollidableCount ldrb r1, [r3] str r0, [r2, r1, lsl #2] add r1, r1, #1 @@ -340,8 +345,8 @@ _080B1D84: pop {r4, r5, r6, r7, r8, sb, sl, lr} bx lr _080B1D8C: .4byte gUnk_02018EA0 -_080B1D90: .4byte gUnk_03000E10 -_080B1D94: .4byte gHitboxCount +_080B1D90: .4byte gCollidableList +_080B1D94: .4byte gCollidableCount arm_func_start sub_080B1D98 sub_080B1D98: @ 0x080B1D98 @@ -525,33 +530,33 @@ _080B1FFC: .4byte gUnk_03005D5C _080B2000: .4byte gUnk_03005D24 _080B2004: .4byte gUnk_03005D18 _080B2008: .4byte gUnk_03005D58 -_080B200C: .4byte gUnk_03000E10 -_080B2010: .4byte gHitboxCount +_080B200C: .4byte gCollidableList +_080B2010: .4byte gCollidableCount _080B2014: .4byte gUnk_080B7B74 _080B2018: .4byte gUnk_080B3744 - arm_func_start sub_080B201C -sub_080B201C: @ 0x080B201C + arm_func_start IntrMain +IntrMain: mov r3, #0x4000000 add r3, r3, #0x200 - ldr r2, [r3] - ldrh r1, [r3, #8] + ldr r2, [r3] @ lo 16: interrupt_enable, hi 16: interrupt_request + ldrh r1, [r3, #8] @ interrupt master enable mrs r0, spsr push {r0, r1, r2, r3, lr} and r1, r2, r2, lsr #16 - ands r0, r1, #0x2000 + ands r0, r1, #0x2000 @ external irq bne _080B20D4 mov ip, #4 - ands r0, r1, #0x80 + ands r0, r1, #0x80 @ serial comm bne _080B2074 mov ip, #0xc - ands r0, r1, #4 + ands r0, r1, #4 @ vcount bne _080B2074 mov ip, #0x10 - ands r0, r1, #1 + ands r0, r1, #1 @ vblank bne _080B2074 mov ip, #0x14 - ands r0, r1, #0x40 + ands r0, r1, #0x40 @ timer 3 overflow bne _080B2074 mov ip, #0 _080B2074: @@ -610,8 +615,8 @@ _080B20FC: mov r0, #1 bx lr - arm_func_start sub_080B2124 -sub_080B2124: @ 0x080B2124 + arm_func_start MakeFadeBuff256 +MakeFadeBuff256: @ 0x080B2124 push {r4, r5, r6, r7, r8, sb, sl, fp} mul r3, r2, r3 mov r4, #0x400 @@ -652,50 +657,60 @@ _080B21AC: .4byte gUnk_08000F54 arm_func_start UpdateEntities UpdateEntities: @ 0x080B21B0 - ldr fp, _080B2270 @ =gUnk_03003DD0 - ldr r1, [fp] - ldm r1, {r7, r8, sb, sl} - ldr sp, [fp, #0xc] - ldr r8, [fp, #4] - ldr r0, [fp, #8] + ldr r11, _080B2270 @ =gUnk_03003DD0 + ldr r1, [r11] + ldm r1, {r7, r8, r9, r10} + ldr sp, [r11, #0xc] + ldr r8, [r11, #4] + ldr r0, [r11, #8] add pc, pc, #0x60 @ =_080B2230 + +@ gUnk_03003DD0 { +@ void* chosen_table; +@ void* linked_list_top; +@ void* curr_entity; +@ void* restore_sp; +@ } + @ UpdateEntities starts here + @ arg0 (r0) : 0 = entities, 1 = managers ldr r1, _080B2274 @ =gUnk_080026A4 add r1, r1, r0, lsl #4 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr fp, _080B2278 @ =gUnk_03003DD0 - str r1, [fp] - str sp, [fp, #0xc] - ldm r1, {r7, r8, sb, sl} -_080B21E8: + push {r4 - r11, lr} + ldr r11, _080B2278 @ =gUnk_03003DD0 + str r1, [r11, #0x0] + str sp, [r11, #0xc] + ldm r1, {r7, r8, r9, r10} +next_list: @ traverse entity linked list add r8, r8, #8 - str r8, [fp, #4] - cmp r8, sb - bhs _080B2238 - ldr r4, [r8, #4] -_080B21FC: + str r8, [r11, #4] + cmp r8, r9 + bhs lists_complete + ldr r4, [r8, #4] @ entity -> next +next_entity: cmp r4, r8 - beq _080B21E8 + beq next_list mov r0, #0 str r0, [r7] - str r4, [fp, #8] - ldrb r1, [r4, #8] - ldr r1, [sl, r1, lsl #2] + str r4, [r11, #8] + ldrb r1, [r4, #8] @ entity -> kind + ldr r1, [r10, r1, lsl #2] mov r0, r4 mov lr, pc - bx r1 @ Jump to address stored in r1 -_080B2224: - ldr r0, [fp, #8] - cmp r0, r4 - bleq sub_080B1C54 + bx r1 @ call entity kind update function + ldr r0, [r11, #8] + cmp r0, r4 @ update collision if entity is still alive + bleq UpdateCollision _080B2230: @ jumped here if ClearAndUpdateEntities ldr r4, [r0, #4] - b _080B21FC -_080B2238: + b next_entity +lists_complete: mov r0, #0 - str r0, [fp, #8] - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} + str r0, [r11, #8] + pop {r4 - r11, lr} bx lr + +_080B2248:: _080B2248: .4byte DeleteThisEntity @ 0x3005fbc _080B224C: .4byte PlayerUpdate _080B2250: .4byte DeleteThisEntity @@ -706,6 +721,7 @@ _080B2260: .4byte ObjectUpdate _080B2264: .4byte NPCUpdate _080B2268: .4byte ItemUpdate _080B226C: .4byte ManagerUpdate + _080B2270: .4byte gUnk_03003DD0 _080B2274: .4byte gUnk_080026A4 _080B2278: .4byte gUnk_03003DD0 @@ -860,7 +876,7 @@ sub_080B19C8: @ 0x080B19C8 mov r2, #0 strb r2, [r1] stmdb sp!, {lr} - bl sub_080B2478 + bl ResolveOamDrawPriority bl sub_080B2534 ldm sp!, {lr} b _080B1C40EU @@ -899,14 +915,17 @@ sub_080B2448: @ 0x080B2448 mov r2, #0 strb r2, [r1] stmdb sp!, {lr} - bl sub_080B2478 + bl ResolveOamDrawPriority bl sub_080B2534 ldm sp!, {lr} b _080B26B4 .endif - arm_func_start sub_080B2478 -sub_080B2478: @ 0x080B2478 + arm_func_start ResolveOamDrawPriority +ResolveOamDrawPriority: @ 0x080B2478 + prio_a .req r8 + prio_b .req r5 + mov sb, r0 mov r1, r0 ldrb r2, [r1], #4 @@ -914,7 +933,7 @@ sub_080B2478: @ 0x080B2478 sub sl, r2, #1 add r2, r1, sl, lsl #2 cmp sl, #0 - beq _080B252C + beq no_objs _080B2498: lsl r3, sl, #2 mov r6, #0 @@ -926,40 +945,44 @@ _080B24A0: _080B24B0: cmp r1, ip blo _080B251C +# sprite A ldr r4, [r1] +# pos ldr r8, [r4, #0x30] - add r8, r8, #-0x80000000 - lsr r8, r8, #3 + add r8, #0x80000000 + lsr r8, #3 +# load priority bits, NOT so 0 = highest priority ldrb r0, [r4, #0x29] mvn r0, r0 - orr r8, r8, r0, lsl #29 + orr prio_a, r8, r0, lsl #29 add r7, r1, r3 -_080B24D8: +next_sprite: cmp r2, r7 - blo _080B2510 + blo a_priority +# sprite B ldr r5, [r7] ldr r0, [r5, #0x30] - add r0, r0, #-0x80000000 - lsr r0, r0, #3 + add r0, #0x80000000 + lsr r0, #3 ldrb r5, [r5, #0x29] mvn r5, r5 - orr r5, r0, r5, lsl #29 - cmp r8, r5 - bhs _080B2510 + orr prio_b, r0, r5, lsl #29 + cmp prio_a, prio_b + bhs a_priority ldr r5, [r7], -r3 str r5, [r7], r3, lsl #1 - b _080B24D8 -_080B2510: + b next_sprite +a_priority: str r4, [r7, -r3]! sub r1, r1, r3 b _080B24B0 _080B251C: - add r6, r6, #1 + add r6, #1 b _080B24A0 _080B2524: - lsrs sl, sl, #1 + lsrs sl, #1 bne _080B2498 -_080B252C: +no_objs: mov r0, sb bx lr diff --git a/asm/macros.inc b/asm/macros.inc index 031b4cd1..ca814ebe 100644 --- a/asm/macros.inc +++ b/asm/macros.inc @@ -1,5 +1,7 @@ .include "asm/macros/asm.inc" .include "asm/macros/function.inc" + .include "asm/macros/ram.inc" .include "asm/macros/m4a.inc" .include "asm/macros/map.inc" .include "asm/macros/entity.inc" + diff --git a/asm/macros/ram.inc b/asm/macros/ram.inc new file mode 100644 index 00000000..d12c84e2 --- /dev/null +++ b/asm/macros/ram.inc @@ -0,0 +1,20 @@ + .ifndef GUARD_ASM_MACROS_RAM_INC + .set GUARD_ASM_MACROS_RAM_INC, 1 + +.ifdef EU + .set RAM_DIFF, 0x050AC28C - 0xaa0 +.endif + +.ifdef USA + .set RAM_DIFF, 0x050AC28C +.endif + +.ifdef JP + .set RAM_DIFF, 0x050AC28C - 0x260 +.endif + + .macro ram_addr x + .4byte \x - RAM_DIFF + .endm + + .endif @ GUARD_ASM_MACROS_RAM_INC diff --git a/asm/object74.s b/asm/object74.s index 9290d093..cc2ea1f6 100644 --- a/asm/object74.s +++ b/asm/object74.s @@ -118,7 +118,7 @@ sub_08097C20: @ 0x08097C20 adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] - bl sub_080577AC + bl CreateMagicSparkles ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] diff --git a/asmdiff.sh b/asmdiff.sh index bf6a907a..46f9e2ee 100755 --- a/asmdiff.sh +++ b/asmdiff.sh @@ -1,7 +1,7 @@ #!/bin/bash -buildname=tmc -baserom=baserom +buildname=$3 +baserom=$4 OBJDUMP="$DEVKITARM/bin/arm-none-eabi-objdump -D -bbinary -marmv4t -Mforce-thumb" OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))" diff --git a/constants/audio_constants.inc b/constants/audio_constants.inc index b7cb230c..07cb901e 100644 --- a/constants/audio_constants.inc +++ b/constants/audio_constants.inc @@ -336,7 +336,7 @@ .equiv SFX_14F, 0x14f .equiv SFX_150, 0x150 .equiv SFX_151, 0x151 - .equiv SFX_152, 0x152 + .equiv SFX_NEAR_PORTAL, 0x152 .equiv SFX_153, 0x153 .equiv SFX_154, 0x154 .equiv SFX_155, 0x155 diff --git a/data/sounds.s b/data/sounds.s index 670a54b2..28bf9d4b 100644 --- a/data/sounds.s +++ b/data/sounds.s @@ -8591,12 +8591,12 @@ sfx151_track0:: @ 08DE3684 sfx151:: @ 08DE36B0 sound_header 1 0 0x60 0 gUnk_08A10DC0 sfx151_track0 -sfx152_track0:: @ 08DE36BC +sfxNearPortal_track0:: @ 08DE36BC .incbin "baserom.gba", 0xDE36BC, 0x0000086 -sfx152_track1:: @ 08DE3742 +sfxNearPortal_track1:: @ 08DE3742 .incbin "baserom.gba", 0xDE3742, 0x000008A -sfx152:: @ 08DE37CC - sound_header 2 0 0x40 0 gUnk_08A10DD8 sfx152_track0 sfx152_track1 +sfxNearPortal:: @ 08DE37CC + sound_header 2 0 0x40 0 gUnk_08A10DD8 sfxNearPortal_track0 sfxNearPortal_track1 sfx153_track0:: @ 08DE37DC .incbin "baserom.gba", 0xDE37DC, 0x0000030 diff --git a/include/audio.h b/include/audio.h index 4f8ecb84..99ccf298 100644 --- a/include/audio.h +++ b/include/audio.h @@ -346,7 +346,7 @@ typedef enum { SFX_14F, SFX_150, SFX_151, - SFX_152, + SFX_NEAR_PORTAL, SFX_153, SFX_154, SFX_155, diff --git a/include/room.h b/include/room.h index f34f7297..b030d8e0 100644 --- a/include/room.h +++ b/include/room.h @@ -24,7 +24,9 @@ typedef struct { /*0x0E*/ u8 unk5; /*0x0F*/ u8 unk6; /*0x10*/ u8 unk_10; - /*0x11*/ u8 filler[3]; + /*0x11*/ s8 oam_offset_x; + /*0x12*/ s8 oam_offset_y; + /*0x13*/ u8 unk13; /*0x14*/ u8 screenShakeMagnitude; /*0x15*/ u8 unk7; /*0x16*/ u16 screenShakeTime; diff --git a/linker.ld b/linker.ld index 32157850..fce0ae80 100644 --- a/linker.ld +++ b/linker.ld @@ -181,7 +181,7 @@ SECTIONS { . = 0x00000BF8; gUnk_03000BF8 = .; . = 0x00000C24; gUnk_03000C24 = .; . = 0x00000C30; gUnk_03000C30 = .; - . = 0x00000E10; gUnk_03000E10 = .; + . = 0x00000E10; gCollidableList = .; . = 0x00000F50; gScreen = .; . = 0x00000F58; gBG0Settings = .; . = 0x00000F64; gBG1Settings = .; @@ -212,7 +212,7 @@ SECTIONS { . = 0x00003DA0; gUnk_03003DA0 = .; . = 0x00003DA8; gUnk_03003DA8 = .; . = 0x00003DB0; gUnk_03003DB0 = .; - . = 0x00003DB8; gHitboxCount = .; + . = 0x00003DB8; gCollidableCount = .; . = 0x00003DBC; gEntCount = .; . = 0x00003DC0; gUnk_03003DC0 = .; . = 0x00003DD0; gUnk_03003DD0 = .; @@ -274,7 +274,7 @@ SECTIONS { . = 0x00005D24; gUnk_03005D24 = .; . = 0x00005D58; gUnk_03005D58 = .; . = 0x00005D5C; gUnk_03005D5C = .; - . = 0x00005D90; IntrMain = .; + . = 0x00005D90; gIntrMain = .; . = 0x00005E60; gUnk_03005E60 = .; . = 0x00005E98; gUnk_03005E98 = .; . = 0x00005F24; _ClearAndUpdateEntities = .; diff --git a/src/arm_proxy.c b/src/arm_proxy.c index 982ddb65..d61749d7 100644 --- a/src/arm_proxy.c +++ b/src/arm_proxy.c @@ -22,7 +22,7 @@ extern u8 gUnk_03003DF0[]; extern u8 gUnk_03003BE0; extern Entity* gUnk_03004040[3]; extern u8 gUnk_020342F8; -extern u8 gHitboxCount; +extern u8 gCollidableCount; extern void gDoCollision(void); extern void sub_080ADD70(); @@ -371,7 +371,7 @@ NONMATCH("asm/non_matching/arm_proxy/NPCUpdate.inc", void NPCUpdate(Entity* this END_NONMATCH void ClearHitboxList(void) { - gHitboxCount = 0; + gCollidableCount = 0; } void CollisionMain(void) { diff --git a/src/audio.c b/src/audio.c index 32cd2f11..2c417705 100644 --- a/src/audio.c +++ b/src/audio.c @@ -533,7 +533,7 @@ extern const SongHeader sfx14E; extern const SongHeader sfx14F; extern const SongHeader sfx150; extern const SongHeader sfx151; -extern const SongHeader sfx152; +extern const SongHeader sfxNearPortal; extern const SongHeader sfx153; extern const SongHeader sfx154; extern const SongHeader sfx155; @@ -1165,7 +1165,7 @@ const Song gSongTable[] = { [SFX_14F] = { &sfx14F, MUSIC_PLAYER_15, MUSIC_PLAYER_15 }, [SFX_150] = { &sfx150, MUSIC_PLAYER_14, MUSIC_PLAYER_14 }, [SFX_151] = { &sfx151, MUSIC_PLAYER_13, MUSIC_PLAYER_13 }, - [SFX_152] = { &sfx152, MUSIC_PLAYER_18, MUSIC_PLAYER_18 }, + [SFX_NEAR_PORTAL] = { &sfxNearPortal, MUSIC_PLAYER_18, MUSIC_PLAYER_18 }, [SFX_153] = { &sfx153, MUSIC_PLAYER_11, MUSIC_PLAYER_11 }, [SFX_154] = { &sfx154, MUSIC_PLAYER_10, MUSIC_PLAYER_10 }, [SFX_155] = { &sfx155, MUSIC_PLAYER_0F, MUSIC_PLAYER_0F }, diff --git a/src/code_0805EC04.c b/src/code_0805EC04.c index bd38cac5..d49bb996 100644 --- a/src/code_0805EC04.c +++ b/src/code_0805EC04.c @@ -10,7 +10,8 @@ typedef struct { } VStruct; typedef struct { - u8 filler[0x420]; + u8 _0[0x20]; + struct OamData oam[0x80]; VStruct unk[0x100]; } UStruct; diff --git a/src/manager/manager3.c b/src/manager/manager3.c index 272baabc..2a6a4c24 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -28,7 +28,7 @@ typedef struct { extern s8 gUnk_08107C6C[]; extern u32 sub_08057810(void); extern u32 sub_080002C0(u16, u16, u8); -extern void sub_080577AC(u32, u32, u32); +extern void CreateMagicSparkles(u32, u32, u32); void Manager3_Main(Manager3* this) { s8 tmp; @@ -55,11 +55,11 @@ void Manager3_Main(Manager3* this) { } } if (sub_080002C0(this->unk_38, this->unk_3a, this->manager.unk_0e) == 0x3d) { - sub_080577AC(this->unk_38 + gRoomControls.roomOriginX, this->unk_3a + gRoomControls.roomOriginY, - this->manager.unk_0e); + CreateMagicSparkles(this->unk_38 + gRoomControls.roomOriginX, this->unk_3a + gRoomControls.roomOriginY, + this->manager.unk_0e); if (!this->manager.unk_0f) { this->manager.unk_0f = 1; - SoundReq(SFX_152); + SoundReq(SFX_NEAR_PORTAL); } } } @@ -69,15 +69,15 @@ void Manager3_Main(Manager3* this) { } } -void sub_080577AC(u32 baseX, u32 baseY, u32 layer) { +void CreateMagicSparkles(u32 baseX, u32 baseY, u32 layer) { u32 r; int offsetX, offsetY; Entity* spark; r = Random(); - if ((r & 0x7) != 0) + if (r & 0x7) return; spark = CreateObject(SPECIAL_FX, 0x26, 0); - if (!spark) + if (spark == NULL) return; offsetX = (r >> 0x8) & 0xF; offsetY = ((r >> 0x10) & 0xF); diff --git a/src/object/jarPortal.c b/src/object/jarPortal.c index b625bb1b..9d85f282 100644 --- a/src/object/jarPortal.c +++ b/src/object/jarPortal.c @@ -8,7 +8,7 @@ extern void (*gUnk_08121488[])(Entity*); extern u32 sub_08057810(void); -extern void sub_080577AC(u32, u32, u32); +extern void CreateMagicSparkles(u32, u32, u32); u32 sub_0808C128(Entity*); void sub_0808C13C(Entity*); @@ -118,10 +118,10 @@ void sub_0808C01C(Entity* this, u32 r1) { gArea.field_0x18 = 3; } } - sub_080577AC(this->x.HALF.HI, this->y.HALF.HI, this->collisionLayer); + CreateMagicSparkles(this->x.HALF.HI, this->y.HALF.HI, this->collisionLayer); if (this->field_0xf == 0) { this->field_0xf = 1; - SoundReq(0x152); + SoundReq(SFX_NEAR_PORTAL); } } }