diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2015-12-28 17:09:53 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-12-28 17:09:53 -0500 |
commit | a2a26682330b70629d68f1f159c9b139b237c5ae (patch) | |
tree | 5a8c461d29f16af2416cfb59e4b37694e3ce09af /engine/dummy_game.asm | |
parent | 57d4cb0edfd62ca403b1470c67ac4efbd761ec5a (diff) |
Dummy Game
Diffstat (limited to 'engine/dummy_game.asm')
-rwxr-xr-x | engine/dummy_game.asm | 493 |
1 files changed, 245 insertions, 248 deletions
diff --git a/engine/dummy_game.asm b/engine/dummy_game.asm index e10633c88..4e2e189da 100755 --- a/engine/dummy_game.asm +++ b/engine/dummy_game.asm @@ -1,12 +1,12 @@ _DummyGame: ; e1e5b (38:5e5b) - call Functione1e67 + call .LoadGFXAndPals call DelayFrame -.asm_e1e61 - call Functione1ebb - jr nc, .asm_e1e61 +.loop + call .JumptableLoop + jr nc, .loop ret -Functione1e67: ; e1e67 (38:5e67) +.LoadGFXAndPals call DisableLCD ld b, SCGB_08 call GetSGBLayout @@ -16,7 +16,7 @@ Functione1e67: ; e1e67 (38:5e67) call Decompress ld hl, Unknown_e00ed ld de, VTiles0 tile $00 - ld bc, $40 + ld bc, 4 tiles ld a, BANK(Unknown_e00ed) call FarCopyBytes ld a, $8 @@ -42,403 +42,397 @@ Functione1e67: ; e1e67 (38:5e67) call DmgToCgbObjPal0 ret -Functione1ebb: ; e1ebb (38:5ebb) +.JumptableLoop ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_e1ed0 - call Functione1ed2 + jr nz, .quit + call .ExecuteJumptable callab PlaySpriteAnimations call DelayFrame and a ret -.asm_e1ed0 + +.quit scf ret -Functione1ed2: ; e1ed2 (38:5ed2) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_e1ee1 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e1ee1 (38:5ee1) - -Jumptable_e1ee1: ; e1ee1 - dw Functione1ef3 - dw Functione1efb - dw Functione1f1c - dw Functione1f42 - dw Functione1f61 - dw Functione1f8b - dw Functione1fba - dw Functione1fcc - dw Functione2000 -; e1ef3 - -Functione1ef3: ; e1ef3 - call Functione2152 +.ExecuteJumptable + jumptable .Jumptable, wJumptableIndex + +.Jumptable + dw .RestartGame + dw .ResetBoard + dw .InitBoardTilemapAndCursorObject + dw .CheckTriesRemaining + dw .PickCard1 + dw .PickCard2 + dw .DelayPickAgain + dw .RevealAll + dw .AskPlayAgain + +.RestartGame + call DummyGame_InitStrings ld hl, wJumptableIndex inc [hl] ret -; e1efb -Functione1efb: ; e1efb +.ResetBoard call ret_e00ed - jr nc, .asm_e1f06 + jr nc, .proceed ld hl, wJumptableIndex set 7, [hl] ret -.asm_e1f06 - call Functione209d +.proceed + call DummyGame_InitBoard ld hl, wJumptableIndex inc [hl] xor a - ld [wc708], a - ld hl, wc703 + ld [wDummyGameCounter], a + ld hl, wDummyGameLastMatches rept 4 ld [hli], a endr ld [hl], a - ld [wc709], a - -Functione1f1c: ; e1f1c - ld hl, wc708 + ld [wDummyGameNumCardsMatched], a +.InitBoardTilemapAndCursorObject + ld hl, wDummyGameCounter ld a, [hl] - cp $2d - jr nc, .asm_e1f30 + cp 45 + jr nc, .spawn_object inc [hl] - call Functione2183 + call DummyGame_Card2Coord xor a - ld [wc6fd], a - call Functione2128 + ld [wDummyGameLastCardPicked], a + call DummyGame_PlaceCard ret -.asm_e1f30 - ld de, $341c - ld a, $c +.spawn_object + depixel 6, 3, 4, 4 + ld a, SPRITE_ANIM_INDEX_0C call _InitSpriteAnimStruct - ld a, $5 - ld [wc702], a + ld a, 5 + ld [wDummyGameNumberTriesRemaining], a ld hl, wJumptableIndex inc [hl] ret -; e1f42 -Functione1f42: ; e1f42 - ld a, [wc702] +.CheckTriesRemaining + ld a, [wDummyGameNumberTriesRemaining] hlcoord 17, 0 - add $f6 + add "0" ld [hl], a - ld hl, wc702 + ld hl, wDummyGameNumberTriesRemaining ld a, [hl] and a - jr nz, .asm_e1f58 + jr nz, .next_try ld a, $7 ld [wJumptableIndex], a ret -.asm_e1f58 +.next_try dec [hl] xor a ld [wcf64], a ld hl, wJumptableIndex inc [hl] - -Functione1f61: ; e1f61 +.PickCard1 ld a, [wcf64] and a ret z dec a ld e, a - ld d, $0 - ld hl, wc6d0 + ld d, 0 + ld hl, wDummyGameCards add hl, de ld a, [hl] - cp $ff + cp -1 ret z - ld [wc6fd], a - ld [wPlayerMinimized], a + ld [wDummyGameLastCardPicked], a + ld [wDummyGameCard1], a ld a, e - ld [EnemyScreens], a - call Functione2183 - call Functione2128 + ld [wDummyGameCard1Location], a + call DummyGame_Card2Coord + call DummyGame_PlaceCard xor a ld [wcf64], a ld hl, wJumptableIndex inc [hl] ret -; e1f8b -Functione1f8b: ; e1f8b +.PickCard2 ld a, [wcf64] and a ret z dec a - ld hl, EnemyScreens + ld hl, wDummyGameCard1Location cp [hl] ret z ld e, a - ld d, $0 - ld hl, wc6d0 + ld d, 0 + ld hl, wDummyGameCards add hl, de ld a, [hl] - cp $ff + cp -1 ret z - ld [wc6fd], a - ld [PlayerScreens], a + ld [wDummyGameLastCardPicked], a + ld [wDummyGameCard2], a ld a, e - ld [wc701], a - call Functione2183 - call Functione2128 - ld a, $40 - ld [wc708], a + ld [wDummyGameCard2Location], a + call DummyGame_Card2Coord + call DummyGame_PlaceCard + ld a, 64 + ld [wDummyGameCounter], a ld hl, wJumptableIndex inc [hl] - -Functione1fba: ; e1fba - ld hl, wc708 +.DelayPickAgain + ld hl, wDummyGameCounter ld a, [hl] and a - jr z, .asm_e1fc3 + jr z, .PickAgain dec [hl] ret -.asm_e1fc3 - call Functione2010 +.PickAgain + call DummyGame_CheckMatch ld a, $3 ld [wJumptableIndex], a ret -; e1fcc -Functione1fcc: ; e1fcc +.RevealAll ld a, [hJoypadPressed] and A_BUTTON ret z xor a - ld [wc708], a -.asm_e1fd5 - ld hl, wc708 + ld [wDummyGameCounter], a +.RevelationLoop + ld hl, wDummyGameCounter ld a, [hl] - cp $2d - jr nc, .asm_e1ff9 + cp 45 + jr nc, .finish_round inc [hl] push af - call Functione2183 + call DummyGame_Card2Coord pop af push hl ld e, a ld d, $0 - ld hl, wc6d0 + ld hl, wDummyGameCards add hl, de ld a, [hl] pop hl - cp $ff - jr z, .asm_e1fd5 - ld [wc6fd], a - call Functione2128 - jr .asm_e1fd5 + cp -1 + jr z, .RevelationLoop + ld [wDummyGameLastCardPicked], a + call DummyGame_PlaceCard + jr .RevelationLoop -.asm_e1ff9 +.finish_round call WaitPressAorB_BlinkCursor ld hl, wJumptableIndex inc [hl] - -Functione2000: ; e2000 +.AskPlayAgain call ret_e00ed - jr nc, .asm_e200b + jr nc, .restart ld hl, wJumptableIndex set 7, [hl] ret -.asm_e200b +.restart xor a ld [wJumptableIndex], a ret + ; e2010 -Functione2010: ; e2010 - ld hl, wPlayerMinimized +DummyGame_CheckMatch: ; e2010 + ld hl, wDummyGameCard1 ld a, [hli] cp [hl] - jr nz, .asm_e2066 - ld a, [EnemyScreens] - call Functione2183 - call Functione2142 - ld a, [wc701] - call Functione2183 - call Functione2142 - ld a, [EnemyScreens] + jr nz, .no_match + + ld a, [wDummyGameCard1Location] + call DummyGame_Card2Coord + call DummyGame_DeleteCard + + ld a, [wDummyGameCard2Location] + call DummyGame_Card2Coord + call DummyGame_DeleteCard + + ld a, [wDummyGameCard1Location] ld e, a ld d, $0 - ld hl, wc6d0 + ld hl, wDummyGameCards add hl, de - ld [hl], $ff - ld a, [wc701] + ld [hl], -1 + + ld a, [wDummyGameCard2Location] ld e, a - ld d, $0 - ld hl, wc6d0 + ld d, 0 + ld hl, wDummyGameCards add hl, de - ld [hl], $ff - ld hl, wc703 -.asm_e2044 + ld [hl], -1 + + ld hl, wDummyGameLastMatches +.find_empty_slot ld a, [hli] and a - jr nz, .asm_e2044 + jr nz, .find_empty_slot dec hl - ld a, [wPlayerMinimized] + ld a, [wDummyGameCard1] ld [hl], a - ld [wc6fd], a - ld hl, wc709 + ld [wDummyGameLastCardPicked], a + ld hl, wDummyGameNumCardsMatched ld e, [hl] -rept 2 inc [hl] -endr - ld d, $0 + inc [hl] + ld d, 0 hlcoord 5, 0 add hl, de - call Functione2128 - ld hl, UnknownText_0xe2083 + call DummyGame_PlaceCard + ld hl, .VictoryText call PrintText ret -.asm_e2066 +.no_match xor a - ld [wc6fd], a - ld a, [EnemyScreens] - call Functione2183 - call Functione2128 - ld a, [wc701] - call Functione2183 - call Functione2128 - ld hl, UnknownText_0xe2098 + ld [wDummyGameLastCardPicked], a + + ld a, [wDummyGameCard1Location] + call DummyGame_Card2Coord + call DummyGame_PlaceCard + + ld a, [wDummyGameCard2Location] + call DummyGame_Card2Coord + call DummyGame_PlaceCard + + ld hl, DummyGameText_Darn call PrintText ret -; e2083 -UnknownText_0xe2083: ; 0xe2083 +.VictoryText start_asm -; 0xe2084 - -Functione2084: ; e2084 push bc hlcoord 2, 13 - call Functione2128 - ld hl, UnknownText_0xe2093 + call DummyGame_PlaceCard + ld hl, DummyGameText_Yeah pop bc -rept 3 inc bc -endr + inc bc + inc bc ret + ; e2093 -UnknownText_0xe2093: ; 0xe2093 +DummyGameText_Yeah: ; 0xe2093 ; , yeah! text_jump UnknownText_0x1c1a5b db "@" ; 0xe2098 -UnknownText_0xe2098: ; 0xe2098 +DummyGameText_Darn: ; 0xe2098 ; Darn… text_jump UnknownText_0x1c1a65 db "@" ; 0xe209d -Functione209d: ; e209d - ld hl, wc6d0 - ld bc, $2d +DummyGame_InitBoard: ; e209d + ld hl, wDummyGameCards + ld bc, wDummyGameCardsEnd - wDummyGameCards xor a call ByteFill - call Functione2101 - ld c, $2 + call DummyGame_GetDistributionOfTiles + + ld c, 2 ld b, [hl] - call Functione20e5 - ld c, $8 + call DummyGame_SampleTilePlacement + + ld c, 8 ld b, [hl] - call Functione20e5 - ld c, $4 + call DummyGame_SampleTilePlacement + + ld c, 4 ld b, [hl] - call Functione20e5 - ld c, $7 + call DummyGame_SampleTilePlacement + + ld c, 7 ld b, [hl] - call Functione20e5 - ld c, $3 + call DummyGame_SampleTilePlacement + + ld c, 3 ld b, [hl] - call Functione20e5 - ld c, $6 + call DummyGame_SampleTilePlacement + + ld c, 6 ld b, [hl] - call Functione20e5 - ld c, $1 + call DummyGame_SampleTilePlacement + + ld c, 1 ld b, [hl] - call Functione20e5 - ld c, $5 - ld hl, wc6d0 - ld b, $2d -.asm_e20db + call DummyGame_SampleTilePlacement + + ld c, 5 + ld hl, wDummyGameCards + ld b, wDummyGameCardsEnd - wDummyGameCards +.loop ld a, [hl] and a - jr nz, .asm_e20e0 + jr nz, .no_load ld [hl], c - -.asm_e20e0 +.no_load inc hl dec b - jr nz, .asm_e20db + jr nz, .loop ret + ; e20e5 -Functione20e5: ; e20e5 +DummyGame_SampleTilePlacement: ; e20e5 push hl - ld de, wc6d0 -.asm_e20e9 + ld de, wDummyGameCards +.loop call Random - and $3f - cp $2d - jr nc, .asm_e20e9 + and %00111111 + cp 45 + jr nc, .loop ld l, a - ld h, $0 + ld h, 0 add hl, de ld a, [hl] and a - jr nz, .asm_e20e9 + jr nz, .loop ld [hl], c dec b - jr nz, .asm_e20e9 + jr nz, .loop pop hl inc hl ret + ; e2101 -Functione2101: ; e2101 +DummyGame_GetDistributionOfTiles: ; e2101 ld a, [wMenuCursorY] dec a ld l, a ld h, 0 -rept 3 add hl, hl -endr - ld de, Unknown_e2110 + add hl, hl + add hl, hl + ld de, .distributions add hl, de ret -; e2110 -Unknown_e2110: ; e2110 +.distributions db $02, $03, $06, $06, $06, $08, $08, $06 db $02, $02, $04, $06, $06, $08, $08, $09 db $02, $02, $02, $04, $07, $08, $08, $0c ; e2128 -Functione2128: ; e2128 - ld a, [wc6fd] +DummyGame_PlaceCard: ; e2128 + ld a, [wDummyGameLastCardPicked] sla a sla a - add $4 + add 4 ld [hli], a inc a ld [hld], a @@ -451,9 +445,10 @@ Functione2128: ; e2128 ld c, 3 call DelayFrames ret + ; e2142 -Functione2142: ; e2142 +DummyGame_DeleteCard: ; e2142 ld a, $1 ld [hli], a ld [hld], a @@ -464,60 +459,61 @@ Functione2142: ; e2142 ld c, 3 call DelayFrames ret + ; e2152 -Functione2152: ; e2152 +DummyGame_InitStrings: ; e2152 hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, $1 call ByteFill hlcoord 0, 0 - ld de, String_e2177 + ld de, .japstr1 call PlaceString hlcoord 15, 0 - ld de, String_e217d + ld de, .japstr2 call PlaceString - ld hl, UnknownText_0xe2176 + ld hl, .dummy_text call PrintText ret -; e2176 -UnknownText_0xe2176: ; 0xe2176 +.dummy_text db "@" -; 0xe2177 - -String_e2177: db "とったもの@" -String_e217d: db "あと かい@" +.japstr1 + db "とったもの@" +.japstr2 + db "あと かい@" ; e2183 -Functione2183: ; e2183 - ld d, $0 -.asm_e2185 - sub $9 - jr c, .asm_e218c +DummyGame_Card2Coord: ; e2183 + ld d, 0 +.find_row + sub 9 + jr c, .found_row inc d - jr .asm_e2185 + jr .find_row -.asm_e218c - add $9 +.found_row + add 9 ld e, a hlcoord 1, 2 - ld bc, $28 -.asm_e2195 + ld bc, 2 * SCREEN_WIDTH +.loop2 ld a, d and a - jr z, .asm_e219d + jr z, .done add hl, bc dec d - jr .asm_e2195 + jr .loop2 -.asm_e219d +.done sla e add hl, de ret + ; e21a1 -Functione21a1: ; e21a1 (38:61a1) +DummyGame_InterpretJoypad_AnimateCursor: ; e21a1 (38:61a1) ld a, [wJumptableIndex] cp $7 jr nc, .quit @@ -541,13 +537,13 @@ Functione21a1: ; e21a1 (38:61a1) ret .quit - ld hl, 0 + ld hl, SPRITEANIMSTRUCT_INDEX add hl, bc ld [hl], $0 ret .pressed_a - ld hl, $c + ld hl, SPRITEANIMSTRUCT_0C add hl, bc ld a, [hl] inc a @@ -555,60 +551,61 @@ Functione21a1: ; e21a1 (38:61a1) ret .pressed_left - ld hl, $6 + ld hl, SPRITEANIMSTRUCT_XOFFSET add hl, bc ld a, [hl] and a ret z - sub $10 + sub 1 tiles ld [hl], a - ld hl, $c + ld hl, SPRITEANIMSTRUCT_0C add hl, bc dec [hl] ret .pressed_right - ld hl, $6 + ld hl, SPRITEANIMSTRUCT_XOFFSET add hl, bc ld a, [hl] - cp $80 + cp (9 - 1) tiles ret z - add $10 + add 1 tiles ld [hl], a - ld hl, $c + ld hl, SPRITEANIMSTRUCT_0C add hl, bc inc [hl] ret .pressed_up - ld hl, $7 + ld hl, SPRITEANIMSTRUCT_YOFFSET add hl, bc ld a, [hl] and a ret z - sub $10 + sub 1 tiles ld [hl], a - ld hl, $c + ld hl, SPRITEANIMSTRUCT_0C add hl, bc ld a, [hl] - sub $9 + sub 9 ld [hl], a ret .pressed_down - ld hl, $7 + ld hl, SPRITEANIMSTRUCT_YOFFSET add hl, bc ld a, [hl] - cp $40 + cp (5 - 1) tiles ret z - add $10 + add 1 tiles ld [hl], a - ld hl, $c + ld hl, SPRITEANIMSTRUCT_0C add hl, bc ld a, [hl] - add $9 + add 9 ld [hl], a ret + ; e2221 (38:6221) LZ_e2221: ; e2221 |