diff options
| -rwxr-xr-x | src/engine/bank1.asm | 6 | ||||
| -rwxr-xr-x | src/engine/bank1c.asm | 4 | ||||
| -rwxr-xr-x | src/engine/bank2.asm | 14 | ||||
| -rwxr-xr-x | src/engine/bank3.asm | 24 | ||||
| -rwxr-xr-x | src/engine/bank4.asm | 4 | ||||
| -rwxr-xr-x | src/engine/bank7.asm | 2 | ||||
| -rwxr-xr-x | src/engine/home.asm | 85 | ||||
| -rwxr-xr-x | src/wram.asm | 32 | 
8 files changed, 101 insertions, 70 deletions
| diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm index c29a4c4..364cbb6 100755 --- a/src/engine/bank1.asm +++ b/src/engine/bank1.asm @@ -11,10 +11,10 @@ Func_4000: ; 4000 (1:4000)  	ld [$ccf2], a  	call DisableExtRAM  	ld a, $1 -	ld [$cd0d], a +	ld [wUppercaseFlag], a  	ei  	farcall Func_1a6cc -	ld a, [$ff90] +	ld a, [hButtonsHeld]  	cp $3  	jr z, .asm_4035  	farcall Func_126d1 @@ -35,7 +35,7 @@ Func_4000: ; 4000 (1:4000)  Func_4050: ; 4050 (1:4050)  	farcall Func_1996e  	ld a, $1 -	ld [$cd0d], a +	ld [wUppercaseFlag], a  	ret  Func_405a: ; 405a (1:405a) diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm index e11aaef..044d854 100755 --- a/src/engine/bank1c.asm +++ b/src/engine/bank1c.asm @@ -146,9 +146,9 @@ Func_70136: ; 70136 (1c:4136)  	push hl  	push bc  	push de -	ld a, [$ff92] +	ld a, [hSCX]  	ld [$d41d], a -	ld a, [$ff93] +	ld a, [hSCY]  	ld [$d41e], a  	ld a, [$cabc]  	ld [$d41f], a diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm index 1c82b47..e255784 100755 --- a/src/engine/bank2.asm +++ b/src/engine/bank2.asm @@ -103,7 +103,7 @@ Func_8dea: ; 8dea (2:4dea)  	ld a, [hButtonsPressed2]  	and $8  	ret z -	ld a, [$cd10] +	ld a, [wCurMenuItem]  	ld [$ceb1], a  	call Func_8ff2  	jp nc, Func_8e05 @@ -328,7 +328,7 @@ Func_8f9d: ; 8f9d (2:4f9d)  	call DisableExtRAM  	ld h, $3  	ld l, a -	call Func_0879 +	call HtimesL  	ld e, l  	inc e  	ld d, $2 @@ -384,7 +384,7 @@ Func_9038: ; 9038 (2:5038)  	ld a, [$ceb1]  	ld h, a  	ld l, $54 -	call Func_0879 +	call HtimesL  	push de  	ld de, $a200  	add hl, de @@ -396,7 +396,7 @@ Func_9048: ; 9048 (2:5048)  	ld a, [$ceb1]  	ld h, a  	ld l, $54 -	call Func_0879 +	call HtimesL  	push de  	ld de, $a218  	add hl, de @@ -452,7 +452,7 @@ Func_9065: ; 9065 (2:5065)  	xor a  	ld [$cea3], a  .asm_90a6 -	ld a, [$ff91] +	ld a, [hButtonsPressed]  	and $3  	jr z, .asm_90c1  	and $1 @@ -489,7 +489,7 @@ asm_90da  	ld l, a  	ld a, [$ceaf]  	ld h, a -	call Func_0879 +	call HtimesL  	ld a, l  	add $1  	ld b, a @@ -753,7 +753,7 @@ Func_9326: ; 9326 (2:5326)  	call DisableExtRAM  	ld h, $3  	ld l, a -	call Func_0879 +	call HtimesL  	ld e, l  	inc e  	ld d, $2 diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm index 38a56cd..3ec9202 100755 --- a/src/engine/bank3.asm +++ b/src/engine/bank3.asm @@ -539,9 +539,9 @@ Func_c484: ; c484 (3:4484)  Func_c491: ; c491 (3:4491)  	ld a, [$d0b6] -	ld [$ff92], a +	ld [hSCX], a  	ld a, [$d0b7] -	ld [$ff93], a +	ld [hSCY], a  	ret  Func_c49c: ; c49c (3:449c) @@ -620,7 +620,7 @@ Func_c510: ; c510 (3:4510)  	call nz, Func_c6dc  	ret  .asm_c535 -	ld a, [$ff91] +	ld a, [hButtonsPressed]  	and $8  	call nz, Func_c74d  	ret @@ -684,7 +684,7 @@ Func_c58b: ; c58b (3:458b)  	ret  Func_c5ac: ; c5ac (3:45ac) -	ld a, [$ff90] +	ld a, [hButtonsHeld]  	and $f0  	jr z, .asm_c5bf  	call Func_c5cb @@ -693,7 +693,7 @@ Func_c5ac: ; c5ac (3:45ac)  	and $1  	jr nz, .asm_c5ca  .asm_c5bf -	ld a, [$ff91] +	ld a, [hButtonsPressed]  	and $1  	jr z, .asm_c5ca  	call Func_c71e @@ -802,7 +802,7 @@ Func_c66c: ; c66c (3:466c)  	push hl  	push bc  	ld c, $1 -	ld a, [$ff90] +	ld a, [hButtonsHeld]  	bit 1, a  	jr z, .asm_c67e  	ld a, [$d338] @@ -1002,8 +1002,8 @@ Func_c7b3: ; c7b3 (3:47b3)  Func_c7b8: ; c7b8 (3:47b8)  	xor a -	ld [$ff92], a -	ld [$ff93], a +	ld [hSCX], a +	ld [hSCY], a  	call Set_OBJ_8x16  	farcall Func_1288c  	farcall Func_8db0 @@ -1012,8 +1012,8 @@ Func_c7b8: ; c7b8 (3:47b8)  Func_c7cc: ; c7cc (3:47cc)  	xor a -	ld [$ff92], a -	ld [$ff93], a +	ld [hSCX], a +	ld [hSCY], a  	call Set_OBJ_8x16  	farcall Func_1288c  	farcall Func_a288 @@ -1395,8 +1395,8 @@ DeckMachine_d336: ; d336 (3:5336)  	call PlaySong  	call Func_04a2  	xor a -	ld [$ff92], a -	ld [$ff93], a +	ld [hSCX], a +	ld [hSCY], a  	farcall Func_1288c  	call EnableLCD  	pop bc diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm index f144aa6..48d2d33 100755 --- a/src/engine/bank4.asm +++ b/src/engine/bank4.asm @@ -228,7 +228,7 @@ Func_10e55: ; 10e55 (4:4e55)  	ret  Func_10e71: ; 10e71 (4:4e71) -	ld a, [$ff91] +	ld a, [hButtonsPressed]  	and $f0  	jr z, .asm_10e83  	farcall Func_c5d5 @@ -236,7 +236,7 @@ Func_10e71: ; 10e71 (4:4e71)  	call Func_10e97  	jr .asm_10e96  .asm_10e83 -	ld a, [$ff91] +	ld a, [hButtonsPressed]  	and $1  	jr z, .asm_10e96  	ld a, $2 diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm index 7622b0d..51e03d7 100755 --- a/src/engine/bank7.asm +++ b/src/engine/bank7.asm @@ -150,7 +150,7 @@ Func_1d078: ; 1d078 (7:5078)  	dec [hl]  	jr .asm_1d095  .asm_1d0b8 -	ld a, [$ff91] +	ld a, [hButtonsPressed]  	and $9  	jr z, .asm_1d095  	ld a, $2 diff --git a/src/engine/home.asm b/src/engine/home.asm index cd38f5a..084c6b8 100755 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -1197,7 +1197,8 @@ ClearExtRAMBank: ; 0863 (0:0863)  	pop af  	ret -Func_0879: ; 0879 (0:0879) +; returns h * l in hl	 +HtimesL:: ; 0879 (0:0879)  	push de  	ld a, h  	ld e, l @@ -2210,14 +2211,14 @@ Func_1ddb: ; 1ddb (0:1ddb)  Func_1deb: ; 1deb (0:1deb)  	push af -	ld a, [$ff92] +	ld a, [hSCX]  	rra  	rra  	rra  	and $1f  	add d  	ld d, a -	ld a, [$ff93] +	ld a, [hSCY]  	rra  	rra  	rra @@ -3115,9 +3116,9 @@ Func_256d: ; 256d (0:256d)  INCBIN "baserom.gbc",$2589,$2636 - $2589  Func_2636: ; 2636 (0:2636) -	ld [$cd10], a +	ld [wCurMenuItem], a  	ld [$ffb1], a -	ld de, $cd11 +	ld de, wCursorXPosition  	ld b, $8  .asm_2640  	ld a, [hli] @@ -3126,7 +3127,7 @@ Func_2636: ; 2636 (0:2636)  	dec b  	jr nz, .asm_2640  	xor a -	ld [$cd0f], a +	ld [wCursorBlinkCounter], a  	ret  Func_264b: ; 264b (0:264b) @@ -3136,15 +3137,15 @@ Func_264b: ; 264b (0:264b)  	or a  	jr z, .asm_2685  	ld b, a -	ld a, [$cd14] +	ld a, [wNumMenuItems]  	ld c, a -	ld a, [$cd10] +	ld a, [wCurMenuItem]  	bit 6, b  	jr z, .asm_266b  	dec a  	bit 7, a  	jr z, .asm_2674 -	ld a, [$cd14] +	ld a, [wNumMenuItems]  	dec a  	jr .asm_2674  .asm_266b @@ -3160,11 +3161,11 @@ Func_264b: ; 264b (0:264b)  	ld [$cd99], a  	call Func_26e9  	pop af -	ld [$cd10], a +	ld [wCurMenuItem], a  	xor a -	ld [$cd0f], a +	ld [wCursorBlinkCounter], a  .asm_2685 -	ld a, [$cd10] +	ld a, [wCurMenuItem]  	ld [$ffb1], a  	ld hl, $cd17  	ld a, [hli] @@ -3175,11 +3176,11 @@ Func_264b: ; 264b (0:264b)  	ld h, a  	ld a, [$ffb1]  	call CallF -	jr nc, asm_26d1 +	jr nc, HandleMenuInput  .asm_269b  	call Func_270b  	call Func_26c0 -	ld a, [$cd10] +	ld a, [wCurMenuItem]  	ld e, a  	ld a, [$ffb1]  	scf @@ -3187,10 +3188,10 @@ Func_264b: ; 264b (0:264b)  .asm_26a9  	ld a, [hButtonsPressed]  	and $3 -	jr z, asm_26d1 +	jr z, HandleMenuInput  	and $1  	jr nz, .asm_269b -	ld a, [$cd10] +	ld a, [wCurMenuItem]  	ld e, a  	ld a, $ff  	ld [$ffb1], a @@ -3211,32 +3212,34 @@ Func_26c0: ; 26c0 (0:26c0)  	call Func_3796  	pop af  	ret -asm_26d1 +	 +HandleMenuInput: ; 2d61 (0:2d61)  	ld a, [$cd99]  	or a -	jr z, Func_26da +	jr z, HandleTextBoxInput  	call Func_3796 - -Func_26da: ; 26da (0:26da) -	ld hl, $cd0f +;	fallthrough	 +HandleTextBoxInput: ; 26da (0:26da) +	ld hl, wCursorBlinkCounter  	ld a, [hl]  	inc [hl] +; blink the cursor every 16 frames  	and $f  	ret nz -	ld a, [$cd15] +	ld a, [wCursorTileNumber]  	bit 4, [hl]  	jr z, asm_26ec  Func_26e9: ; 26e9 (0:26e9) -	ld a, [$cd16] +	ld a, [wTileBehindCursor]  asm_26ec  	ld c, a -	ld a, [$cd13] +	ld a, [wYDisplacementBetweenMenuItems]  	ld l, a -	ld a, [$cd10] +	ld a, [wCurMenuItem]  	ld h, a -	call Func_0879 +	call HtimesL  	ld a, l -	ld hl, $cd11 +	ld hl, wCursorXPosition  	ld d, [hl]  	inc hl  	add [hl] @@ -3250,7 +3253,7 @@ asm_26ec  	ret  Func_270b: ; 270b (0:270b) -	ld a, [$cd15] +	ld a, [wCursorTileNumber]  	jr asm_26ec  ; 0x2710 @@ -3258,7 +3261,7 @@ INCBIN "baserom.gbc",$2710,$2a1a - $2710  Func_2a1a: ; 2a1a (0:2a1a)  	xor a -	ld hl, $cd10 +	ld hl, wCurMenuItem  	ld [hli], a  	ld [hl], d  	inc hl @@ -3271,7 +3274,7 @@ Func_2a1a: ; 2a1a (0:2a1a)  	ld [hl], b  	inc hl  	ld [hl], c -	ld [$cd0f], a +	ld [wCursorBlinkCounter], a  	ret  ; 0x2a30 @@ -3327,7 +3330,7 @@ Func_2aab: ; 2aab (0:2aab)  	call EnableLCD  .asm_2ab8  	call Func_053f -	call Func_26da +	call HandleTextBoxInput  	ld a, [hButtonsPressed]  	and $3  	jr z, .asm_2ab8 @@ -3353,12 +3356,12 @@ Func_2af0: ; 2af0 (0:2af0)  	ld bc, $0f00  	call Func_2a1a  	ld a, [$cd9a] -	ld [$cd10], a +	ld [wCurMenuItem], a  	call EnableLCD  	jr .asm_2b39  .asm_2b1f  	call Func_053f -	call Func_26da +	call HandleTextBoxInput  	ld a, [hButtonsPressed]  	bit 0, a  	jr nz, .asm_2b50 @@ -3371,19 +3374,19 @@ Func_2af0: ; 2af0 (0:2af0)  .asm_2b39  	ld a, [$cd98]  	ld c, a -	ld hl, $cd10 +	ld hl, wCurMenuItem  	ld a, [hl]  	xor $1  	ld [hl], a  	add a  	add a  	add c -	ld [$cd11], a +	ld [wCursorXPosition], a  	xor a -	ld [$cd0f], a +	ld [wCursorBlinkCounter], a  	jr .asm_2b1f  .asm_2b50 -	ld a, [$cd10] +	ld a, [wCurMenuItem]  	ld [$ffb1], a  	or a  	jr nz, .asm_2b5c @@ -3730,7 +3733,7 @@ Func_2e41: ; 2e41 (0:2e41)  .asm_2e56  	call Func_2cc8  .asm_2e59 -	ld a, [$ff90] +	ld a, [hButtonsHeld]  	ld b, a  	ld a, [$ce47]  	inc a @@ -3797,7 +3800,7 @@ LoadCardDataToRAM: ; 2f10 (0:2f10)  	call GetCardPointer  	pop de  	jr c, .done -	ld a, $c +	ld a, BANK(CardPointers)  	call BankpushHome2  	ld b, CARD_DATA_LENGTH  .copyCardDataLoop @@ -3836,7 +3839,7 @@ GetCardPointer: ; 2f7c (0:2f7c)  .nz  	ccf  	jr c, .outOfBounds -	ld a, $c +	ld a, BANK(CardPointers)  	call BankpushHome2  	ld a, [hli]  	ld h, [hl] @@ -4456,7 +4459,7 @@ Func_38a3: ; 38a3 (0:38a3)  	ld a, $ff  	ld [$d0c3], a  	ld a, $2 -	ld [$cc1a], a +	ld [wDuelTheme], a  	ld a, MUSIC_CARDPOP  	call PlaySong  	bank1call Func_758f diff --git a/src/wram.asm b/src/wram.asm index 83dea99..df993a9 100755 --- a/src/wram.asm +++ b/src/wram.asm @@ -140,7 +140,7 @@ wDuelTheme:: ; cc1a  ; wCardBuffer1 and wCardBuffer2 hold the data of a player's or opponent's card.  ; Can be data from a card on either side of the field or hand, or from a card in the bench, depending on the duel state.  ; Sometimes the two buffers even hold the same card's data. -wCardBuffer1:: ; c224 +wCardBuffer1:: ; cc24  	ds CARD_DATA_LENGTH  wCardBuffer2:: ; cc65 @@ -151,10 +151,38 @@ wCardBuffer2:: ; cc65  wCurrentMoveOrCardEffect:: ; ccb2  	ds $1  	ds $5a +	 +;--- Overworld --------------------------------------------  wUppercaseFlag:: ; cd0d  	ds $1 -	ds $114 +	ds $1 + +; Handles timing of (horizontal or vertical) arrow blinking while waiting for user input. +wCursorBlinkCounter:: ; cd0f +	ds $1 +	 +wCurMenuItem:: ; cd10 +	ds $1 + +wCursorXPosition:: ; cd11 +	ds $1 + +wCursorYPosition:: ; cd12 +	ds $1 +	 +wYDisplacementBetweenMenuItems:: ; cd13 +	ds $1 +	 +wNumMenuItems:: ; cd14 +	ds $1 +	 +wCursorTileNumber:: ; cd15 +	ds $1 +	 +wTileBehindCursor:: ; cd16 +	ds $1 +	ds $10b  ; During a duel, this is always $b after the first attack.  ; $b is the bank where the functions associated to card or effect commands are. | 
