diff options
author | scnorton <scnorton@biociphers.org> | 2017-10-15 14:18:25 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-10-15 14:18:25 -0400 |
commit | 2022b1dfb43691e3123024fcddcd07dd45b20a75 (patch) | |
tree | bedde7bef165bdd949a48159fc3b689e581f8e0e | |
parent | 958a2b9a4028d974a8cbd906368340d2c2641adc (diff) |
sub_8123FBC
-rw-r--r-- | asm/cable_car.s | 170 | ||||
-rw-r--r-- | src/scene/cable_car.c | 70 |
2 files changed, 70 insertions, 170 deletions
diff --git a/asm/cable_car.s b/asm/cable_car.s index fc8a22052..48695975f 100644 --- a/asm/cable_car.s +++ b/asm/cable_car.s @@ -6,176 +6,6 @@ .text - thumb_func_start sub_8123FBC -sub_8123FBC: @ 8123FBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08123FCA - cmp r0, 0x1 - beq _08124024 -_08123FCA: - ldr r1, _08124020 @ =REG_WININ - movs r0, 0 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0xA - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x46 - strh r0, [r1] - adds r1, 0xE - strh r0, [r1] - subs r1, 0x2 - strh r0, [r1] - subs r1, 0x2 - strh r0, [r1] - subs r1, 0x2 - strh r0, [r1] - adds r1, 0x14 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x6 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x6 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x6 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x3E - strh r0, [r1] - b _081240EE - .align 2, 0 -_08124020: .4byte REG_WININ -_08124024: - ldr r0, _08124060 @ =REG_WININ - movs r3, 0 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - subs r0, 0xA - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - ldr r0, _08124064 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0812406C - ldr r1, _08124068 @ =gUnknown_02039274 - ldr r2, [r1] - movs r0, 0xB0 - strb r0, [r2, 0x14] - ldr r2, [r1] - movs r0, 0x10 - strb r0, [r2, 0x15] - ldr r0, [r1] - strb r3, [r0, 0xC] - ldr r2, [r1] - movs r0, 0x50 - b _08124082 - .align 2, 0 -_08124060: .4byte REG_WININ -_08124064: .4byte gSpecialVar_0x8004 -_08124068: .4byte gUnknown_02039274 -_0812406C: - ldr r1, _081240F4 @ =gUnknown_02039274 - ldr r2, [r1] - movs r0, 0x60 - strb r0, [r2, 0x14] - ldr r2, [r1] - movs r0, 0xE8 - strb r0, [r2, 0x15] - ldr r0, [r1] - strb r3, [r0, 0xC] - ldr r2, [r1] - movs r0, 0x4 -_08124082: - strb r0, [r2, 0xD] - ldr r0, [r1] - strb r3, [r0, 0x9] - ldr r0, [r1] - strb r3, [r0, 0x9] - adds r2, r1, 0 - ldr r1, _081240F8 @ =REG_BG3HOFS - ldr r2, [r2] - ldrb r0, [r2, 0x14] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0x15] - strh r0, [r1] - ldr r0, _081240FC @ =REG_BG2HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _08124100 @ =REG_BG1HOFS - ldrb r0, [r2, 0xC] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0xD] - strh r0, [r1] - subs r1, 0x6 - ldrb r0, [r2, 0x8] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0x9] - strh r0, [r1] - subs r1, 0xA - ldr r2, _08124104 @ =0x00003c01 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _08124108 @ =0x00003d02 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0812410C @ =0x00003e03 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08124110 @ =REG_BG3CNT - movs r3, 0xFC - lsls r3, 6 - adds r2, r3, 0 - strh r2, [r0] - subs r1, 0xC - movs r3, 0xFA - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _08124114 @ =REG_BLDCNT - strh r2, [r0] -_081240EE: - pop {r0} - bx r0 - .align 2, 0 -_081240F4: .4byte gUnknown_02039274 -_081240F8: .4byte REG_BG3HOFS -_081240FC: .4byte REG_BG2HOFS -_08124100: .4byte REG_BG1HOFS -_08124104: .4byte 0x00003c01 -_08124108: .4byte 0x00003d02 -_0812410C: .4byte 0x00003e03 -_08124110: .4byte REG_BG3CNT -_08124114: .4byte REG_BLDCNT - thumb_func_end sub_8123FBC - thumb_func_start sub_8124118 sub_8124118: @ 8124118 push {r4-r7,lr} diff --git a/src/scene/cable_car.c b/src/scene/cable_car.c index a59862278..76223925b 100644 --- a/src/scene/cable_car.c +++ b/src/scene/cable_car.c @@ -584,3 +584,73 @@ void sub_8123F44(struct Sprite *sprite) } } } + +void sub_8123FBC(bool8 which) +{ + switch (which) + { + case FALSE: + default: + REG_WININ = 0; + REG_WINOUT = 0; + REG_WIN0H = 0; + REG_WIN1H = 0; + REG_WIN0V = 0; + REG_WIN1V = 0; + REG_DISPCNT = 0; + REG_BG3CNT = 0; + REG_BG2CNT = 0; + REG_BG1CNT = 0; + REG_BG0CNT = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; + REG_BG2HOFS = 0; + REG_BG2VOFS = 0; + REG_BG1HOFS = 0; + REG_BG1VOFS = 0; + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + REG_BLDCNT = 0; + break; + case TRUE: + REG_WININ = 0; + REG_WINOUT = 0; + REG_WIN0H = 0; + REG_WIN1H = 0; + REG_WIN0V = 0; + REG_WIN1V = 0; + if (gSpecialVar_0x8004 == 0) + { + gUnknown_02039274->unk_0014 = 0xb0; + gUnknown_02039274->unk_0015 = 0x10; + gUnknown_02039274->unk_000c = 0x00; + gUnknown_02039274->unk_000d = 0x50; + gUnknown_02039274->unk_0009 = 0; + gUnknown_02039274->unk_0009 = 0; + } + else + { + gUnknown_02039274->unk_0014 = 0x60; + gUnknown_02039274->unk_0015 = 0xe8; + gUnknown_02039274->unk_000c = 0x00; + gUnknown_02039274->unk_000d = 0x04; + gUnknown_02039274->unk_0009 = 0; + gUnknown_02039274->unk_0009 = 0; + } + REG_BG3HOFS = gUnknown_02039274->unk_0014; + REG_BG3VOFS = gUnknown_02039274->unk_0015; + REG_BG2HOFS = 0; + REG_BG2VOFS = 0; + REG_BG1HOFS = gUnknown_02039274->unk_000c; + REG_BG1VOFS = gUnknown_02039274->unk_000d; + REG_BG0HOFS = gUnknown_02039274->unk_0008; + REG_BG0VOFS = gUnknown_02039274->unk_0009; + REG_BG0CNT = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(28) | BGCNT_WRAP; + REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(29) | BGCNT_WRAP; + REG_BG2CNT = BGCNT_PRIORITY(3) | BGCNT_SCREENBASE(30) | BGCNT_WRAP; + REG_BG3CNT = BGCNT_PRIORITY(0) | BGCNT_SCREENBASE(31) | BGCNT_WRAP; + REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON; + REG_BLDCNT = 0x3f00; + break; + } +} |