diff options
| -rw-r--r-- | src/constants/card_data_constants.asm | 3 | ||||
| -rwxr-xr-x | src/engine/bank3.asm | 14 | ||||
| -rwxr-xr-x | src/engine/bank7.asm | 4 | ||||
| -rwxr-xr-x | src/engine/home.asm | 18 | ||||
| -rwxr-xr-x | src/wram.asm | 33 | 
5 files changed, 48 insertions, 24 deletions
| diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm index 0b85773..8228d2f 100644 --- a/src/constants/card_data_constants.asm +++ b/src/constants/card_data_constants.asm @@ -1,5 +1,6 @@  CARD_DATA_LENGTH EQU $41 -DECK_SIZE        EQU 60 +DECK_SIZE        EQU  60 +BENCH_SIZE       EQU   5  ;;; card types (byte 1 of every card data)  FIRE      EQU $0 diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index cee8c72..bf726a6 100755 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -242,11 +242,11 @@ Func_c1b1: ; c1b1 (3:41b1)  	farcall Func_1c82e  	farcall Func_131b3  	xor a -	ld [wCounter + 0], a -	ld [wCounter + 1], a -	ld [wCounter + 2], a -	ld [wCounter + 3], a -	ld [wCounter + 4], a +	ld [wPlayTimeCounter + 0], a +	ld [wPlayTimeCounter + 1], a +	ld [wPlayTimeCounter + 2], a +	ld [wPlayTimeCounter + 3], a +	ld [wPlayTimeCounter + 4], a  	ret  Func_c1ed: ; c1ed (3:41ed) @@ -1199,7 +1199,7 @@ Func_c9e8: ; c9e8 (3:49e8)  	cp $2  	jr c, .asm_ca04  .asm_c9f2 -	call Func_089b +	call UpdateRNGSources  	and $3  	ld c, a  	ld b, $0 @@ -1251,7 +1251,7 @@ Func_ca0e: ; ca0e (3:4a0e)  	db $3f  	jr .asm_ca68  .asm_ca4a -	call Func_089b +	call UpdateRNGSources  	ld c, $1  	and $3  	or a diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm index 51e03d7..b0512ec 100755 --- a/src/engine/bank7.asm +++ b/src/engine/bank7.asm @@ -133,7 +133,7 @@ Func_1d078: ; 1d078 (7:5078)  	ld [$d626], a  .asm_1d095  	call Func_3c48 -	call Func_089b +	call UpdateRNGSources  	call $5614  	ld hl, $d635  	inc [hl] @@ -213,7 +213,7 @@ Func_1d11c: ; 1d11c (7:511c)  	farcallx $4, $4031  .asm_1d15a  	call Func_3c48 -	call Func_089b +	call UpdateRNGSources  	call Func_264b  	push af  	call $51e9 diff --git a/src/engine/home.asm b/src/engine/home.asm index 8d64870..ae34ded 100755 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -129,7 +129,7 @@ TimerHandler: ; 01e6 (0:01e6)  	and $3  	jr nz, .done  	; increment the 60-60-60-255-255 counter -	call IncrementCounter +	call IncrementPlayTimeCounter  	; check in-timer flag  	ld hl, wReentrancyFlag  	bit 1, [hl] @@ -153,11 +153,11 @@ TimerHandler: ; 01e6 (0:01e6)  	reti  ; increment timer counter by a tick -IncrementCounter: ; 021c (0:021c) -	ld a, [wCounterEnable] +IncrementPlayTimeCounter: ; 021c (0:021c) +	ld a, [wPlayTimeCounterEnable]  	or a  	ret z -	ld hl, wCounter +	ld hl, wPlayTimeCounter  	inc [hl]  	ld a, [hl]  	cp 60 @@ -1221,10 +1221,10 @@ HtimesL: ; 0879 (0:0879)  INCBIN "baserom.gbc",$088f,$089b - $088f -Func_089b: ; 089b (0:089b) +UpdateRNGSources: ; 089b (0:089b)  	push hl  	push de -	ld hl, $caca +	ld hl, wRNG1  	ld a, [hli]  	ld d, [hl]  	inc hl @@ -3557,7 +3557,7 @@ Duel_LoadDecks: ; 2b78 (0:2b78)  	ld a, PRACTICE_PLAYER_DECK  	call LoadDeck  	call GetOpposingTurnDuelistVariable_SwapTurn -	ld hl, $caca +	ld hl, wRNG1  	ld a, $57  	ld [hli], a  	ld [hli], a @@ -4517,14 +4517,14 @@ Func_380e: ; 380e (0:380e)  	ld a, BANK(Func_804d8)  	call BankswitchHome  	call Func_804d8 -	call Func_089b +	call UpdateRNGSources  	pop af  	call BankswitchHome  	ret  Func_383d: ; 383d (0:383d)  	ld a, $1 -	ld [wCounterEnable], a +	ld [wPlayTimeCounterEnable], a  	ld a, [hBankROM]  	push af  .asm_3845 diff --git a/src/wram.asm b/src/wram.asm index 9bb77e3..7fd0798 100755 --- a/src/wram.asm +++ b/src/wram.asm @@ -36,7 +36,15 @@ wPlayerDeckCards:: ; c27e  ; the first x cards in the wPlayerDeckCards array are ignored (e.g. when drawing a card)  wPlayerNumberOfCardsNotInDeck:: ; c2ba  	ds $1 -	ds $d + +; Which card is in player's side of the field, as number 0 to 59 +wPlayerArenaCard:: ; c2bb +	ds $1 + +; Which cards are in player's bench, as numbers 0 to 59 +wPlayerBench:: ; c2bc	 +	ds BENCH_SIZE +	ds $7  wPlayerArenaCardHP:: ; c2c8  	ds $1 @@ -77,7 +85,13 @@ wOpponentDeckCards:: ; c37e  wOpponentNumberOfCardsNotInDeck:: ; c3ba	  	ds $1 -	ds $d +	 +wOpponentArenaCard:: ; c3bb +	ds $1 + +wOpponentBench:: ; c3bc	 +	ds BENCH_SIZE +	ds $7  wOpponentArenaCardHP:: ; c3c8  	ds $1 @@ -163,7 +177,7 @@ wVBlankOAMCopyToggle:: ; cac0  wCounterCtr:: ; cac3  	ds $1 -wCounterEnable:: ; cac4 +wPlayTimeCounterEnable:: ; cac4  	ds $1  ; byte0: 1/60ths of a second @@ -171,9 +185,18 @@ wCounterEnable:: ; cac4  ; byte2: minutes  ; byte3: hours (lower byte)  ; byte4: hours (upper byte) -wCounter:: ; cac5 +wPlayTimeCounter:: ; cac5  	ds $5 -	ds $6 +	 +wRNG1:: ; caca +	ds $1 + +wRNG2:: ; cacb +	ds $1 +	 +wCounter:: ; cacc +	ds $1 +	ds $3  wVBlankFunctionTrampoline:: ; cad0  	ds $20 ; unknown length | 
