diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index ad79282..dc3cb3a 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -222,11 +222,6 @@ GFX_HUD_Main: incbin c2e3e.gfx warnpc $31B800 -org $31B800 -GFX_Hash_Alphabet: -incbin hashalphabet.chr.gfx -warnpc $31C001 - org $31C000 IcePalaceFloorGfx: incbin ice_palace_floor.bin diff --git a/events.asm b/events.asm index 4d230f2..cce6f42 100644 --- a/events.asm +++ b/events.asm @@ -10,7 +10,6 @@ OnPrepFileSelect: LDA.b #$06 : STA $14 ; thing we wrote over RTL + - JSL.l LoadAlphabetTiles JSL.l LoadAlphabetTilemap JSL.l LoadFullItemTiles RTL diff --git a/hashalphabet.asm b/hashalphabet.asm index 9d7b00b..ec7ba0c 100644 --- a/hashalphabet.asm +++ b/hashalphabet.asm @@ -1,89 +1,3 @@ -;-------------------------------------------------------------------------------- -; GetAlphabetPalette: -; In: X = Alphabet Index -; Out: A = Palette -;-------------------------------------------------------------------------------- -GetAlphabetPalette: - LDA.l .table, X -RTL -;-------------------------------------------------------------------------------- -.table -db $00, $0C, $04, $0C, $04, $00, $0C, $18 -db $08, $08, $08, $04, $00, $00, $0C, $08 -db $18, $0C, $18, $04, $04, $0C, $14, $00 -db $0C, $04, $08, $18, $04, $08, $04, $08 -;-------------------------------------------------------------------------------- - -;-------------------------------------------------------------------------------- -; GetAlphabetTileAddr: -; Notes: -; Assumes 16-bit accumulator -;-------------------------------------------------------------------------------- -GetAlphabetTileAddr: - ASL #6 - !ADD.w #$B800 ; $31:B800 -RTL -;-------------------------------------------------------------------------------- - -!ALPHA_TILE_WIDTH = "#$40" -!ALPHA_VRAM_DEST_BASE = "#$5A00" - -;-------------------------------------------------------------------------------- -; LoadAlphabetTiles -; In: -; $00 - Tile 0 -; $01 - Tile 1 -; $02 - Tile 2 -; $03 - Tile 3 -; $04 - Tile 4 -;-------------------------------------------------------------------------------- -LoadAlphabetTiles: - PHA : PHX - LDA $4300 : PHA ; preserve DMA parameters - LDA $4301 : PHA ; preserve DMA parameters - LDA $4302 : PHA ; preserve DMA parameters - LDA $4303 : PHA ; preserve DMA parameters - LDA $4304 : PHA ; preserve DMA parameters - LDA $4305 : PHA ; preserve DMA parameters - LDA $4306 : PHA ; preserve DMA parameters - ;-------------------------------------------------------------------------------- - LDA.b #$80 : STA $2115 ; write read increment on $2119 - LDA.b #$01 : STA $4300 ; set DMA transfer direction A -> B, bus A auto increment, double-byte mode - LDA.b #$18 : STA $4301 ; set bus B destination to VRAM register - - LDA.b !ALPHA_VRAM_DEST_BASE>>1 : STA $2116 ; write VRAM destination address - LDA.b !ALPHA_VRAM_DEST_BASE>>9 : STA $2117 ; write VRAM destination address - - LDA.b #GFX_Hash_Alphabet>>16 : STA $4304 ; set bus A source bank - - LDA $2100 : PHA : LDA.b #$80 : STA $2100 ; save screen state & turn screen off - LDX.b #$00 : - - - LDA.l SeedHash, X - REP #$20 ; set 16-bit accumulator - AND.w #$001F ; mask to alphabet of 32 - JSL.l GetAlphabetTileAddr : STA $4302 ; set bus A source address to SRAM - - SEP #$20 ; set 8-bit accumulator - - LDA.b !ALPHA_TILE_WIDTH : STA $4305 : STZ $4306 ; set transfer size to 0x40 - LDA #$01 : STA $420B ; begin DMA transfer - - INX - CPX.b #$05 : !BLT - - PLA : STA $2100 ; put screen back however it was before - ;-------------------------------------------------------------------------------- - PLA : STA $4306 ; restore DMA parameters - PLA : STA $4305 ; restore DMA parameters - PLA : STA $4304 ; restore DMA parameters - PLA : STA $4303 ; restore DMA parameters - PLA : STA $4302 ; restore DMA parameters - PLA : STA $4301 ; restore DMA parameters - PLA : STA $4300 ; restore DMA parameters - PLX : PLA -RTL -;-------------------------------------------------------------------------------- - ;-------------------------------------------------------------------------------- ;Hash Alphabet !ALPHA_BOW = "#$0000" @@ -124,36 +38,34 @@ RTL !BIGRAM = "$7EC900"; ;-------------------------------------------------------------------------------- LoadAlphabetTilemap: - PHA : PHX : PHY : PHP + PHB : PHA : PHX : PHY : PHP + PHK : PLB SEP #$10 ; 8-bit index registers REP #$20 ; 16-bit accumulator - + LDX.b #$00 : - - LDA FileSelect_PlayerSelectText_Top, X + LDA.w FileSelect_PlayerSelectText_Top, X STA !BIGRAM, X INX #2 CPX #128 : !BLT - - - - SEP #$20 ; 8-bit accumulator - + LDY.b #00 LDX.b #$00 : - PHX : TYX : LDA.l SeedHash, X : PLX - AND.b #$1F ; mask to alphabet of 32 - PHX : TAX : JSL.l GetAlphabetPalette : PLX - ORA.b #$01 - - STA !BIGRAM+28+1, X - STA !BIGRAM+28+1+2, X - STA !BIGRAM+28+64+1, X - STA !BIGRAM+28+64+1+2, X - INX #6 : INY + AND.w #$001F ; mask to alphabet of 32 + + ASL #3 : PHY : TAY + LDA.w HashAlphabetTiles,Y : STA !BIGRAM+28, X + LDA.w HashAlphabetTiles+2,Y : STA !BIGRAM+28+2, X + LDA.w HashAlphabetTiles+4,Y : STA !BIGRAM+28+64, X + LDA.w HashAlphabetTiles+6,Y : STA !BIGRAM+28+64+2, X + PLY : INX #6 : INY CPX #25 : !BLT - - - + + SEP #$20 ; 8-bit accumulator + JSR DMAAlphabetTilemap - PLP : PLY : PLX : PLA + PLP : PLY : PLX : PLA : PLB RTL ;-------------------------------------------------------------------------------- ; DMAAlphabetTilemap: @@ -171,16 +83,16 @@ DMAAlphabetTilemap: LDA.b #$01 : STA $4300 ; set DMA transfer direction A -> B, bus A auto increment, double-byte mode LDA.b #$80 : STA $2115 ; write read increment on $2119 LDA.b #$18 : STA $4301 ; set bus B destination to VRAM register - + LDA.b #$60 : STA $2116 ; write VRAM destination address STA $2117 ; write VRAM destination address LDA.b #!BIGRAM : STA $4302 ; set bus A source address to WRAM LDA.b #!BIGRAM>>8 : STA $4303 ; set bus A source address to WRAM LDA.b #!BIGRAM>>16 : STA $4304 ; set bus A source bank - + LDA.b #$80 : STA $4305 : STZ $4306 ; set transfer size to 0x40 - + LDA $2100 : PHA : LDA.b #$80 : STA $2100 ; save screen state & turn screen off LDA #$01 : STA $420B ; begin DMA transfer PLA : STA $2100 ; put screen back however it was before @@ -195,6 +107,75 @@ DMAAlphabetTilemap: PLX : PLA RTS ;-------------------------------------------------------------------------------- +HashAlphabetTilesWithBlank: +;BLANK +dw #$0186|!FS_COLOR_BW, #$0186|!FS_COLOR_BW, #$0196|!FS_COLOR_BW, #$0196|!FS_COLOR_BW +HashAlphabetTiles: +;BOW +dw #$0201|!FS_COLOR_YELLOW, #$0202|!FS_COLOR_YELLOW, #$0211|!FS_COLOR_YELLOW, #$0212|!FS_COLOR_YELLOW +;BOOM +dw #$0205|!FS_COLOR_BLUE, #$0206|!FS_COLOR_BLUE, #$0200|!FS_COLOR_BW, #$0216|!FS_COLOR_BLUE +;HOOK +dw #$0200|!FS_COLOR_RED, #$0215|!FS_COLOR_RED, #$0230|!FS_COLOR_RED, #$0200|!FS_COLOR_BW +;BOMB +dw #$020C|!FS_COLOR_BLUE, #$020D|!FS_COLOR_BLUE, #$021C|!FS_COLOR_BLUE, #$021C|!FS_COLOR_BLUE|!FS_HFLIP +;SHROOM +dw #$0262|!FS_COLOR_RED, #$0263|!FS_COLOR_RED, #$0272|!FS_COLOR_RED, #$0273|!FS_COLOR_RED +;POWDER +dw #$020A|!FS_COLOR_BROWN, #$020B|!FS_COLOR_BROWN, #$021A|!FS_COLOR_BROWN, #$021B|!FS_COLOR_BROWN +;ROD +dw #$0220|!FS_COLOR_BLUE, #$0221|!FS_COLOR_BLUE, #$0230|!FS_COLOR_BLUE, #$0231|!FS_COLOR_BLUE +;PENDANT +dw #$0285|!FS_COLOR_GREEN, #$0286|!FS_COLOR_GREEN, #$0295|!FS_COLOR_GREEN, #$0296|!FS_COLOR_GREEN +;BOMBOS +dw #$0207|!FS_COLOR_YELLOW, #$0217|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0217|!FS_COLOR_YELLOW, #$0207|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP +;ETHER +dw #$0208|!FS_COLOR_YELLOW, #$0218|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0218|!FS_COLOR_YELLOW, #$0208|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP +;QUAKE +dw #$0209|!FS_COLOR_YELLOW, #$0219|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0219|!FS_COLOR_YELLOW, #$0209|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP +;LAMP +dw #$022C|!FS_COLOR_RED, #$022C|!FS_COLOR_RED|!FS_HFLIP, #$023C|!FS_COLOR_RED, #$023D|!FS_COLOR_RED +;HAMMER +dw #$0222|!FS_COLOR_BROWN, #$0223|!FS_COLOR_BROWN, #$0232|!FS_COLOR_BROWN, #$0233|!FS_COLOR_BROWN +;SHOVEL +dw #$0224|!FS_COLOR_BROWN, #$0225|!FS_COLOR_BROWN, #$0234|!FS_COLOR_BROWN, #$0235|!FS_COLOR_BROWN +;FLUTE +dw #$0226|!FS_COLOR_BLUE, #$0227|!FS_COLOR_BLUE, #$0236|!FS_COLOR_BLUE, #$0237|!FS_COLOR_BLUE +;NET +dw #$0228|!FS_COLOR_YELLOW, #$0229|!FS_COLOR_YELLOW, #$0238|!FS_COLOR_YELLOW, #$0239|!FS_COLOR_YELLOW +;BOOK +dw #$022A|!FS_COLOR_GREEN, #$022B|!FS_COLOR_GREEN, #$023A|!FS_COLOR_GREEN, #$023B|!FS_COLOR_GREEN +;BOTTLE +dw #$0240|!FS_COLOR_BW, #$0241|!FS_COLOR_BW, #$0250|!FS_COLOR_BW, #$0251|!FS_COLOR_BW +;POTION +dw #$0242|!FS_COLOR_GREEN, #$0242|!FS_COLOR_GREEN|!FS_HFLIP, #$0252|!FS_COLOR_GREEN, #$0253|!FS_COLOR_GREEN +;CANE +dw #$021D|!FS_COLOR_RED, #$021E|!FS_COLOR_RED, #$022D|!FS_COLOR_RED, #$022E|!FS_COLOR_RED +;CAPE +dw #$0248|!FS_COLOR_RED, #$0249|!FS_COLOR_RED, #$0258|!FS_COLOR_RED, #$0259|!FS_COLOR_RED +;MIRROR +dw #$024A|!FS_COLOR_BLUE, #$024B|!FS_COLOR_BLUE, #$025A|!FS_COLOR_BLUE, #$025B|!FS_COLOR_BLUE +;BOOTS +dw #$024C|!FS_COLOR_BOOTS, #$024D|!FS_COLOR_BOOTS, #$025C|!FS_COLOR_BOOTS, #$025D|!FS_COLOR_BOOTS +;GLOVES +dw #$024E|!FS_COLOR_BROWN, #$024F|!FS_COLOR_BROWN, #$025E|!FS_COLOR_BROWN, #$025F|!FS_COLOR_BROWN +;FLIPPERS +dw #$020E|!FS_COLOR_BLUE, #$020F|!FS_COLOR_BLUE, #$021F|!FS_COLOR_BLUE|!FS_HFLIP, #$021F|!FS_COLOR_BLUE +;PEARL +dw #$0264|!FS_COLOR_RED, #$0265|!FS_COLOR_RED, #$0274|!FS_COLOR_RED, #$0275|!FS_COLOR_RED +;SHIELD +dw #$026D|!FS_COLOR_YELLOW, #$026E|!FS_COLOR_YELLOW, #$027D|!FS_COLOR_YELLOW, #$027E|!FS_COLOR_YELLOW +;TUNIC +dw #$026F|!FS_COLOR_GREEN, #$026F|!FS_COLOR_GREEN|!FS_HFLIP, #$027F|!FS_COLOR_GREEN, #$027F|!FS_COLOR_GREEN|!FS_HFLIP +;HEART +dw #$0281|!FS_COLOR_RED, #$0281|!FS_COLOR_RED|!FS_HFLIP, #$0291|!FS_COLOR_RED, #$0291|!FS_COLOR_RED|!FS_HFLIP +;MAP +dw #$0282|!FS_COLOR_YELLOW, #$0283|!FS_COLOR_YELLOW, #$0292|!FS_COLOR_YELLOW, #$0293|!FS_COLOR_YELLOW +;COMPASS +dw #$0284|!FS_COLOR_RED, #$0284|!FS_COLOR_RED|!FS_HFLIP, #$0294|!FS_COLOR_RED, #$0294|!FS_COLOR_RED|!FS_HFLIP +;KEY +dw #$022F|!FS_COLOR_YELLOW|!FS_HFLIP, #$022F|!FS_COLOR_YELLOW, #$023E|!FS_COLOR_YELLOW, #$023F|!FS_COLOR_YELLOW +;-------------------------------------------------------------------------------- FileSelect_PlayerSelectText_Top: ;db $60, $62, $00, $37 dw !FSTILE_SPACE, !FSTILE_SPACE diff --git a/hashalphabet.chr.gfx b/hashalphabet.chr.gfx deleted file mode 100644 index b2579bf..0000000 --- a/hashalphabet.chr.gfx +++ /dev/null @@ -1 +0,0 @@ -џџџЧџ€џИŸўЯџчџѓџџџџсџёџ1џ-џпџЇџgћўџ§ЮћŸїћяѓџїџџџџуџѓѓ?љŸљЯљяѓџџџџџџџџРџџПџ€џРџџџџџџџџџчџїїїџџџџџџџџџџџџџџџџїŸїŸїŸїŸїŸїŸџЯџџџџџџџџџџџџџџџџџџџџсџљџхџ§џOџџџќџјџѕџяѓпчПЯџŸџџџџџџџџџџџџџџџџџџџџџџџџў§џђџсїшџРџџŸџmџsПџOџ‡Я7чяаяаџРџрџрџ№џќџџї ї џџџџџ?џџџџџўџјџ№џ№џрџРџ€џџџџПOяwячџ€џ€џРћџ№џ№џјџџџџџaŸѓџџџџџџџџ§ћНѓОљзќуџжџПљџџпЛЯЗйџџчџџчП№џрџрџрџрџ№џќџџs‡yЧ9Я1џџџџџџџџџџџџџўџ§џ§џўџџџџСнунЃуw‰oзŸџќџјџѕџяѓпчПЯџŸџџoџŸџџџџџџџџџџџџџџџџџџџјџїџяџюџёџџџџoџїџ{џЛџнџнџћџчљЧјЮёсоїШџсџџнџНџНџНџлџчџџџџџџџќџ№џщійцлфКХМУџџ?џЯ?їћƒaŸ9Чœу†љСўпря№ѓќќџџџ=У]Ѓл'›g—oџ?џџџџџќџђ§юёмумуИЧИЧџџ?џЯ?їћћ§ ѓАЯПРпрпря№ѓќќџџџуу;Ч;ЧwOП?џџџџџќџѓќя№прпрЙЦяџџ?џЯ?їћћэХ;ЃмЗШпрпря№ѓќќџџџ їcћћїЯ??џџџџџўџќџ§џџ№џрїџїўџџџ?џПџџџяџяїўїўїќїќїўѓўџрџџ/џ/џя?ЏЏЯџџџџўџќўљ§ђћфџрџ№џјџї?sŸ9ЯŸgЯ3џѓ џќѓўсџСџƒџ‡џЯџџџћџџџ‡џЯџџџџџџџџџџџџџџџџїџчџУўџџџчїЫџспсПЫŸџ?Чќ‡ќƒџЈџАџ˜џСџџџџџџџџ?џџџџџџџџџџџџџўџњџ№љюїшџџџџџУџ Ѓџџ‡џџРџаџСџРџСџуџџџџџџпџ?џџ_џПџџџџџџ№џхџЪџ…џŠџ…џРџџџџџЏџWџЃџ]џ=џрџќџўџўѓџуџЧџЯџџ}џћџїџяџџџџџџџџџџџрџРјЧјЧџРџРџРџџџџччџџџџХџРџРџЯјпџЯџрџџџWџџџџџџџџџџџџјџѓџ№џјџїџяџпџџџџЯџџџяџзџыџпџпџпџпџпџчџјџџџуџуџуџыџлџчџџџџџџјџѓџ№џјџїџяџзяџџџЯџџџяџїџыїичпрпрпросчјјџџџчЃ_уыл'чџџџџџџџџџџўџўџўџўџќџџџ‡џџ1џyџyёПaџќ§њџёџуџЧџџŸџџПsџџџџџџџџџџџџџџџџџџŸрчјЙоочпсџџџПџџџ?ПoЯџпрпрПРПРПРЮё№џџџџџ‡џA=уcџџџџџџџџџјџѓ§чњЯєŸљžѓџџџџЯ?ч_ГЯyљ/љі›јЯ§чџѓџўџќџќџџoљпѓПчџЯџџ?џ?џџџџџџџќџќџќџўџ§џќџџџџџ;ƒsџџџћў§§ўўћ§уѓЬџ€џ€џџџsƒџ‡џ џџ#џџџџђџѓ§їџјџјџЫџЧќџџџoПoџŸїїџћџїуџрџђџќџјџјџўџџџћџwџџџ—џ—џџџџџўџПњПтџ’џ’џЪџЪџџџ}п§GџIџIџSџSџФџрџсџуџѓ§ѓўљџќџ#џџ‡џЧџЯПЯŸџ?џџџџќџѓќяѓяїзяпэџџџџ?џЯџЗџџЛџлџліеяьѓрџ№џќџџџџџЫџћїЏїЯ??џџџџџџџЧџРџиџпямяйягюџџѓя+џяџƒ}яџЋ{ЏохнтћфяљЦЛщџќяџџћ7лwЛїwяяпп??џџџџџџќџѓћЯћћ§ў“џџџ?џЯпѓпёп№ПрЩџбџрчџјџџчџјџџџџџ‹џчџџџчџџџџџџџџџуџнуОСПРПРПРџџџџЧџЛЧ}ƒ§§§пря№їјћќ§ўўџџџџџћїяп?Пџџџџџџџџјўёќѓўсјчќу№Яџџџї;gЙ{Н­џMяUљЦсž§ŸћпКямџуџџч›УПУ?ƒ‡‡џ‡џџџџјџчџпўпќПјЙџИџџџџчџћћ?§џџмПоПчŸјЧџРџрџјџџ;§{§чљуџџџџџџџџпџЬџрџрџєџцџтџџџћџ3џџџ/џgџGџ№џќџўџўџўџўџўџџџџ?џџџ?џџџџ \ No newline at end of file