diff options
-rw-r--r-- | asm/trade.s | 143 | ||||
-rw-r--r-- | src/trade.c | 61 |
2 files changed, 60 insertions, 144 deletions
diff --git a/asm/trade.s b/asm/trade.s index d50feda0b..f4ddba518 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -10,149 +10,6 @@ .set sub_804A96C_alt, sub_804A96C .endif - thumb_func_start sub_80489F4 -sub_80489F4: @ 80489F4 - push {lr} - ldr r0, _08048A10 @ =gUnknown_03004824 - ldr r0, [r0] - adds r0, 0xC8 - bl sub_804A940 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_08048A10: .4byte gUnknown_03004824 - thumb_func_end sub_80489F4 - - thumb_func_start sub_8048A14 -sub_8048A14: @ 8048A14 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08048A4C @ =gUnknown_03004824 - ldr r1, [r4] - adds r1, 0xB4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bls _08048A44 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0xA - strb r1, [r0] -_08048A44: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08048A4C: .4byte gUnknown_03004824 - thumb_func_end sub_8048A14 - - thumb_func_start sub_8048A50 -sub_8048A50: @ 8048A50 - push {r4,lr} - ldr r0, _08048A84 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08048A7E - ldr r2, _08048A88 @ =gUnknown_020297D8 - ldr r4, _08048A8C @ =gUnknown_03004824 - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x41 - ldrb r1, [r1] - strb r1, [r2] - adds r0, 0x8A - ldrb r0, [r0] - strb r0, [r2, 0x1] - bl sub_800832C - ldr r0, [r4] - adds r0, 0x7B - movs r1, 0xD - strb r1, [r0] -_08048A7E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08048A84: .4byte gPaletteFade -_08048A88: .4byte gUnknown_020297D8 -_08048A8C: .4byte gUnknown_03004824 - thumb_func_end sub_8048A50 - - thumb_func_start sub_8048A90 -sub_8048A90: @ 8048A90 - push {lr} - ldr r0, _08048AA8 @ =gReceivedRemoteLinkPlayers - ldrb r1, [r0] - cmp r1, 0 - bne _08048AA4 - ldr r0, _08048AAC @ =gMain - str r1, [r0] - ldr r0, _08048AB0 @ =sub_804B41C - bl SetMainCallback2 -_08048AA4: - pop {r0} - bx r0 - .align 2, 0 -_08048AA8: .4byte gReceivedRemoteLinkPlayers -_08048AAC: .4byte gMain -_08048AB0: .4byte sub_804B41C - thumb_func_end sub_8048A90 - - thumb_func_start sub_8048AB4 -sub_8048AB4: @ 8048AB4 - push {r4,lr} - bl sub_8049DE0 - bl sub_804AB30 - movs r0, 0 - bl sub_8049ED4 - movs r0, 0x1 - bl sub_8049ED4 - ldr r4, _08048B04 @ =REG_BG2HOFS - ldr r3, _08048B08 @ =gUnknown_03004824 - ldr r2, [r3] - ldrb r0, [r2] - adds r1, r0, 0x1 - strb r1, [r2] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - adds r4, 0x4 - ldr r2, [r3] - ldrb r0, [r2, 0x1] - adds r1, r0, 0 - adds r1, 0xFF - strb r1, [r2, 0x1] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08048B04: .4byte REG_BG2HOFS -_08048B08: .4byte gUnknown_03004824 - thumb_func_end sub_8048AB4 - thumb_func_start sub_8048B0C sub_8048B0C: @ 8048B0C push {r4-r7,lr} diff --git a/src/trade.c b/src/trade.c index cf2070fe1..4e1c74b83 100644 --- a/src/trade.c +++ b/src/trade.c @@ -80,7 +80,9 @@ struct TradeEwramSubstruct { /*0x0082*/ u8 filler_0082[4]; /*0x0086*/ u8 unk_0086; /*0x0087*/ u8 unk_0087; - /*0x0088*/ u8 filler_0088[0x2c]; + /*0x0088*/ u8 filler_0088[2]; + /*0x008a*/ u8 unk_008a; + /*0x008b*/ u8 filler_008b[0x29]; /*0x00b4*/ u8 unk_00b4; /*0x00b5*/ u8 filler_00b4[0x13]; /*0x00c8*/ struct UnkStructE unk_00c8; @@ -121,7 +123,13 @@ void sub_804AE3C(u8); void sub_804AF10(void); void sub_80494D8(void); void sub_8048AB4(void); +void sub_804A940(struct UnkStructE *); +void sub_804B41C(void); +void sub_8049DE0(void); +void sub_804AB30(void); +void sub_8049ED4(u8); +extern u8 gUnknown_020297D8[2]; extern u8 *gUnknown_020296CC[13]; extern struct TradeEwramSubstruct *gUnknown_03004824; extern u8 gUnknown_03000508; @@ -894,6 +902,57 @@ void sub_80484F4(void) UpdatePaletteFade(); } +void sub_80489F4(void) +{ + sub_804A940(&gUnknown_03004824->unk_00c8); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_8048A14(void) +{ + if (++gUnknown_03004824->unk_00b4 >= 16) + { + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gUnknown_03004824->unk_007b = 10; + } +} + +void sub_8048A50(void) +{ + if (!gPaletteFade.active) + { + gUnknown_020297D8[0] = gUnknown_03004824->unk_0041; + gUnknown_020297D8[1] = gUnknown_03004824->unk_008a; + sub_800832C(); + gUnknown_03004824->unk_007b = 13; + } +} + +void sub_8048A90(void) +{ + if (!gReceivedRemoteLinkPlayers) + { + gMain.callback1 = NULL; + SetMainCallback2(sub_804B41C); + } +} + +void sub_8048AB4(void) +{ + sub_8049DE0(); + sub_804AB30(); + sub_8049ED4(0); + sub_8049ED4(1); + REG_BG2HOFS = gUnknown_03004824->unk_0000++; + REG_BG3HOFS = gUnknown_03004824->unk_0001--; + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + asm(".section .text.sub_804A96C"); void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) { |