Files
alttpr-baserom/hashalphabet.asm
2024-04-09 13:24:54 -05:00

191 lines
7.1 KiB
NASM

;--------------------------------------------------------------------------------
; Hash Alphabet
; ALPHA_BOW = $0000
; ALPHA_BOOM = $0001
; ALPHA_HOOK = $0002
; ALPHA_BOMB = $0003
; ALPHA_SHROOM = $0004
; ALPHA_POWDER = $0005
; ALPHA_ROD = $0006
; ALPHA_PENDANT = $0007
; ALPHA_BOMBOS = $0008
; ALPHA_ETHER = $0009
; ALPHA_QUAKE = $000A
; ALPHA_LAMP = $000B
; ALPHA_HAMMER = $000C
; ALPHA_SHOVEL = $000D
; ALPHA_FLUTE = $000E
; ALPHA_NET = $000F
; ALPHA_BOOK = $0010
; ALPHA_BOTTLE = $0011
; ALPHA_POTION = $0012
; ALPHA_CANE = $0013
; ALPHA_CAPE = $0014
; ALPHA_MIRROR = $0015
; ALPHA_BOOTS = $0016
; ALPHA_GLOVES = $0017
; ALPHA_FLIPPERS = $0018
; ALPHA_PEARL = $0019
; ALPHA_SHIELD = $001A
; ALPHA_TUNIC = $001B
; ALPHA_HEART = $001C
; ALPHA_MAP = $001D
; ALPHA_COMPASS = $001E
; ALPHA_KEY = $001F
;--------------------------------------------------------------------------------
;--------------------------------------------------------------------------------
LoadAlphabetTilemap:
PHB : PHA : PHX : PHY : PHP
PHK : PLB
SEP #$10 ; 8-bit index registers
REP #$20 ; 16-bit accumulator
LDX.b #$00 : -
LDA.w FileSelect_PlayerSelectText_Top, X
STA.l BigRAM, X
INX #2
CPX.b #128 : !BLT -
LDY.b #00
LDX.b #$00 : -
PHX : TYX : LDA.l SeedHash, X : PLX
AND.w #$001F ; mask to alphabet of 32
ASL #3 : PHY : TAY
LDA.w HashAlphabetTiles,Y : STA.l BigRAM+24, X
LDA.w HashAlphabetTiles+2,Y : STA.l BigRAM+24+2, X
LDA.w HashAlphabetTiles+4,Y : STA.l BigRAM+24+64, X
LDA.w HashAlphabetTiles+6,Y : STA.l BigRAM+24+64+2, X
PLY : INX #6 : INY
CPX.b #25 : !BLT -
SEP #$20 ; 8-bit accumulator
JSR DMAAlphabetTilemap
PLP : PLY : PLX : PLA : PLB
RTL
;--------------------------------------------------------------------------------
; DMAAlphabetTilemap:
;--------------------------------------------------------------------------------
DMAAlphabetTilemap:
PHA : PHX
REP #$10
LDA.b #$01 : STA.w DMAP0
LDA.b #$80 : STA.w VMAIN
LDA.b #$18 : STA.w BBAD0
LDX.w #$6060 : STX.w VMADDL
LDA.b #BigRAM>>16 : STA.w A1B0
LDX.w #BigRAM : STX.w A1T0L
LDX.w #$0080 : STX.w DAS0L
LDA.b #$01 : STA.w DMAENABLE
SEP #$10
PLX : PLA
RTS
;--------------------------------------------------------------------------------
HashAlphabetTilesWithBlank:
;BLANK
dw #$0188, #$0188, #$0188, #$0188
HashAlphabetTiles:
;BOW
dw #$0241|!FS_COLOR_YELLOW, #$0242|!FS_COLOR_YELLOW, #$0251|!FS_COLOR_YELLOW, #$0252|!FS_COLOR_YELLOW
;BOOM
dw #$0245|!FS_COLOR_BLUE, #$0246|!FS_COLOR_BLUE, #$0240|!FS_COLOR_BW, #$0256|!FS_COLOR_BLUE
;HOOK
dw #$0240|!FS_COLOR_RED, #$0255|!FS_COLOR_RED, #$0270|!FS_COLOR_RED, #$0240|!FS_COLOR_BW
;BOMB
dw #$024C|!FS_COLOR_BLUE, #$024D|!FS_COLOR_BLUE, #$025C|!FS_COLOR_BLUE, #$025C|!FS_COLOR_BLUE|!FS_HFLIP
;SHROOM
dw #$02A2|!FS_COLOR_RED, #$02A3|!FS_COLOR_RED, #$02B2|!FS_COLOR_RED, #$02B3|!FS_COLOR_RED
;POWDER
dw #$024A|!FS_COLOR_BROWN, #$024B|!FS_COLOR_BROWN, #$025A|!FS_COLOR_BROWN, #$025B|!FS_COLOR_BROWN
;ROD
dw #$0260|!FS_COLOR_BLUE, #$0261|!FS_COLOR_BLUE, #$0270|!FS_COLOR_BLUE, #$0271|!FS_COLOR_BLUE
;PENDANT
dw #$02C5|!FS_COLOR_GREEN, #$02C6|!FS_COLOR_GREEN, #$02D5|!FS_COLOR_GREEN, #$02D6|!FS_COLOR_GREEN
;BOMBOS
dw #$0247|!FS_COLOR_YELLOW, #$0257|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0257|!FS_COLOR_YELLOW, #$0247|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP
;ETHER
dw #$0248|!FS_COLOR_YELLOW, #$0258|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0258|!FS_COLOR_YELLOW, #$0248|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP
;QUAKE
dw #$0249|!FS_COLOR_YELLOW, #$0259|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0259|!FS_COLOR_YELLOW, #$0249|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP
;LAMP
dw #$026C|!FS_COLOR_RED, #$026C|!FS_COLOR_RED|!FS_HFLIP, #$027C|!FS_COLOR_RED, #$027D|!FS_COLOR_RED
;HAMMER
dw #$0262|!FS_COLOR_BROWN, #$0263|!FS_COLOR_BROWN, #$0272|!FS_COLOR_BROWN, #$0273|!FS_COLOR_BROWN
;SHOVEL
dw #$0264|!FS_COLOR_BROWN, #$0265|!FS_COLOR_BROWN, #$0274|!FS_COLOR_BROWN, #$0275|!FS_COLOR_BROWN
;FLUTE
dw #$0266|!FS_COLOR_BLUE, #$0267|!FS_COLOR_BLUE, #$0276|!FS_COLOR_BLUE, #$0277|!FS_COLOR_BLUE
;NET
dw #$0268|!FS_COLOR_YELLOW, #$0269|!FS_COLOR_YELLOW, #$0278|!FS_COLOR_YELLOW, #$0279|!FS_COLOR_YELLOW
;BOOK
dw #$026A|!FS_COLOR_GREEN, #$026B|!FS_COLOR_GREEN, #$027A|!FS_COLOR_GREEN, #$027B|!FS_COLOR_GREEN
;BOTTLE
dw #$0280|!FS_COLOR_BW, #$0281|!FS_COLOR_BW, #$0290|!FS_COLOR_BW, #$0291|!FS_COLOR_BW
;POTION
dw #$0282|!FS_COLOR_GREEN, #$0282|!FS_COLOR_GREEN|!FS_HFLIP, #$0292|!FS_COLOR_GREEN, #$0293|!FS_COLOR_GREEN
;CANE
dw #$025D|!FS_COLOR_RED, #$025E|!FS_COLOR_RED, #$026D|!FS_COLOR_RED, #$026E|!FS_COLOR_RED
;CAPE
dw #$0288|!FS_COLOR_RED, #$0289|!FS_COLOR_RED, #$0298|!FS_COLOR_RED, #$0299|!FS_COLOR_RED
;MIRROR
dw #$028A|!FS_COLOR_BLUE, #$028B|!FS_COLOR_BLUE, #$029A|!FS_COLOR_BLUE, #$029B|!FS_COLOR_BLUE
;BOOTS
dw #$028C|!FS_COLOR_BOOTS, #$028D|!FS_COLOR_BOOTS, #$029C|!FS_COLOR_BOOTS, #$029D|!FS_COLOR_BOOTS
;GLOVES
dw #$028E|!FS_COLOR_BROWN, #$028F|!FS_COLOR_BROWN, #$029E|!FS_COLOR_BROWN, #$029F|!FS_COLOR_BROWN
;FLIPPERS
dw #$024E|!FS_COLOR_BLUE, #$024F|!FS_COLOR_BLUE, #$025F|!FS_COLOR_BLUE|!FS_HFLIP, #$025F|!FS_COLOR_BLUE
;PEARL
dw #$02A4|!FS_COLOR_RED, #$02A5|!FS_COLOR_RED, #$02B4|!FS_COLOR_RED, #$02B5|!FS_COLOR_RED
;SHIELD
dw #$02AD|!FS_COLOR_YELLOW, #$02AE|!FS_COLOR_YELLOW, #$02BD|!FS_COLOR_YELLOW, #$02BE|!FS_COLOR_YELLOW
;TUNIC
dw #$02AF|!FS_COLOR_GREEN, #$02AF|!FS_COLOR_GREEN|!FS_HFLIP, #$02BF|!FS_COLOR_GREEN, #$02BF|!FS_COLOR_GREEN|!FS_HFLIP
;HEART
dw #$02C1|!FS_COLOR_RED, #$02C1|!FS_COLOR_RED|!FS_HFLIP, #$02D1|!FS_COLOR_RED, #$02D1|!FS_COLOR_RED|!FS_HFLIP
;MAP
dw #$02C2|!FS_COLOR_YELLOW, #$02C3|!FS_COLOR_YELLOW, #$02D2|!FS_COLOR_YELLOW, #$02D3|!FS_COLOR_YELLOW
;COMPASS
dw #$02C4|!FS_COLOR_RED, #$02C4|!FS_COLOR_RED|!FS_HFLIP, #$02D4|!FS_COLOR_RED, #$02D4|!FS_COLOR_RED|!FS_HFLIP
;KEY
dw #$026F|!FS_COLOR_YELLOW|!FS_HFLIP, #$026F|!FS_COLOR_YELLOW, #$027E|!FS_COLOR_YELLOW, #$027F|!FS_COLOR_YELLOW
;--------------------------------------------------------------------------------
FileSelect_PlayerSelectText_Top:
;db $60, $62, $00, $37
dw !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
dw !FSTILE_BRACKET_OPEN_TOP
dw !FSTILE_SPACE, !FSTILE_C_TOP
dw !FSTILE_O_TOP
dw !FSTILE_D_TOP
dw !FSTILE_E_TOP
dw !FSTILE_SPACE, !FSTILE_SPACE
dw $05A0, $05A1
dw !FSTILE_SPACE, $05A4, $05A5
dw !FSTILE_SPACE, $05A8, $05A9
dw !FSTILE_SPACE, $05AC, $05AD
dw !FSTILE_SPACE, $05B0, $05B1
dw !FSTILE_SPACE
dw !FSTILE_BRACKET_CLOSE_TOP
dw !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
;--------------------------------------------------------------------------------
FileSelect_PlayerSelectText_Bottom:
;db $60, $82, $00, $37
dw !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
dw !FSTILE_BRACKET_OPEN_BOTTOM
dw !FSTILE_SPACE, !FSTILE_C_BOTTOM
dw !FSTILE_O_BOTTOM
dw !FSTILE_D_BOTTOM
dw !FSTILE_E_BOTTOM
dw !FSTILE_SPACE, !FSTILE_SPACE
dw $05A2, $05A3
dw !FSTILE_SPACE, $05A6, $05A7
dw !FSTILE_SPACE, $05AA, $05AB
dw !FSTILE_SPACE, $05AE, $05AF
dw !FSTILE_SPACE, $05B2, $05B3
dw !FSTILE_SPACE
dw !FSTILE_BRACKET_CLOSE_BOTTOM
dw !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
;--------------------------------------------------------------------------------