diff options
-rwxr-xr-x | engine/bank1.asm | 2 | ||||
-rwxr-xr-x | engine/bank3.asm | 14 | ||||
-rwxr-xr-x | engine/home.asm | 532 | ||||
-rwxr-xr-x | engine/music1.asm | 4 | ||||
-rwxr-xr-x | wram.asm | 92 |
5 files changed, 475 insertions, 169 deletions
diff --git a/engine/bank1.asm b/engine/bank1.asm index be626fb..c29a4c4 100755 --- a/engine/bank1.asm +++ b/engine/bank1.asm @@ -218,7 +218,7 @@ Duel_Start: ; 409f (1:409f) .asm_41f3 call $0f58 ld h, $c2 - ld a, [wBufSerial] + ld a, [wSerialOp] cp $29 jr z, .asm_4201 ld h, $c3 diff --git a/engine/bank3.asm b/engine/bank3.asm index 64bf841..38a56cd 100755 --- a/engine/bank3.asm +++ b/engine/bank3.asm @@ -242,11 +242,11 @@ Func_c1b1: ; c1b1 (3:41b1) farcall Func_1c82e farcall Func_131b3 xor a - ld [wCounter0], a - ld [wCounter1], a - ld [wCounter2], a - ld [wCounter3], a - ld [wCounter4], a + ld [wCounter + 0], a + ld [wCounter + 1], a + ld [wCounter + 2], a + ld [wCounter + 3], a + ld [wCounter + 4], a ret Func_c1ed: ; c1ed (3:41ed) @@ -289,7 +289,7 @@ Func_c241: ; c241 (3:4241) push hl push bc push de - ld de, Unknown_307f + ld de, $307f call Func_2275 call Func_c258 pop de @@ -365,7 +365,7 @@ Func_c2a3: ; c2a3 (3:42a3) farcall Func_10ab4 ld a, $80 call Func_c29b - ld de, Unknown_307f + ld de, $307f call Func_2275 farcall Func_12ba7 call Func_3ca0 diff --git a/engine/home.asm b/engine/home.asm index 33c72c2..51a6e1c 100755 --- a/engine/home.asm +++ b/engine/home.asm @@ -56,7 +56,7 @@ Start: ; 0150 (0:0150) call SetupVRAM call SetupLCD call SetupPalettes - call Func_377f + call SetupSound_T call SetupTimer call ResetSerial call CopyDMAFunction @@ -73,17 +73,18 @@ VBlankHandler: ; 019b (0:019b) push hl ld a, [hBankROM] push af - ld hl, $caba + ld hl, wReentrancyFlag bit 0, [hl] - jr nz, .asm_1dd + jr nz, .done set 0, [hl] - ld a, [$cac0] + ld a, [wVBlankOAMCopyToggle] or a - jr z, .asm_1b8 - call hDMAFunction + jr z, .no_oam_copy + call hDMAFunction ; DMA-copy $ca00-$ca9f to OAM memory xor a - ld [$cac0], a -.asm_1b8 + ld [wVBlankOAMCopyToggle], a +.no_oam_copy + ; flush scaling/windowing parameters ld a, [hSCX] ld [rSCX], a ld a, [hSCY] @@ -92,16 +93,17 @@ VBlankHandler: ; 019b (0:019b) ld [rWX], a ld a, [hWY] ld [rWY], a + ; flush LCDC ld a, [wLCDC] ld [rLCDC], a ei call $cad0 - call Func_042d + call FlushPalettes ld hl, wVBlankCtr inc [hl] - ld hl, $caba + ld hl, wReentrancyFlag res 0, [hl] -.asm_1dd +.done pop af call BankswitchHome pop hl @@ -116,27 +118,31 @@ TimerHandler: ; 01e6 (0:01e6) push de push bc ei - call Func_0c91 - ld hl, $cac3 + call SerialTimerHandler + ; only trigger every fourth interrupt ≈ 60.24 Hz + ld hl, wCounterCtr ld a, [hl] inc [hl] and $3 - jr nz, .asm_217 + jr nz, .done + ; increment the 60-60-60-255-255 counter call IncrementCounter - ld hl, $caba + ; check in-timer flag + ld hl, wReentrancyFlag bit 1, [hl] - jr nz, .asm_217 + jr nz, .done set 1, [hl] ld a, [hBankROM] push af - ld a, BANK(Func_f4003) + ld a, BANK(SoundTimerHandler_Ext) call BankswitchHome - call Func_f4003 + call SoundTimerHandler_Ext pop af call BankswitchHome - ld hl, $caba + ; clear in-timer flag + ld hl, wReentrancyFlag res 1, [hl] -.asm_217 +.done pop bc pop de pop hl @@ -144,12 +150,11 @@ TimerHandler: ; 01e6 (0:01e6) reti ; increment timer counter by a tick -; the counter consists of three fields 0..60 and two fields 0..255 IncrementCounter: ; 021c (0:021c) ld a, [wCounterEnable] or a ret z - ld hl, wCounter0 + ld hl, wCounter inc [hl] ld a, [hl] cp 60 @@ -174,15 +179,16 @@ IncrementCounter: ; 021c (0:021c) inc [hl] ret -; setup timer to roughly 60 Hz +; setup timer to 16384/68 ≈ 240.94 Hz SetupTimer: ; 0241 (0:0241) - ld b, $bc + ld b, $100 - 68 + ; ld b, $bc call CheckForCGB jr c, .asm_250 ld a, [rKEY1] and $80 jr z, .asm_250 - ld b, $78 + ld b, $100 - 2*68 .asm_250 ld a, b ld [rTMA], a @@ -225,7 +231,7 @@ EnableLCD: ; 0277 (0:0277) ld [wLCDC], a ; ld [rLCDC], a ; turn LCD on ld a, $c0 - ld [$cabf], a + ld [wFlushPaletteFlags], a ret ; wait for vblank, then turn LCD off @@ -303,14 +309,14 @@ SetupLCD: ; 030b (0:030b) ld [hWX], a ld [hWY], a xor a - ld [$caba], a - ld a, $c3 + ld [wReentrancyFlag], a + ld a, $c3 ; $c3 = jp nn ld [$cacd], a - ld [$cad0], a - ld hl, $cad1 - ld [hl], NopF & $ff - inc hl - ld [hl], NopF >> $8 + ld [wVBlankFunctionTrampoline], a + ld hl, wVBlankFunctionTrampoline + 1 + ld [hl], NopF & $ff ; + inc hl ; load `jp NopF` + ld [hl], NopF >> $8 ; ld a, $47 ld [wLCDC], a ld a, $1 @@ -350,7 +356,7 @@ SetupPalettes: ; 036a (0:036a) ld [hli], a ld [hl], a xor a - ld [$cabf], a + ld [wFlushPaletteFlags], a ld a, [wConsole] cp CONSOLE_CGB ret nz @@ -367,7 +373,7 @@ SetupPalettes: ; 036a (0:036a) jr nz, .asm_38c dec c jr nz, .asm_387 - call Func_0458 + call FlushBothCGBPalettes ret InitialPalette: ; 0399 (0:0399) @@ -457,14 +463,14 @@ Func_040c: ; 040c (0:040c) asm_40f ld a, $80 asm_411 - ld [$cabf], a + ld [wFlushPaletteFlags], a ld a, [wLCDC] rla ret c push hl push de push bc - call Func_042d + call FlushPalettes pop bc pop de pop hl @@ -478,10 +484,16 @@ Set_OBP1: ; 0428 (0:0428) ld [wOBP1], a jr asm_40f -Func_042d: ; 042d (0:042d) - ld a, [$cabf] +; flushes non-CGB palettes from [wBGP], [wOBP0], [wOBP1] as well as CGB +; palettes from [wBufPalette..wBufPalette+$1f] (BG palette) and +; [wBufPalette+$20..wBufPalette+$3f] (sprite palette). +; only flushes if [wFlushPaletteFlags] is nonzero, and only flushes sprite +; palette if bit6 of that location is set. +FlushPalettes: ; 042d (0:042d) + ld a, [wFlushPaletteFlags] or a ret z + ; flush grayscale (non-CGB) palettes ld hl, wBGP ld a, [hli] ld [rBGP], a @@ -491,29 +503,33 @@ Func_042d: ; 042d (0:042d) ld [rOBP1], a ld a, [wConsole] cp CONSOLE_CGB - jr z, asm_44a -asm_445 + jr z, flushPaletteCGB +flushPaletteDone xor a - ld [$cabf], a + ld [wFlushPaletteFlags], a ret -asm_44a - ld a, [$cabf] +flushPaletteCGB + ; flush BG palette (BGP) + ; if bit6 of [wFlushPaletteFlags] is set, flush OBP too + ld a, [wFlushPaletteFlags] bit 6, a - jr nz, Func_0458 + jr nz, FlushBothCGBPalettes ld b, $8 - call InitializePalettes - jr asm_445 + call CopyPalette + jr flushPaletteDone -Func_0458: ; 0458 (0:0458) +FlushBothCGBPalettes: ; 0458 (0:0458) xor a ld b, $40 - call InitializePalettes + ; flush BGP $00-$1f + call CopyPalette ld a, $8 ld b, $40 - call InitializePalettes - jr asm_445 + ; flush OBP $00-$1f + call CopyPalette + jr flushPaletteDone -InitializePalettes: ; 0467 (0:0467) +CopyPalette: ; 0467 (0:0467) add a add a add a @@ -559,10 +575,10 @@ Func_04a2: ; 04a2 (0:04a2) ld a, [wConsole] cp CONSOLE_SGB ret nz - call EnableLCD - ld hl, SGB_04bf - call SendSGB - call DisableLCD + call EnableLCD ; + ld hl, SGB_04bf ; send SGB data + call SendSGB ; + call DisableLCD ; ret SGB_04bf: ; 04bf (0:04bf) @@ -1061,7 +1077,7 @@ SetupExtRAM: ; 080b (0:080b) Func_084d: ; 084d (0:084d) ld a, $3 .asm_84f - call Func_0863 + call ClearExtRAMBank dec a cp $ff jr nz, .asm_84f @@ -1073,7 +1089,7 @@ Func_084d: ; 084d (0:084d) ld [hl], $5 ret -Func_0863: ; 0863 (0:0863) +ClearExtRAMBank: ; 0863 (0:0863) push af call BankswitchRAM call EnableExtRAM @@ -1580,37 +1596,40 @@ MemcpyDEHL_hblank: ; 0c32 (0:0c32) INCBIN "baserom.gbc",$0c4b,$0c91 - $0c4b -Func_0c91: ; 0c91 (0:0c91) - ld a, [$cb74] +; called at roughly 240Hz by TimerHandler +SerialTimerHandler: ; 0c91 (0:0c91) + ld a, [wSerialOp] cp $29 - jr z, .asm_c9d + jr z, .begin_transfer cp $12 - jr z, .asm_caa + jr z, .check_for_timeout ret -.asm_c9d - ld a, [rSC] - add a - ret c +.begin_transfer + ld a, [rSC] ; + add a ; make sure that no serial transfer is active + ret c ; ld a, $1 - ld [rSC], a + ld [rSC], a ; use internal clock ld a, $81 - ld [rSC], a + ld [rSC], a ; use internal clock, set transfer start flag ret -.asm_caa - ld a, [$cb76] - ld hl, $cb77 +.check_for_timeout + ; sets bit7 of [wSerialFlags] if the serial interrupt hasn't triggered + ; within four timer interrupts (60Hz) + ld a, [wSerialCounter] + ld hl, wSerialCounter2 cp [hl] ld [hl], a - ld hl, $cb78 - jr nz, .asm_cc2 + ld hl, wSerialTimeoutCounter + jr nz, .clear_counter inc [hl] ld a, [hl] cp $4 ret c - ld hl, $cb75 + ld hl, wSerialFlags set 7, [hl] ret -.asm_cc2 +.clear_counter ld [hl], $0 ret ; 0xcc5 @@ -1622,44 +1641,46 @@ SerialHandler: ; 0d26 (0:0d26) push hl push de push bc - ld a, [$ce63] - or a - jr z, .asm_d35 - call Func_3189 - jr .asm_d6e + ld a, [$ce63] ; + or a ; + jr z, .asm_d35 ; if [$ce63] nonzero: + call Func_3189 ; ? + jr .done ; return .asm_d35 - ld a, [$cb74] - or a - jr z, .asm_d55 + ld a, [wSerialOp] ; + or a ; + jr z, .asm_d55 ; skip ahead if [$cb74] zero + ; send/receive a byte ld a, [rSB] - call Func_0d77 - call Func_0dc8 + call SerialHandleRecv + call SerialHandleSend ; returns byte to actually send push af -.asm_d44 +.wait_for_completion ld a, [rSC] add a - jr c, .asm_d44 + jr c, .wait_for_completion pop af - ld [rSB], a - ld a, [$cb74] + ; end send/receive + ld [rSB], a ; prepare sending byte (from Func_0dc8?) + ld a, [wSerialOp] cp $29 - jr z, .asm_d6e - jr .asm_d6a + jr z, .done ; if [$cb74] != $29, use external clock + jr .asm_d6a ; and prepare for next byte. either way, return .asm_d55 ld a, $1 - ld [$cba2], a + ld [wSerialRecvCounter], a ld a, [rSB] - ld [$cba5], a + ld [wSerialRecvBuf], a ld a, $ac ld [rSB], a - ld a, [$cba5] - cp $12 - jr z, .asm_d6e + ld a, [wSerialRecvBuf] + cp $12 ; if [$cba5] != $12, use external clock + jr z, .done ; and prepare for next byte. either way, return .asm_d6a - ld a, $80 - ld [rSC], a -.asm_d6e - ld hl, $cb76 + ld a, $80 ; + ld [rSC], a ; transfer start, use external clock +.done + ld hl, wSerialCounter inc [hl] pop bc pop de @@ -1667,101 +1688,116 @@ SerialHandler: ; 0d26 (0:0d26) pop af reti -Func_0d77: ; 0d77 (0:0d77) - ld hl, $cba1 +; handles a byte read from serial transfer by decoding it and storing it into +; the receive buffer +SerialHandleRecv: ; 0d77 (0:0d77) + ld hl, wSerialLastReadCA ld e, [hl] dec e - jr z, .asm_d94 + jr z, .last_was_ca cp $ac - ret z + ret z ; return if read_data == $ac cp $ca - jr z, .asm_d92 + jr z, .read_ca or a - jr z, .asm_d8c + jr z, .read_00_or_ff cp $ff - jr nz, .asm_d99 -.asm_d8c - ld hl, $cb75 + jr nz, .read_data +.read_00_or_ff + ld hl, wSerialFlags set 6, [hl] ret -.asm_d92 - inc [hl] +.read_ca + inc [hl] ; inc [wSerialLastReadCA] ret -.asm_d94 +.last_was_ca + ; if last byte read was $ca, flip all bits of data received ld [hl], $0 cpl - jr .asm_d9b -.asm_d99 + jr .handle_byte +.read_data + ; flip top2 bits of data received xor $c0 -.asm_d9b +.handle_byte push af - ld a, [$cba4] + ld a, [wSerialRecvIndex] ld e, a ld a, [$cba3] dec a and $1f cp e - jr z, .asm_dc1 + jr z, .set_flag_and_return ld d, $0 - ld hl, $cba5 + ; store into receive buffer + ld hl, wSerialRecvBuf add hl, de pop af ld [hl], a + ; increment buffer index (mod 32) ld a, e inc a and $1f ld [$cba4], a - ld hl, $cba2 + ; increment received bytes counter & clear flags + ld hl, wSerialRecvCounter inc [hl] xor a - ld [$cb75], a + ld [wSerialFlags], a ret -.asm_dc1 +.set_flag_and_return pop af - ld hl, $cb75 + ld hl, wSerialFlags set 0, [hl] ret -Func_0dc8: ; 0dc8 (0:0dc8) - ld hl, $cb7d +; prepares a byte to send over serial transfer, either from the send-save byte +; slot or the send buffer +SerialHandleSend: ; 0dc8 (0:0dc8) + ld hl, wSerialSendSave ld a, [hl] or a - jr nz, .asm_dd9 - ld hl, $cb7e + jr nz, .send_saved + ld hl, wSerialSendBufToggle ld a, [hl] or a - jr nz, .asm_ddd + jr nz, .send_buf + ; no more data--send $ac to indicate this ld a, $ac ret -.asm_dd9 +.send_saved ld a, [hl] ld [hl], $0 ret -.asm_ddd +.send_buf + ; grab byte to send from send buffer, increment buffer index + ; and decrement to-send length dec [hl] - ld a, [$cb7f] + ld a, [wSerialSendBufIndex] ld e, a ld d, $0 - ld hl, $cb81 + ld hl, wSerialSendBuf add hl, de inc a and $1f - ld [$cb7f], a + ld [wSerialSendBufIndex], a ld a, [hl] + ; flip top2 bits of sent data xor $c0 cp $ac - jr z, .asm_e01 + jr z, .send_escaped cp $ca - jr z, .asm_e01 + jr z, .send_escaped cp $ff - jr z, .asm_e01 + jr z, .send_escaped or a - jr z, .asm_e01 + jr z, .send_escaped ret -.asm_e01 +.send_escaped + ; escape tricky data by prefixing it with $ca and flipping all bits + ; instead of just top2 xor $c0 cpl - ld [$cb7d], a + ld [wSerialSendSave], a ld a, $ca ret ; 0xe0a @@ -1775,7 +1811,7 @@ ResetSerial: ; 0ea6 (0:0ea6) xor a ld [rSB], a ld [rSC], a - ld hl, wBufSerial + ld hl, wSerialOp ld bc, $0051 .asm_eb7 xor a @@ -3578,10 +3614,218 @@ LoadDeck: ; 302c (0:302c) ret ; 0x3055 -INCBIN "baserom.gbc",$3055,$307f - $3055 +Func_3055: ; 3055 (0:3055) + push hl + ld hl, $ccb9 + add [hl] + ld [hli], a + ld a, $0 + adc [hl] + ld [hl], a + pop hl + ret + +Func_3061: ; 3061 (0:3061) + push de + push hl + ld e, a + ld hl, $ccb9 + ld a, [hl] + sub e + ld [hli], a + ld a, [hl] + sbc $0 + ld [hl], a + pop hl + pop de + ret + +Func_3071: ; 3071 (0:3071) + push hl + ld hl, $ce4e + ld [hl], e + inc hl + ld [hl], d + rst $18 + xor l + ld [hl], c + pop hl + ret + +Func_307d: ; 307d (0:307d) + push hl + ld hl, $ce4e + ld [hl], e + inc hl + ld [hl], d + ld a, $1 + rst $18 + xor l + ld [hl], c + ld hl, $cac2 + ld [hl], $0 + pop hl + ret -Unknown_307f: ; 307f (0:307f) -INCBIN "baserom.gbc",$307f,$3189 - $307f +Func_3090: ; 3090 (0:3090) + ld a, d + cp b + ret nz + ld a, e + cp c + ret + +Func_3096: ; 3096 (0:3096) + ld a, [hBankROM] + push af + ld a, $2 + call BankswitchHome + call $4000 + pop af + call BankswitchHome + ret + +Func_30a6: ; 30a6 (0:30a6) + ld a, [hBankROM] + push af + ld a, $6 + call BankswitchHome + ld a, $1 + ld [$ce60], a + call $40d5 + pop bc + ld a, b + call BankswitchHome + ret + +Func_30bc: ; 30bc (0:30bc) + ld a, h + ld [$ce50], a + ld a, l + ld [$ce51], a + ld a, [hBankROM] + push af + ld a, $2 + call BankswitchHome + call $4211 + call Func_2a9e + pop af + call BankswitchHome + ret + +Func_30d7: ; 30d7 (0:30d7) + ld a, [hBankROM] + push af + ld a, $2 + call BankswitchHome + call $433c + pop af + call BankswitchHome + ret + +Func_30e7: ; 30e7 (0:30e7) + ld a, [hBankROM] + push af + ld a, $2 + call BankswitchHome + call $4764 + ld b, a + pop af + call BankswitchHome + ld a, b + ret + +Func_30f9: ; 30f9 (0:30f9) + ld b, a + ld a, [hBankROM] + push af + ld a, $2 + call BankswitchHome + call $4932 + pop af + call BankswitchHome + ret + +Func_310a: ; 310a (0:310a) + ld [$ce59], a + ld a, [hBankROM] + push af + ld a, $2 + call BankswitchHome + call $4aaa + pop af + call BankswitchHome + ret + +Func_311d: ; 311d (0:311d) + ld a, [hBankROM] + push af + ld a, $2 + call BankswitchHome + call $4b85 + pop af + call BankswitchHome + ret + +Func_312d: ; 312d (0:312d) + push hl + ld hl, $ce64 + ld a, $88 + ld [hli], a + ld a, $33 + ld [hli], a + ld [hl], d + inc hl + ld [hl], e + inc hl + ld [hl], c + inc hl + ld [hl], b + inc hl + pop de + ld [hl], e + inc hl + ld [hl], d + inc hl + ld de, $ff45 + ld [hl], e + inc hl + ld [hl], d + ld hl, $ce70 + ld [hl], $64 + inc hl + ld [hl], $ce + call $0e8e + ld a, $1 + ld [$ce63], a + call Func_31fc +.asm_315d + call Func_053f + ld a, [$ce63] + or a + jr nz, .asm_315d + call ResetSerial + ld bc, $05dc +.asm_316c + dec bc + ld a, b + or c + jr nz, .asm_316c + ld a, [$ce6e] + cp $81 + jr nz, .asm_3182 + ld a, [$ce6f] + ld l, a + and $f1 + ld a, l + ret z + scf + ret +.asm_3182 + ld a, $ff + ld [$ce6f], a + scf + ret Func_3189: ; 3189 (0:3189) ld hl, PointerTable_3190 @@ -3695,8 +3939,8 @@ Func_3212: ; 3212 (0:3212) INCBIN "baserom.gbc",$321d,$377f - $321d -Func_377f: ; 377f (0:377f) - farcall Func_f4000 +SetupSound_T: ; 377f (0:377f) + farcall SetupSound_Ext ret Func_3784: ; 3784 (0:3784) diff --git a/engine/music1.asm b/engine/music1.asm index 22392bb..21b7007 100755 --- a/engine/music1.asm +++ b/engine/music1.asm @@ -1,7 +1,7 @@ -Func_f4000: ; f4000 (3d:4000) +SetupSound_Ext: ; f4000 (3d:4000) jp Func_f407d -Func_f4003: ; f4003 (3d:4003) +SoundTimerHandler_Ext: ; f4003 (3d:4003) jp Func_f40e9 Func_f4006: ; f4006 (3d:4006) @@ -1,12 +1,20 @@ ;--- Bank 0: $Cxxx ---------------------------------------- SECTION "WRAM0", WRAM0 - ds $ab3 + ds $a00 +wBufOAM: ; ca00 + ds $a0 + ds $13 + +; initial value of the A register--used to tell the console when reset wInitialA: ; cab3 ds $1 +; what console we are playing on, either 0 (DMG), 1 (SGB) or 2 (CGB) +; use constants CONSOLE_DMG, CONSOLE_SGB and CONSOLE_CGB for checks wConsole: ; cab4 - ds $2 + ds $1 + ds $1 wTileMapFill: ; cab6 ds $1 @@ -15,7 +23,13 @@ wIE: ; cab7 ds $1 wVBlankCtr: ; cab8 - ds $3 + ds $1 + ds $1 + +; bit0: is in vblank interrupt? +; bit1: is in timer interrupt? +wReentrancyFlag: ; caba + ds $1 wLCDC: ; cabb ds $1 @@ -27,31 +41,80 @@ wOBP0: ; cabd ds $1 wOBP1: ; cabe - ds $6 + ds $1 + +wFlushPaletteFlags: ; cabf + ds $1 + +wVBlankOAMCopyToggle: ; cac0 + ds $1 + ds $2 + +wCounterCtr: ; cac3 + ds $1 wCounterEnable: ; cac4 ds $1 -wCounter0: ; cac5 +; byte0: 1/60ths of a second +; byte1: seconds +; byte2: minutes +; byte3: hours (lower byte) +; byte4: hours (upper byte) +wCounter: ; cac5 + ds $5 + ds $6 + +wVBlankFunctionTrampoline: ; cad0 + ds $20 ; unknown length + +wBufPalette: ; caf0 - cab7f + ds $80 + ds $4 + +;--- Serial transfer bytes (cb74-cbc4) ---------- +wSerialOp: ; cb74 + ds $1 + +wSerialFlags: ; cb75 + ds $1 + +wSerialCounter: ; cb76 + ds $1 + +wSerialCounter2: ; cb77 + ds $1 + +wSerialTimeoutCounter: ; cb78 ds $1 + ds $4 -wCounter1: ; cac6 +wSerialSendSave: ; cb7d ds $1 -wCounter2: ; cac7 +wSerialSendBufToggle: ; cb7e + ds $1 + +wSerialSendBufIndex: ; cb7f + ds $1 ds $1 -wCounter3: ; cac8 +wSerialSendBuf: ; cb81 + ds $20 + +wSerialLastReadCA: ; cba1 ds $1 -wCounter4: ; cac9 - ds $27 +wSerialRecvCounter: ; cba2 + ds $1 + ds $1 -wBufPalette: ; caf0 - ds $84 +wSerialRecvIndex: ; cba4 + ds $1 -wBufSerial: ; cb74 - ds $9a +wSerialRecvBuf: ; $cba5 - $cbc4 + ds $20 + ds $49 ; this seems to hold the current opponent's deck id - 2, ; perhaps to account for the two unused pointers at the @@ -65,7 +128,6 @@ wIsPracticeDuel: ; cc13 wDuelTheme: ; cc1a ds $1 - ;--- Bank 1: $Dxxx ---------------------------------------- SECTION "WRAM1", WRAMX, BANK[1] ds $113 |