including ommitted files

This commit is contained in:
theo 2020-05-18 16:22:11 -07:00
parent 1e34d9fcc6
commit cfc757cd58
14 changed files with 310609 additions and 0 deletions

11
asm/GetProgressFlag.s Normal file
View File

@ -0,0 +1,11 @@
.include "asm/macros.inc"
.text
.syntax unified
thumb_func_start GetProgressFlag
GetProgressFlag: @ 0x0807CC30
push {lr}
adds r1, r0, #0
movs r0, #0
bl GetProgressFlagWithOffset
pop {pc}

174
asm/InitializeLink.s Normal file
View File

@ -0,0 +1,174 @@
.include "asm/macros.inc"
.text
.syntax unified
thumb_func_start InitializeLink
InitializeLink: @ 0x080524A8
push {r4, r5, r6, lr}
bl sub_080784C8
ldr r0, _08052510 @ =gUnk_03000B80
movs r1, #0x70
bl sub_0801D630
ldr r6, _08052514 @ =gUnk_03003F80
adds r0, r6, #0
movs r1, #0xb0
bl sub_0801D630
movs r0, #1
rsbs r0, r0, #0
adds r1, r6, #0
adds r1, #0x40
movs r2, #0x40
bl sub_0801D610
ldr r4, _08052518 @ =gLinkEntity
adds r0, r4, #0
movs r1, #0x88
bl sub_0801D630
ldr r0, _0805251C @ =gUnk_03000BF0
str r4, [r0, #0x30]
ldr r1, _08052520 @ =gUnk_080FCAC8
ldr r5, _08052524 @ =gUnk_030010A0
ldrb r0, [r5, #0xf]
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r6, #0xc]
movs r0, #0x14
bl GetProgressFlag
cmp r0, #0
bne _080524FA
ldr r0, [r6, #0x30]
movs r1, #8
orrs r0, r1
str r0, [r6, #0x30]
_080524FA:
ldrb r0, [r5, #0xf]
subs r0, #2
adds r2, r5, #0
cmp r0, #0xa
bhi _080525C2
lsls r0, r0, #2
ldr r1, _08052528 @ =_0805252C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08052510: .4byte gUnk_03000B80
_08052514: .4byte gUnk_03003F80
_08052518: .4byte gLinkEntity
_0805251C: .4byte gUnk_03000BF0
_08052520: .4byte gUnk_080FCAC8
_08052524: .4byte gUnk_030010A0
_08052528: .4byte _0805252C
_0805252C: @ jump table
.4byte _08052558 @ case 0
.4byte _08052576 @ case 1
.4byte _08052564 @ case 2
.4byte _080525C2 @ case 3
.4byte _08052558 @ case 4
.4byte _08052584 @ case 5
.4byte _08052584 @ case 6
.4byte _080525C2 @ case 7
.4byte _080525A0 @ case 8
.4byte _080525AC @ case 9
.4byte _080525B8 @ case 10
_08052558:
ldr r0, _08052560 @ =0x0000FF40
strh r0, [r4, #0x36]
b _080525C0
.align 2, 0
_08052560: .4byte 0x0000FF40
_08052564:
ldr r0, _0805257C @ =gUnk_03003F80
adds r0, #0x38
movs r1, #0x10
strb r1, [r0]
ldr r1, _08052580 @ =gUnk_030010A0
ldrb r0, [r1, #0xe]
lsls r0, r0, #2
strb r0, [r4, #0x15]
adds r2, r1, #0
_08052576:
movs r0, #0xe0
strh r0, [r4, #0x24]
b _080525C2
.align 2, 0
_0805257C: .4byte gUnk_03003F80
_08052580: .4byte gUnk_030010A0
_08052584:
ldr r1, _08052598 @ =gUnk_03003F80
adds r2, r1, #0
adds r2, #0x38
movs r0, #1
strb r0, [r2]
ldr r2, _0805259C @ =gUnk_030010A0
ldrb r0, [r2, #0xf]
adds r1, #0x39
strb r0, [r1]
b _080525C2
.align 2, 0
_08052598: .4byte gUnk_03003F80
_0805259C: .4byte gUnk_030010A0
_080525A0:
ldr r0, _080525A8 @ =gUnk_03003F80
adds r0, #0x38
movs r1, #1
b _080525BE
.align 2, 0
_080525A8: .4byte gUnk_03003F80
_080525AC:
ldr r0, _080525B4 @ =gUnk_03003F80
adds r0, #0x38
movs r1, #3
b _080525BE
.align 2, 0
_080525B4: .4byte gUnk_03003F80
_080525B8:
ldr r0, _08052614 @ =gUnk_03003F80
adds r0, #0x38
movs r1, #4
_080525BE:
strb r1, [r0]
_080525C0:
ldr r2, _08052618 @ =gUnk_030010A0
_080525C2:
movs r0, #1
strb r0, [r4, #8]
ldrb r1, [r4, #0x10]
movs r0, #0xa0
orrs r0, r1
strb r0, [r4, #0x10]
adds r3, r4, #0
adds r3, #0x29
ldrb r1, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r3]
ldr r0, _0805261C @ =gUnk_02002A40
adds r0, #0xaa
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x45
strb r0, [r1]
ldrh r0, [r2, #0x10]
strh r0, [r4, #0x2e]
ldrh r0, [r2, #0x12]
strh r0, [r4, #0x32]
ldrb r0, [r2, #0xe]
strb r0, [r4, #0x14]
ldrb r1, [r2, #0x14]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
movs r1, #1
bl sub_0805EA2C
bl sub_08017640
pop {r4, r5, r6, pc}
.align 2, 0
_08052614: .4byte gUnk_03003F80
_08052618: .4byte gUnk_030010A0
_0805261C: .4byte gUnk_02002A40

97263
asm/code_0801D6E0.s Normal file

File diff suppressed because it is too large Load Diff

17390
asm/code_0804B058.s Normal file

File diff suppressed because it is too large Load Diff

7304
asm/code_08052620.s Normal file

File diff suppressed because it is too large Load Diff

81741
asm/code_08055FF4.s Normal file

File diff suppressed because it is too large Load Diff

79890
asm/code_0807CC3C.s Normal file

File diff suppressed because it is too large Load Diff

26506
asm/code_080A29BC.s Normal file

File diff suppressed because it is too large Load Diff

13
asm/createFx.s Normal file
View File

@ -0,0 +1,13 @@
.include "asm/macros.inc"
.text
.syntax unified
thumb_func_start CreateFX
CreateFX: @ 0x080A29AC
push {r4, lr}
adds r4, r1, #0
adds r3, r2, #0
movs r1, #0xf
adds r2, r4, #0
bl sub_080A2988
pop {r4, pc}

170
asm/mainLoop.s Normal file
View File

@ -0,0 +1,170 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start MainLoop
MainLoop: @ 0x08055E6C
push {r4, r5, r6, lr}
bl sub_08055F70
bl sub_080A3204
bl sub_0805616C
bl sub_0807CE90
bl sub_080560B8
bl sub_08056208
ldr r1, _08055EEC @ =gUnk_02000010
movs r0, #0xc1
strb r0, [r1, #4]
bl sub_0804FFE4
ldr r1, _08055EF0 @ =0x040000D4
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r1]
ldr r0, _08055EF4 @ =gUnk_020176A0
str r0, [r1, #4]
ldr r0, _08055EF8 @ =0x84000080
str r0, [r1, #8]
ldr r0, [r1, #8]
movs r0, #1
bl sub_0804FF84
bl sub_08056418
bl sub_080ADD30
ldr r1, _08055EFC @ =gUnk_03001150
ldr r0, _08055F00 @ =0x01234567
str r0, [r1]
ldr r4, _08055F04 @ =gUnk_03001000
adds r0, r4, #0
movs r1, #0x10
bl sub_0801D630
movs r0, #0
bl sub_08056010
adds r6, r4, #0
_08055EC8:
bl ReadKeyInput
bl sub_08055FF4
cmp r0, #0
beq _08055ED8
bl sub_080560A8
_08055ED8:
ldrb r0, [r6, #1]
ldr r1, _08055F04 @ =gUnk_03001000
cmp r0, #0
beq _08055F08
cmp r0, #1
bne _08055F08
bl sub_08056260
b _08055F64
.align 2, 0
_08055EEC: .4byte gUnk_02000010
_08055EF0: .4byte 0x040000D4
_08055EF4: .4byte gUnk_020176A0
_08055EF8: .4byte 0x84000080
_08055EFC: .4byte gUnk_03001150
_08055F00: .4byte 0x01234567
_08055F04: .4byte gUnk_03001000
_08055F08:
ldrb r0, [r1, #8]
cmp r0, #0
beq _08055F22
ldr r4, _08055F34 @ =gUnk_03001000
movs r5, #0xff
_08055F12:
bl VBlankIntrWait
ldrb r0, [r4, #8]
subs r0, #1
strb r0, [r4, #8]
ands r0, r5
cmp r0, #0
bne _08055F12
_08055F22:
ldr r1, _08055F34 @ =gUnk_03001000
ldrb r0, [r1, #9]
cmp r0, #0
beq _08055F44
subs r0, #1
strb r0, [r1, #9]
ldrb r4, [r1, #0xa]
b _08055F3C
.align 2, 0
_08055F34: .4byte gUnk_03001000
_08055F38:
bl VBlankIntrWait
_08055F3C:
adds r0, r4, #0
subs r4, #1
cmp r0, #0
bgt _08055F38
_08055F44:
ldrh r0, [r6, #0xc]
adds r0, #1
strh r0, [r6, #0xc]
ldr r1, _08055F6C @ =gUnk_08100CBC
ldrb r0, [r6, #2]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
bl sub_08056458
bl sub_08050154
bl sub_080A3480
_08055F64:
bl sub_08016E78
b _08055EC8
.align 2, 0
_08055F6C: .4byte gUnk_08100CBC
thumb_func_start sub_08055F70
sub_08055F70: @ 0x08055F70
push {lr}
bl sub_08056020
movs r0, #0xfe
bl RegisterRamReset
movs r1, #0xa0
lsls r1, r1, #0x13
ldr r2, _08055FC8 @ =0x00007FFF
adds r0, r2, #0
strh r0, [r1]
ldr r1, _08055FCC @ =0x04000204
ldr r2, _08055FD0 @ =0x00004014
adds r0, r2, #0
strh r0, [r1]
ldr r2, _08055FD4 @ =0x0003FFD0
ldr r0, _08055FD8 @ =gUnk_02000030
adds r1, r2, #0
bl sub_0801D630
ldr r0, _08055FDC @ =gUnk_080B2CD8
ldr r3, _08055FE0 @ =sub_080B197C
subs r2, r0, r3
cmp r2, #0
beq _08055FAA
ldr r1, _08055FE4 @ =gUnk_030056F0
adds r0, r3, #0
bl sub_0801D66C
_08055FAA:
ldr r0, _08055FE8 @ =gUnk_080B2CD8
ldr r3, _08055FEC @ =gUnk_080B2CD8
subs r2, r0, r3
cmp r2, #0
beq _08055FBC
ldr r1, _08055FF0 @ =gUnk_02038560
adds r0, r3, #0
bl sub_0801D66C
_08055FBC:
movs r0, #0
bl sub_0801DA90
bl sub_08016B34
pop {pc}
.align 2, 0
_08055FC8: .4byte 0x00007FFF
_08055FCC: .4byte 0x04000204
_08055FD0: .4byte 0x00004014
_08055FD4: .4byte 0x0003FFD0
_08055FD8: .4byte gUnk_02000030
_08055FDC: .4byte gUnk_080B2CD8
_08055FE0: .4byte sub_080B197C
_08055FE4: .4byte gUnk_030056F0
_08055FE8: .4byte gUnk_080B2CD8
_08055FEC: .4byte gUnk_080B2CD8
_08055FF0: .4byte gUnk_02038560

21
asm/readKeyInput.s Normal file
View File

@ -0,0 +1,21 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start ReadKeyInput
ReadKeyInput: @ 0x0801D6C0
push {lr}
ldr r0, _0801D6D4 @ =0x04000130
ldrh r0, [r0]
ldr r1, _0801D6D8 @ =0x000003FF
bics r1, r0
ldr r0, _0801D6DC @ =gUnk_03000FF0
bl sub_0801D6E0
pop {pc}
.align 2, 0
_0801D6D4: .4byte 0x04000130
_0801D6D8: .4byte 0x000003FF
_0801D6DC: .4byte gUnk_03000FF0

View File

@ -0,0 +1 @@
void LoadRoom(void);

93
include/entity.h Normal file
View File

@ -0,0 +1,93 @@
struct Entity {
void *field_0x0;
struct Entity * field_0x4;
u8 type;
u8 subtype;
u8 parameter1;
u8 parameter2;
u8 action;
u8 previousActionFlag;
u8 parameter3;
u8 field_0xf;
u8 flags;
u8 scriptedScene;
s16 spriteTileSize;
u8 animationState;
u8 direction;
u8 possibleBool;
u8 field_0x17;
u8 shadowSize;
u8 spriteOrder;
u8 palette;
u8 spriteOrientation[3];
u16 spritePointer;
uint field_0x20;
s16 nonPlanarMovement;
u8 spriteAnimation[3];
u8 ticks;
u16 collisions;
s16 xPosSubPixel;
s16 xPos;
s16 yPosSubPixel;
s16 yPos;
u8 field_0x34;
u8 field_0x35;
s16 height;
u8 collisionLayer;
u8 field_0x39;
u8 field_0x3a;
u8 flags2;
u8 field_0x3c;
u8 field_0x3d;
u8 field_0x3e;
u8 damageType;
u8 field_0x40;
u8 bitfield;
u8 field_0x42;
u8 field_0x43;
u8 field_0x44;
u8 currentHealth;
s16 field_0x46;
void * boundingBox;
u8 field_0x4c;
u8 field_0x4d;
u8 field_0x4e;
u8 field_0x4f;
void * spritePtr;
struct Entity * attachedEntity;
u8 field_0x58;
u8 field_0x59;
u8 frames;
u8 spriteOrientation2;
u8 field_0x5c;
u8 field_0x5d;
u8 field_0x5e;
u8 field_0x5f;
u16 spriteVramOffset;
u8 spriteRenderPositionOffset;
u8 field_0x63;
u8 * field_0x64;
struct Entity * otherEntity;
u8 field_0x6c;
u8 field_0x6d;
u8 field_0x6e;
u8 field_0x6f;
u8 field_0x70;
u8 field_0x71;
u8 field_0x72;
u8 field_0x73;
struct Entity * heldObjectPtr;
u8 field_0x78;
u8 field_0x79;
u8 field_0x7a;
u8 field_0x7b;
u8 field_0x7c;
u8 field_0x7d;
u8 field_0x7e;
u8 field_0x7f;
u8 field_0x80;
u8 field_0x81;
u8 field_0x82;
u8 field_0x83;
int * field_0x84;
};

32
src/loadRoom.c Normal file
View File

@ -0,0 +1,32 @@
#include "global.h"
/* called when loading any room */
extern void sub_0804ADDC();
extern s32 GetProgressFlag(u32 flag);
extern s32* sub_0804B128(u8 unk);
extern void sub_0804B058(s32 *unk);
extern void sub_0804B1AC();
extern void sub_0801AC98();
void LoadRoom(void)
{
s32 iVar1;
s32 *dat;
sub_0804B128(1);
sub_0804ADDC();
sub_0804B128(0);
sub_0804ADDC();
iVar1 = GetProgressFlag(21);
if (iVar1 != 0) {
dat = sub_0804B128(2);
sub_0804B058(dat);
}
sub_0804B128(3);
sub_0804B1AC();
sub_0801AC98();
return;
}