mirror of https://github.com/zeldaret/tmc.git
asm notes
This commit is contained in:
parent
57eec4def4
commit
46d14fdc0c
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
163
asm/intr.s
163
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
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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]
|
||||
|
|
|
@ -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))"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -346,7 +346,7 @@ typedef enum {
|
|||
SFX_14F,
|
||||
SFX_150,
|
||||
SFX_151,
|
||||
SFX_152,
|
||||
SFX_NEAR_PORTAL,
|
||||
SFX_153,
|
||||
SFX_154,
|
||||
SFX_155,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 = .;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 },
|
||||
|
|
|
@ -10,7 +10,8 @@ typedef struct {
|
|||
} VStruct;
|
||||
|
||||
typedef struct {
|
||||
u8 filler[0x420];
|
||||
u8 _0[0x20];
|
||||
struct OamData oam[0x80];
|
||||
VStruct unk[0x100];
|
||||
} UStruct;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue