diff --git a/asm/non_matching/beanstalkSubtask/SetBGDefaults.inc b/asm/non_matching/beanstalkSubtask/SetBGDefaults.inc deleted file mode 100644 index 9168fd3e..00000000 --- a/asm/non_matching/beanstalkSubtask/SetBGDefaults.inc +++ /dev/null @@ -1,19 +0,0 @@ - .syntax unified - ldr r0, _080197C4 @ =gMapBottom - ldr r1, _080197C8 @ =gBGAffSettings - str r1, [r0] - ldr r2, _080197CC @ =gUnk_080B77C0 - ldrh r0, [r2] - strh r0, [r1] - ldr r0, _080197D0 @ =gMapTop - subs r1, #0xc - str r1, [r0] - ldrh r0, [r2, #2] - strh r0, [r1] - bx lr - .align 2, 0 -_080197C4: .4byte gMapBottom -_080197C8: .4byte gScreen + 0x20 -_080197CC: .4byte gUnk_080B77C0 -_080197D0: .4byte gMapTop - .syntax divided diff --git a/asm/non_matching/beanstalkSubtask/sub_080197D4.inc b/asm/non_matching/beanstalkSubtask/sub_080197D4.inc deleted file mode 100644 index cbf77d93..00000000 --- a/asm/non_matching/beanstalkSubtask/sub_080197D4.inc +++ /dev/null @@ -1,54 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0x80 - lsls r5, r5, #0x18 -_080197DC: - ldr r3, [r4, #4] - cmp r3, #0 - beq _08019824 - ldr r1, [r4] - ldr r0, _08019808 @ =0x7FFFFFFF - ands r1, r0 - ldr r0, _0801980C @ =gMapData - adds r1, r1, r0 - ldr r2, [r4, #8] - adds r0, r2, #0 - ands r0, r5 - cmp r0, #0 - beq _0801981A - lsrs r0, r3, #0x18 - cmp r0, #6 - bne _08019810 - adds r0, r1, #0 - adds r1, r3, #0 - bl LZ77UnCompVram - b _0801982E - .align 2, 0 -_08019808: .4byte 0x7FFFFFFF -_0801980C: .4byte gMapData -_08019810: - adds r0, r1, #0 - adds r1, r3, #0 - bl LZ77UnCompWram - b _0801982E -_0801981A: - adds r0, r1, #0 - adds r1, r3, #0 - bl MemCopy - b _0801982E -_08019824: - ldrh r0, [r4] - bl LoadPaletteGroup - bl sub_080533CC -_0801982E: - adds r4, #0xc - adds r0, r4, #0 - subs r0, #0xc - ldr r0, [r0] - ands r0, r5 - cmp r0, #0 - bne _080197DC - pop {r4, r5, pc} - .align 2, 0 - .syntax divided diff --git a/asm/non_matching/beanstalkSubtask/sub_0801A370.inc b/asm/non_matching/beanstalkSubtask/sub_0801A370.inc deleted file mode 100644 index 5bbea38e..00000000 --- a/asm/non_matching/beanstalkSubtask/sub_0801A370.inc +++ /dev/null @@ -1,120 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r4, r1, #0 - ldr r5, _0801A3C8 @ =gPlayerEntity - ldrb r1, [r5, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801A44E - bl sub_0801A4F8 - cmp r0, #0 - beq _0801A44E - movs r0, #2 - bl GetLayerByIndex - adds r7, r0, #0 - ldr r1, _0801A3CC @ =gUnk_080B4488 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r6, [r0, r1] - adds r4, r4, r6 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - bl GetTileType - adds r1, r0, #0 - ldr r0, _0801A3D0 @ =0x0000402B - cmp r1, r0 - beq _0801A3D4 - cmp r1, r0 - blo _0801A3D6 - adds r0, #4 - cmp r1, r0 - bhi _0801A3D6 -_0801A3C4: - movs r0, #1 - b _0801A450 - .align 2, 0 -_0801A3C8: .4byte gPlayerEntity -_0801A3CC: .4byte gUnk_080B4488 -_0801A3D0: .4byte 0x0000402B -_0801A3D4: - adds r4, r4, r6 -_0801A3D6: - adds r0, r7, r4 - ldr r1, _0801A40C @ =0x00001F84 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x46 - beq _0801A44E - ldr r0, _0801A410 @ =gPlayerEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - bl GetTileType - bl sub_080B1B54 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x52 - beq _0801A44E - cmp r0, #0x52 - bgt _0801A414 - cmp r0, #0x26 - blt _0801A418 - cmp r0, #0x27 - ble _0801A44E - cmp r0, #0x29 - beq _0801A44E - b _0801A418 - .align 2, 0 -_0801A40C: .4byte 0x00001F84 -_0801A410: .4byte gPlayerEntity -_0801A414: - cmp r0, #0x74 - beq _0801A44E -_0801A418: - ldr r0, _0801A434 @ =0x00002004 - add r0, r8 - adds r0, r0, r4 - ldrb r0, [r0] - adds r1, r0, #0 - cmp r0, #0xa - beq _0801A446 - cmp r0, #0xa - bgt _0801A438 - cmp r0, #0 - beq _0801A3C4 - cmp r0, #5 - beq _0801A440 - b _0801A44E - .align 2, 0 -_0801A434: .4byte 0x00002004 -_0801A438: - cmp r1, #0x44 - beq _0801A446 - cmp r1, #0x45 - bne _0801A44E -_0801A440: - cmp r6, #1 - bne _0801A44E - b _0801A3C4 -_0801A446: - movs r0, #1 - rsbs r0, r0, #0 - cmp r6, r0 - beq _0801A3C4 -_0801A44E: - movs r0, #0 -_0801A450: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - .syntax divided diff --git a/asm/non_matching/beanstalkSubtask/sub_0801AC68.inc b/asm/non_matching/beanstalkSubtask/sub_0801AC68.inc deleted file mode 100644 index 33879685..00000000 --- a/asm/non_matching/beanstalkSubtask/sub_0801AC68.inc +++ /dev/null @@ -1,29 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0801AC84 @ =gUnk_0200B240 - ldr r0, _0801AC88 @ =gRoomVars - ldrh r3, [r0, #0xe] - movs r0, #0 - cmp r0, r3 - bhs _0801AC94 -_0801AC78: - ldrh r5, [r2] - cmp r4, r5 - bne _0801AC8C - ldrh r0, [r2, #2] - lsls r0, r0, #2 - b _0801AC96 - .align 2, 0 -_0801AC84: .4byte gUnk_0200B240 -_0801AC88: .4byte gRoomVars -_0801AC8C: - adds r2, #4 - adds r0, #1 - cmp r0, r3 - blo _0801AC78 -_0801AC94: - lsls r0, r1, #2 -_0801AC96: - pop {r4, r5, pc} - .syntax divided diff --git a/asm/non_matching/frozenOctorok/FrozenOctorok_Action1SubAction5.inc b/asm/non_matching/frozenOctorok/FrozenOctorok_Action1SubAction5.inc deleted file mode 100644 index b5be2bc9..00000000 --- a/asm/non_matching/frozenOctorok/FrozenOctorok_Action1SubAction5.inc +++ /dev/null @@ -1,122 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _0809CA04 @ =gRoomTransition - ldr r1, [r0] - movs r2, #2 - ands r1, r2 - adds r7, r0, #0 - cmp r1, #0 - beq _0809CA08 - adds r2, r4, #0 - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #8 - b _0809CA16 - .align 2, 0 -_0809CA04: .4byte gRoomTransition -_0809CA08: - adds r2, r4, #0 - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #8 -_0809CA16: - strh r0, [r1] - adds r5, r2, #0 - ldr r0, [r7] - movs r6, #3 - ands r0, r6 - cmp r0, #0 - bne _0809CA30 - adds r0, r4, #0 - movs r1, #0x87 - movs r2, #2 - movs r3, #0 - bl CreateObjectWithParent -_0809CA30: - adds r2, r4, #0 - adds r2, #0x79 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - bne _0809CA92 - ldr r0, [r4, #0x54] - adds r0, #0x62 - strb r1, [r0] - ldr r0, [r4, #0x54] - movs r1, #0x80 - lsls r1, r1, #2 - adds r2, #2 - ldrb r2, [r2] - rsbs r2, r2, #0 - bl LinearMoveAngle - ldr r1, [r4, #0x54] - adds r0, r4, #0 - movs r2, #0x48 - bl sub_0806FC80 - cmp r0, #0 - beq _0809CAC4 - movs r0, #6 - strb r0, [r4, #0xd] - movs r1, #0 - movs r0, #0xc0 - strh r0, [r4, #0x24] - strb r1, [r4, #0xb] - strb r1, [r4, #0xf] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #0xc4 - ands r0, r1 - strb r0, [r2, #0x18] - ldr r0, [r5] - ldr r0, [r0, #8] - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - ldr r1, [r5] - movs r0, #1 - strb r0, [r1] - movs r0, #0xed - bl SoundReq - b _0809CAC4 -_0809CA92: - subs r0, #1 - strb r0, [r2] - ldr r0, [r7] - ands r0, r6 - cmp r0, #1 - beq _0809CAB4 - cmp r0, #1 - blo _0809CAAC - cmp r0, #2 - beq _0809CAAC - cmp r0, #3 - beq _0809CABC - b _0809CAC4 -_0809CAAC: - ldr r0, [r4, #0x54] - adds r0, #0x62 - movs r1, #0 - b _0809CAC2 -_0809CAB4: - ldr r0, [r4, #0x54] - adds r0, #0x62 - movs r1, #0xfc - b _0809CAC2 -_0809CABC: - ldr r0, [r4, #0x54] - adds r0, #0x62 - movs r1, #4 -_0809CAC2: - strb r1, [r0] -_0809CAC4: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - .syntax divided diff --git a/asm/non_matching/objectBD/sub_080A22C4.inc b/asm/non_matching/objectBD/sub_080A22C4.inc deleted file mode 100644 index 20ae077f..00000000 --- a/asm/non_matching/objectBD/sub_080A22C4.inc +++ /dev/null @@ -1,66 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - beq _080A22FC - cmp r5, #1 - beq _080A231C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A233E - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0xd] - adds r0, r1, r0 - strb r0, [r4, #0x1e] - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - cmp r1, r0 - bne _080A233E - b _080A233A -_080A22FC: - adds r0, r4, #0 - bl sub_080A2340 - movs r0, #8 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - ldrb r0, [r4, #0x1e] - strb r0, [r4, #0xd] - bl Random - movs r1, #3 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #0x1e - strh r0, [r4, #0x24] - b _080A233E -_080A231C: - ldrh r0, [r4, #0x24] - subs r0, #1 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A233E - bl Random - movs r1, #7 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #0x1e - strh r0, [r4, #0x24] - movs r0, #2 - b _080A233C -_080A233A: - movs r0, #1 -_080A233C: - strb r0, [r4, #0xc] -_080A233E: - pop {r4, r5, pc} - .syntax divided diff --git a/src/beanstalkSubtask.c b/src/beanstalkSubtask.c index 455738b8..9e29de8e 100644 --- a/src/beanstalkSubtask.c +++ b/src/beanstalkSubtask.c @@ -94,18 +94,14 @@ void sub_080197A0(void) { MenuFadeIn(2, 0xb); } -NONMATCH("asm/non_matching/beanstalkSubtask/SetBGDefaults.inc", void SetBGDefaults(void)) { - u16* ptr; - BgSettings* bg; - +void SetBGDefaults(void) { gMapBottom.bgControlPtr = (u16*)&gScreen.bg2; - gScreen.bg2.control = gUnk_080B77C0[0]; + *gMapBottom.bgControlPtr = gUnk_080B77C0[0]; gMapTop.bgControlPtr = (u16*)&gScreen.bg1; - gScreen.bg1.control = gUnk_080B77C0[1]; + *gMapTop.bgControlPtr = gUnk_080B77C0[1]; } -END_NONMATCH -NONMATCH("asm/non_matching/beanstalkSubtask/sub_080197D4.inc", void sub_080197D4(u32* param_1)) { +void sub_080197D4(u32* param_1) { u32 uVar1; u8* src; void* dest; @@ -127,11 +123,10 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_080197D4.inc", void sub_080197D4 LoadPaletteGroup((u32) * (u16*)param_1); sub_080533CC(); } - uVar1 = *param_1; param_1 += 3; + uVar1 = *(param_1 - 3); } while ((uVar1 & 0x80000000) != 0); } -END_NONMATCH // Has ifdefs for other variants ASM_FUNC("asm/non_matching/beanstalkSubtask/UpdatePlayerCollision.inc", void UpdatePlayerCollision()) @@ -171,11 +166,12 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A2B0.inc", } END_NONMATCH -NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A370.inc", bool32 sub_0801A370(LayerStruct* layer, u32 position)) { +bool32 sub_0801A370(LayerStruct* layer, u32 position) { LayerStruct* topLayer; u32 tileType; u32 pos; s32 offset; + s32 temp; if ((gPlayerEntity.animationState & 2) == 0) { return FALSE; @@ -208,7 +204,7 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A370.inc", bool32 sub_0801A3 case 0x74: return FALSE; } - switch (layer->collisionData[pos]) { + switch (temp = layer->collisionData[pos]) { case 0: return TRUE; case 5: @@ -226,7 +222,6 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A370.inc", bool32 sub_0801A3 } return FALSE; } -END_NONMATCH bool32 sub_0801A458(LayerStruct* layer, u32 position, u32 collisionType) { u32 tileType; @@ -368,10 +363,10 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A9F0.inc", } END_NONMATCH -NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801AA58.inc", - bool32 sub_0801AA58(Entity* this, u32 param_2, u32 param_3)) { +bool32 sub_0801AA58(Entity* this, u32 param_2, u32 param_3) { LayerStruct* layer; Entity* object; + u32 temp; layer = GetLayerByIndex(this->collisionLayer); if (((layer->collisionData[param_2 + gUnk_080B4488[param_3 >> 3]] == 0) || @@ -380,12 +375,12 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801AA58.inc", object = CreateObject(PUSHED_BLOCK, 0, 0); if (object != NULL) { object->direction = param_3; - object->x.HALF.HI = ((param_2 & 0x3f) * 0x10 + 8) + gRoomControls.origin_x; + object->x.HALF.HI = ((((param_2)&0x3f) << 4) + 8) + gRoomControls.origin_x; object->y.HALF.HI = (((param_2 & 0xfc0) >> 2) + 8) + gRoomControls.origin_y; object->collisionLayer = this->collisionLayer; gPlayerState.pushedObject = 0xa0; gPlayerState.queued_action = 5; - gPlayerState.flags |= PL_BUSY; + gPlayerState.flags |= 1; this->x.HALF.LO = 0; this->y.HALF.LO = 0; this->direction = param_3; @@ -394,25 +389,23 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801AA58.inc", } return FALSE; } -END_NONMATCH ASM_FUNC("asm/non_matching/beanstalkSubtask/sub_0801AB08.inc", void sub_0801AB08(u16* a, LayerStruct* layer)) -NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801AC68.inc", u32 sub_0801AC68(u32 position, u32 data)) { +u32 sub_0801AC68(u32 position, u32 data) { u32 index; struct_0200B240* ptr; u32 end; ptr = gUnk_0200B240; end = gRoomVars.unk_0e; - for (index = 0; index < end; index++) { - if (position == ptr[index].position) { - return ptr[index].data << 2; + for (index = 0; index < end; ptr++, index++) { + if (position == ptr->position) { + return ptr->data << 2; } } return data << 2; } -END_NONMATCH ASM_FUNC("asm/non_matching/beanstalkSubtask/sub_0801AC98.inc", void sub_0801AC98()) diff --git a/src/object/frozenOctorok.c b/src/object/frozenOctorok.c index 4004cfe4..ac86fb65 100644 --- a/src/object/frozenOctorok.c +++ b/src/object/frozenOctorok.c @@ -175,8 +175,7 @@ void FrozenOctorok_Action1SubAction4(FrozenOctorokEntity* this) { } } -NONMATCH("asm/non_matching/frozenOctorok/FrozenOctorok_Action1SubAction5.inc", - void FrozenOctorok_Action1SubAction5(FrozenOctorokEntity* this)) { +void FrozenOctorok_Action1SubAction5(FrozenOctorokEntity* this) { Entity* child; if ((gRoomTransition.frameCount & 2) != 0) { @@ -203,21 +202,20 @@ NONMATCH("asm/non_matching/frozenOctorok/FrozenOctorok_Action1SubAction5.inc", } } else { this->unk_79--; - switch ((gRoomTransition.frameCount & 3)) { + switch ((u32)(gRoomTransition.frameCount & 3)) { case 0: case 2: - (super->child)->spriteOffsetX = 0; + super->child->spriteOffsetX = 0; break; case 1: - (super->child)->spriteOffsetX = 0xfc; + super->child->spriteOffsetX = 0xfc; break; case 3: - (super->child)->spriteOffsetX = 4; + super->child->spriteOffsetX = 4; break; } } } -END_NONMATCH void FrozenOctorok_Action1SubAction6(FrozenOctorokEntity* this) { LinearMoveUpdate(super); diff --git a/src/object/objectBD.c b/src/object/objectBD.c index 714eac33..58405d7d 100644 --- a/src/object/objectBD.c +++ b/src/object/objectBD.c @@ -58,12 +58,8 @@ void sub_080A22B0(Entity* this) { } } -NONMATCH("asm/non_matching/objectBD/sub_080A22C4.inc", void sub_080A22C4(Entity* this)) { - u8 bVar1; - u8 uVar2; - s16 sVar3; - u32 uVar4; - u32 tmp1, tmp2, tmp3, tmp4; +void sub_080A22C4(Entity* this) { + u32 tmp1, tmp2, tmp3; switch (this->action) { case 0: @@ -71,13 +67,13 @@ NONMATCH("asm/non_matching/objectBD/sub_080A22C4.inc", void sub_080A22C4(Entity* this->timer = 8; this->subtimer = 0; this->subAction = this->frameIndex; - this->speed = (Random() & 3) * 0x10 + 0x1e; + this->speed = ((Random() & 3) << 4) + 0x1e; break; case 1: if (--this->speed != 0) { return; } - this->speed = (Random() & 7) * 0x10 + 0x1e; + this->speed = ((Random() & 7) << 4) + 0x1e; this->action = 2; break; default: @@ -96,7 +92,6 @@ NONMATCH("asm/non_matching/objectBD/sub_080A22C4.inc", void sub_080A22C4(Entity* break; } } -END_NONMATCH void sub_080A2340(Entity* this) { const struct_08125014* ptr;