2023-10-21 15:28:38 +00:00
|
|
|
; DMGTRIS
|
|
|
|
; Copyright (C) 2023 - Randy Thiemann <randy.thiemann@gmail.com>
|
|
|
|
|
|
|
|
; This program is free software: you can redistribute it and/or modify
|
|
|
|
; it under the terms of the GNU General Public License as published by
|
|
|
|
; the Free Software Foundation, either version 3 of the License, or
|
|
|
|
; (at your option) any later version.
|
|
|
|
|
|
|
|
; This program is distributed in the hope that it will be useful,
|
|
|
|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
; GNU General Public License for more details.
|
|
|
|
|
|
|
|
; You should have received a copy of the GNU General Public License
|
|
|
|
; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
|
2023-10-13 06:37:21 +00:00
|
|
|
IF !DEF(SPRITES_ASM)
|
|
|
|
DEF SPRITES_ASM EQU 1
|
|
|
|
|
|
|
|
|
2023-10-16 05:47:11 +00:00
|
|
|
INCLUDE "globals.asm"
|
|
|
|
|
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
SECTION "Shadow OAM", WRAM0, ALIGN[8]
|
|
|
|
UNION
|
|
|
|
wShadowOAM:: ds 160
|
|
|
|
NEXTU
|
|
|
|
wSPRNext1:: ds 4
|
|
|
|
wSPRNext2:: ds 4
|
|
|
|
wSPRNext3:: ds 4
|
|
|
|
wSPRNext4:: ds 4
|
2023-10-26 12:29:06 +00:00
|
|
|
wUnused0:: ds 4
|
|
|
|
wUnused1:: ds 4
|
2023-10-11 06:18:12 +00:00
|
|
|
wSPRHold1:: ds 4
|
|
|
|
wSPRHold2:: ds 4
|
|
|
|
wSPRHold3:: ds 4
|
|
|
|
wSPRHold4:: ds 4
|
2023-10-26 12:29:06 +00:00
|
|
|
wUnused2:: ds 4
|
|
|
|
wUnused3:: ds 4
|
2023-10-11 06:18:12 +00:00
|
|
|
wSPRScore1:: ds 4
|
|
|
|
wSPRScore2:: ds 4
|
|
|
|
wSPRScore3:: ds 4
|
|
|
|
wSPRScore4:: ds 4
|
|
|
|
wSPRScore5:: ds 4
|
|
|
|
wSPRScore6:: ds 4
|
2023-10-26 12:29:06 +00:00
|
|
|
wUnused4:: ds 4
|
|
|
|
wUnused5:: ds 4
|
2023-10-11 06:18:12 +00:00
|
|
|
wSPRCLevel1:: ds 4
|
|
|
|
wSPRCLevel2:: ds 4
|
|
|
|
wSPRCLevel3:: ds 4
|
|
|
|
wSPRCLevel4:: ds 4
|
2023-10-26 12:29:06 +00:00
|
|
|
wUnused6:: ds 4
|
|
|
|
wUnused7:: ds 4
|
2023-10-11 06:18:12 +00:00
|
|
|
wSPRNLevel1:: ds 4
|
|
|
|
wSPRNLevel2:: ds 4
|
|
|
|
wSPRNLevel3:: ds 4
|
|
|
|
wSPRNLevel4:: ds 4
|
2023-10-26 12:29:06 +00:00
|
|
|
wUnused8:: ds 4
|
|
|
|
wUnused9:: ds 4
|
2023-10-26 14:34:04 +00:00
|
|
|
wSPRQueue1A:: ds 4
|
|
|
|
wSPRQueue1B:: ds 4
|
|
|
|
wSPRQueue2A:: ds 4
|
|
|
|
wSPRQueue2B:: ds 4
|
2023-10-26 12:29:06 +00:00
|
|
|
wSPRModeRNG:: ds 4
|
|
|
|
wSPRModeRot:: ds 4
|
|
|
|
wSPRModeDrop:: ds 4
|
|
|
|
wSPRModeHiG:: ds 4
|
2023-10-11 06:18:12 +00:00
|
|
|
ENDU
|
|
|
|
|
|
|
|
|
|
|
|
SECTION "OAM DMA Code", ROM0
|
|
|
|
OAMDMA::
|
|
|
|
LOAD "OAM DMA", HRAM
|
|
|
|
hOAMDMA::
|
2023-10-18 02:03:05 +00:00
|
|
|
; Start OAM DMA transfer.
|
2023-10-11 06:18:12 +00:00
|
|
|
ld a, HIGH(wShadowOAM)
|
|
|
|
ldh [rDMA], a
|
2023-10-18 02:03:05 +00:00
|
|
|
|
|
|
|
; Wait for it to complete...
|
2023-10-11 06:18:12 +00:00
|
|
|
ld a, 40
|
|
|
|
: dec a
|
|
|
|
jr nz, :-
|
2023-10-18 02:03:05 +00:00
|
|
|
|
2023-10-26 06:24:05 +00:00
|
|
|
; Return
|
|
|
|
ret
|
2023-10-11 06:18:12 +00:00
|
|
|
ENDL
|
|
|
|
OAMDMAEnd::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SECTION "OAM Functions", ROM0
|
|
|
|
CopyOAMHandler::
|
|
|
|
ld de, OAMDMA
|
|
|
|
ld hl, hOAMDMA
|
|
|
|
ld bc, OAMDMAEnd - OAMDMA
|
|
|
|
call UnsafeMemCopy
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
ClearOAM::
|
|
|
|
ld hl, _OAMRAM
|
|
|
|
ld bc, $9F
|
|
|
|
ld d, 0
|
2023-10-26 08:44:00 +00:00
|
|
|
call SafeMemSet
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wShadowOAM
|
|
|
|
ld bc, $9F
|
|
|
|
ld d, 0
|
2023-10-26 08:44:00 +00:00
|
|
|
call SafeMemSet
|
2023-10-11 06:18:12 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SECTION "Domain Specific Functions", ROM0
|
2023-10-26 12:29:06 +00:00
|
|
|
ApplyTells::
|
|
|
|
ld a, TELLS_BASE_Y
|
|
|
|
ld [wSPRModeRNG], a
|
|
|
|
add a, TELLS_Y_DIST
|
|
|
|
ld [wSPRModeRot], a
|
|
|
|
add a, TELLS_Y_DIST
|
|
|
|
ld [wSPRModeDrop], a
|
|
|
|
add a, TELLS_Y_DIST
|
|
|
|
ld [wSPRModeHiG], a
|
|
|
|
|
|
|
|
ld a, TELLS_BASE_X
|
|
|
|
ld [wSPRModeRNG+1], a
|
|
|
|
ld [wSPRModeRot+1], a
|
|
|
|
ld [wSPRModeDrop+1], a
|
|
|
|
ld [wSPRModeHiG+1], a
|
|
|
|
|
|
|
|
ld a, [wRNGModeState]
|
|
|
|
add a, TILE_RNG_MODE_BASE
|
|
|
|
ld [wSPRModeRNG+2], a
|
|
|
|
|
|
|
|
ld a, [wRotModeState]
|
|
|
|
add a, TILE_ROT_MODE_BASE
|
|
|
|
ld [wSPRModeRot+2], a
|
|
|
|
|
|
|
|
ld a, [wDropModeState]
|
|
|
|
add a, TILE_DROP_MODE_BASE
|
|
|
|
ld [wSPRModeDrop+2], a
|
|
|
|
|
|
|
|
ld a, [wAlways20GState]
|
|
|
|
add a, TILE_HIG_MODE_BASE
|
|
|
|
ld [wSPRModeHiG+2], a
|
|
|
|
|
|
|
|
ld a, 1
|
|
|
|
ld [wSPRModeRNG+3], a
|
|
|
|
ld a, 3
|
|
|
|
ld [wSPRModeRot+3], a
|
|
|
|
ld a, 4
|
|
|
|
ld [wSPRModeDrop+3], a
|
|
|
|
ld a, 0
|
|
|
|
ld [wSPRModeHiG+3], a
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
; Index of next piece in A.
|
|
|
|
ApplyNext::
|
2023-10-24 07:04:39 +00:00
|
|
|
; Correct color
|
|
|
|
ld [wSPRNext1+3], a
|
|
|
|
ld [wSPRNext2+3], a
|
|
|
|
ld [wSPRNext3+3], a
|
|
|
|
ld [wSPRNext4+3], a
|
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
; Correct tile
|
|
|
|
add a, TILE_PIECE_0
|
2023-10-26 12:29:06 +00:00
|
|
|
add a, 7
|
2023-10-11 06:18:12 +00:00
|
|
|
ld [wSPRNext1+2], a
|
|
|
|
ld [wSPRNext2+2], a
|
|
|
|
ld [wSPRNext3+2], a
|
|
|
|
ld [wSPRNext4+2], a
|
|
|
|
sub a, TILE_PIECE_0
|
2023-10-26 12:29:06 +00:00
|
|
|
sub a, 7
|
2023-10-11 06:18:12 +00:00
|
|
|
|
|
|
|
; X positions
|
|
|
|
ld hl, sPieceXOffsets
|
|
|
|
ld de, sPieceYOffsets
|
|
|
|
cp 0
|
2023-10-13 06:37:21 +00:00
|
|
|
jr z, .skipoffn
|
2023-10-11 06:18:12 +00:00
|
|
|
.getoffn
|
|
|
|
inc hl
|
2023-10-13 06:37:21 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
inc de
|
|
|
|
inc de
|
|
|
|
inc de
|
2023-10-11 06:18:12 +00:00
|
|
|
inc de
|
|
|
|
dec a
|
2023-10-13 06:37:21 +00:00
|
|
|
jr nz, .getoffn
|
2023-10-11 06:18:12 +00:00
|
|
|
.skipoffn
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, NEXT_BASE_X
|
|
|
|
ld [wSPRNext1+1], a
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, NEXT_BASE_X
|
|
|
|
ld [wSPRNext2+1], a
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, NEXT_BASE_X
|
|
|
|
ld [wSPRNext3+1], a
|
|
|
|
ld a, [hl]
|
|
|
|
add a, NEXT_BASE_X
|
|
|
|
ld [wSPRNext4+1], a
|
|
|
|
|
|
|
|
; Y positions
|
|
|
|
ld h, d
|
|
|
|
ld l, e
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, NEXT_BASE_Y
|
|
|
|
ld [wSPRNext1+0], a
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, NEXT_BASE_Y
|
|
|
|
ld [wSPRNext2+0], a
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, NEXT_BASE_Y
|
|
|
|
ld [wSPRNext3+0], a
|
|
|
|
ld a, [hl]
|
|
|
|
add a, NEXT_BASE_Y
|
|
|
|
ld [wSPRNext4+0], a
|
2023-10-26 13:58:08 +00:00
|
|
|
|
|
|
|
|
|
|
|
; Queue
|
|
|
|
ld a, QUEUE_BASE_Y
|
2023-10-26 14:34:04 +00:00
|
|
|
ld [wSPRQueue1A], a
|
|
|
|
ld [wSPRQueue1B], a
|
2023-10-26 13:58:08 +00:00
|
|
|
add a, 9
|
2023-10-26 14:34:04 +00:00
|
|
|
ld [wSPRQueue2A], a
|
|
|
|
ld [wSPRQueue2B], a
|
2023-10-26 13:58:08 +00:00
|
|
|
|
|
|
|
ld a, QUEUE_BASE_X
|
2023-10-26 14:34:04 +00:00
|
|
|
ld [wSPRQueue1A+1], a
|
|
|
|
ld [wSPRQueue2A+1], a
|
|
|
|
add a, 8
|
|
|
|
ld [wSPRQueue1B+1], a
|
|
|
|
ld [wSPRQueue2B+1], a
|
2023-10-26 13:58:08 +00:00
|
|
|
|
|
|
|
ldh a, [hUpcomingPiece1]
|
2023-10-26 14:34:04 +00:00
|
|
|
ld [wSPRQueue1A+3], a
|
|
|
|
ld [wSPRQueue1B+3], a
|
|
|
|
sla a
|
2023-10-26 13:58:08 +00:00
|
|
|
add a, TILE_PIECE_SMALL_0
|
2023-10-26 14:34:04 +00:00
|
|
|
ld [wSPRQueue1A+2], a
|
|
|
|
inc a
|
|
|
|
ld [wSPRQueue1B+2], a
|
|
|
|
|
2023-10-26 13:58:08 +00:00
|
|
|
ldh a, [hUpcomingPiece2]
|
2023-10-26 14:34:04 +00:00
|
|
|
ld [wSPRQueue2A+3], a
|
|
|
|
ld [wSPRQueue2B+3], a
|
|
|
|
sla a
|
2023-10-26 13:58:08 +00:00
|
|
|
add a, TILE_PIECE_SMALL_0
|
2023-10-26 14:34:04 +00:00
|
|
|
ld [wSPRQueue2A+2], a
|
|
|
|
inc a
|
|
|
|
ld [wSPRQueue2B+2], a
|
2023-10-11 06:18:12 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
; Index of hold piece in A.
|
|
|
|
ApplyHold::
|
|
|
|
cp 255
|
2023-10-13 09:26:40 +00:00
|
|
|
jr nz, .doApplyHold
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRHold1
|
|
|
|
ld bc, 16
|
|
|
|
ld d, 0
|
|
|
|
call UnsafeMemSet
|
|
|
|
ret
|
|
|
|
|
|
|
|
.doApplyHold
|
2023-10-24 07:04:39 +00:00
|
|
|
; Correct color
|
|
|
|
ld [wSPRHold1+3], a
|
|
|
|
ld [wSPRHold2+3], a
|
|
|
|
ld [wSPRHold3+3], a
|
|
|
|
ld [wSPRHold4+3], a
|
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
; Correct tile
|
2023-10-26 12:29:06 +00:00
|
|
|
ld b, a
|
|
|
|
ld a, [wInitialA]
|
|
|
|
cp a, $11
|
|
|
|
ld a, b
|
|
|
|
jr z, .show
|
|
|
|
ldh a, [hEvenFrame]
|
|
|
|
cp a, 0
|
|
|
|
ld a, b
|
|
|
|
jr z, .show
|
|
|
|
|
|
|
|
|
|
|
|
.hide
|
|
|
|
ld b, a
|
|
|
|
ld a, TILE_BLANK
|
|
|
|
ld [wSPRHold1+2], a
|
|
|
|
ld [wSPRHold2+2], a
|
|
|
|
ld [wSPRHold3+2], a
|
|
|
|
ld [wSPRHold4+2], a
|
|
|
|
ld a, b
|
|
|
|
jr .x
|
|
|
|
|
|
|
|
.show
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, TILE_PIECE_0
|
|
|
|
ld [wSPRHold1+2], a
|
|
|
|
ld [wSPRHold2+2], a
|
|
|
|
ld [wSPRHold3+2], a
|
|
|
|
ld [wSPRHold4+2], a
|
|
|
|
sub a, TILE_PIECE_0
|
|
|
|
|
|
|
|
; X positions
|
2023-10-26 12:29:06 +00:00
|
|
|
.x
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, sPieceXOffsets
|
|
|
|
ld de, sPieceYOffsets
|
|
|
|
cp 0
|
2023-10-13 06:37:21 +00:00
|
|
|
jr z, .skipoffh
|
2023-10-11 06:18:12 +00:00
|
|
|
.getoffh
|
|
|
|
inc hl
|
2023-10-13 06:37:21 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
inc de
|
|
|
|
inc de
|
|
|
|
inc de
|
2023-10-11 06:18:12 +00:00
|
|
|
inc de
|
|
|
|
dec a
|
2023-10-13 06:37:21 +00:00
|
|
|
jr nz, .getoffh
|
2023-10-11 06:18:12 +00:00
|
|
|
.skipoffh
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, HOLD_BASE_X
|
|
|
|
ld [wSPRHold1+1], a
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, HOLD_BASE_X
|
|
|
|
ld [wSPRHold2+1], a
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, HOLD_BASE_X
|
|
|
|
ld [wSPRHold3+1], a
|
|
|
|
ld a, [hl]
|
|
|
|
add a, HOLD_BASE_X
|
|
|
|
ld [wSPRHold4+1], a
|
|
|
|
|
|
|
|
; Y positions
|
|
|
|
ld h, d
|
|
|
|
ld l, e
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, HOLD_BASE_Y
|
|
|
|
ld [wSPRHold1+0], a
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, HOLD_BASE_Y
|
|
|
|
ld [wSPRHold2+0], a
|
|
|
|
ld a, [hl+]
|
|
|
|
add a, HOLD_BASE_Y
|
|
|
|
ld [wSPRHold3+0], a
|
|
|
|
ld a, [hl]
|
|
|
|
add a, HOLD_BASE_Y
|
|
|
|
ld [wSPRHold4+0], a
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
; Address of first sprite in hl.
|
|
|
|
; Address of first digit in de.
|
|
|
|
ApplyNumbers::
|
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld bc, 4
|
|
|
|
|
|
|
|
ld a, [de]
|
|
|
|
add a, TILE_0
|
|
|
|
ld [hl], a
|
|
|
|
add hl, bc
|
|
|
|
inc de
|
|
|
|
|
|
|
|
ld a, [de]
|
|
|
|
add a, TILE_0
|
|
|
|
ld [hl], a
|
|
|
|
add hl, bc
|
|
|
|
inc de
|
|
|
|
|
|
|
|
ld a, [de]
|
|
|
|
add a, TILE_0
|
|
|
|
ld [hl], a
|
|
|
|
add hl, bc
|
|
|
|
inc de
|
|
|
|
|
|
|
|
ld a, [de]
|
|
|
|
add a, TILE_0
|
|
|
|
ld [hl], a
|
|
|
|
add hl, bc
|
|
|
|
inc de
|
|
|
|
|
|
|
|
ld a, [de]
|
|
|
|
add a, TILE_0
|
|
|
|
ld [hl], a
|
|
|
|
add hl, bc
|
|
|
|
inc de
|
|
|
|
|
|
|
|
ld a, [de]
|
|
|
|
add a, TILE_0
|
|
|
|
ld [hl], a
|
|
|
|
add hl, bc
|
|
|
|
inc de
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
SetNumberSpritePositions::
|
2023-10-16 05:47:11 +00:00
|
|
|
ld a, SCORE_BASE_X
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRScore1
|
|
|
|
ld [hl], SCORE_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRScore2
|
|
|
|
ld [hl], SCORE_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRScore3
|
|
|
|
ld [hl], SCORE_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRScore4
|
|
|
|
ld [hl], SCORE_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRScore5
|
|
|
|
ld [hl], SCORE_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRScore6
|
|
|
|
ld [hl], SCORE_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
|
2023-10-16 05:47:11 +00:00
|
|
|
ld a, LEVEL_BASE_X
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRCLevel1
|
|
|
|
ld [hl], CLEVEL_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRCLevel2
|
|
|
|
ld [hl], CLEVEL_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRCLevel3
|
|
|
|
ld [hl], CLEVEL_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRCLevel4
|
|
|
|
ld [hl], CLEVEL_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
|
2023-10-16 05:47:11 +00:00
|
|
|
ld a, LEVEL_BASE_X
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRNLevel1
|
|
|
|
ld [hl], NLEVEL_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRNLevel2
|
|
|
|
ld [hl], NLEVEL_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRNLevel3
|
|
|
|
ld [hl], NLEVEL_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld b, a
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
|
|
|
ld a, b
|
2023-10-11 06:18:12 +00:00
|
|
|
add a, 8
|
2023-10-13 09:20:28 +00:00
|
|
|
|
2023-10-11 06:18:12 +00:00
|
|
|
ld hl, wSPRNLevel4
|
|
|
|
ld [hl], NLEVEL_BASE_Y
|
|
|
|
inc hl
|
|
|
|
ld [hl], a
|
2023-10-13 09:20:28 +00:00
|
|
|
inc hl
|
|
|
|
inc hl
|
2023-10-24 07:04:39 +00:00
|
|
|
ld a, OAMF_PAL1 | $07
|
2023-10-13 09:20:28 +00:00
|
|
|
ld [hl], a
|
2023-10-11 06:18:12 +00:00
|
|
|
ret
|
2023-10-13 06:37:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
ENDC
|