Add post credits tracker
This commit is contained in:
12
credits.txt
12
credits.txt
@@ -165,13 +165,13 @@ R GAME STATS
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
COLLECTION RATE $$$$/216
|
||||
TOTAL TIME $$$$$$$$$$$
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
|
||||
107
fileselect.asm
107
fileselect.asm
@@ -552,7 +552,7 @@ RTS
|
||||
;--------------------------------------------------------------------------------
|
||||
AltBufferTable:
|
||||
LDA.b #$02 : STA $210c ; Have Screen 3 use same tile area as screens 1
|
||||
|
||||
.noScreen3Change
|
||||
REP #$20
|
||||
LDX.w #$0380 ; 14 rows with 64 bytes (30 tiles * 2 + 4 byte header)
|
||||
;fill with the blank character
|
||||
@@ -605,6 +605,59 @@ AltBufferTable:
|
||||
SEP #$20
|
||||
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
AltBufferTable_credits:
|
||||
JSL AltBufferTable_noScreen3Change
|
||||
|
||||
REP #$20
|
||||
LDA.w #$6168 : STA $1002 ;file 1 top row
|
||||
LDA.w #$8168 : STA $1042 ;file 1 bottom row
|
||||
|
||||
LDA.w #$A168 : STA $1082 ;gap row top
|
||||
LDA.w #$C168 : STA $10C2 ;gap row bottom
|
||||
|
||||
LDA.w #$E168 : STA $1102 ;file 2 top row
|
||||
LDA.w #$0169 : STA $1142 ;file 2 bottom row
|
||||
|
||||
LDA.w #$2169 : STA $1182 ;gap row top
|
||||
LDA.w #$4169 : STA $11c2 ;gap row bottom
|
||||
|
||||
LDA.w #$6169 : STA $1202 ;file 3 top row
|
||||
LDA.w #$8169 : STA $1242 ;file 3 bottom row
|
||||
|
||||
LDA.w #$A169 : STA $1282 ;extra gap row top
|
||||
LDA.w #$C169 : STA $12c2 ;extra gap row bottom
|
||||
|
||||
LDA.w #$E169 : STA $1302 ;extra gap row top
|
||||
LDA.w #$016A : STA $1342 ;extra gap row bottom
|
||||
SEP #$20
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
macro LayoutPriority(address)
|
||||
LDX.w #$003C
|
||||
- : LDA.w <address>, X : ORA #$2000 : STA.w <address>, X
|
||||
DEX : DEX : BNE -
|
||||
endmacro
|
||||
|
||||
SetItemLayoutPriority:
|
||||
REP #$30
|
||||
%LayoutPriority($1004)
|
||||
%LayoutPriority($1044)
|
||||
%LayoutPriority($1084)
|
||||
%LayoutPriority($10C4)
|
||||
%LayoutPriority($1104)
|
||||
%LayoutPriority($1144)
|
||||
%LayoutPriority($1184)
|
||||
%LayoutPriority($11c4)
|
||||
%LayoutPriority($1204)
|
||||
%LayoutPriority($1244)
|
||||
%LayoutPriority($1284)
|
||||
%LayoutPriority($12c4)
|
||||
%LayoutPriority($1304)
|
||||
%LayoutPriority($1344)
|
||||
|
||||
RTL
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
Validate_SRAM:
|
||||
RTL
|
||||
@@ -629,8 +682,8 @@ LoadFullItemTiles:
|
||||
LDA.b #$30 : STA $2117 ; write VRAM destination address
|
||||
|
||||
LDA.b #$31 : STA $4304 ; set bus A source bank
|
||||
LDA.b #FileSelectNewGraphics : STA $4302 ; set bus A source address to SRAM
|
||||
LDA.b #FileSelectNewGraphics>>8 : STA $4303 ; set bus A source address to SRAM
|
||||
LDA.b #FileSelectNewGraphics : STA $4302 ; set bus A source address to ROM
|
||||
LDA.b #FileSelectNewGraphics>>8 : STA $4303 ; set bus A source address to ROM
|
||||
|
||||
LDA $2100 : PHA : LDA.b #$80 : STA $2100 ; save screen state & turn screen off
|
||||
|
||||
@@ -649,3 +702,51 @@ LoadFullItemTiles:
|
||||
PLX : PLA
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
LoadPaletteCredits:
|
||||
PHA : PHX
|
||||
REP #$20
|
||||
LDX.b #$40
|
||||
-
|
||||
LDA.l GFX_HUD_Palette, X
|
||||
STA.l $7EC500, X
|
||||
DEX : DEX
|
||||
BPL -
|
||||
SEP #$20
|
||||
|
||||
INC $15 ; ensure CGRAM gets updated
|
||||
PLX : PLA
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
DrawPlayerFile_credits:
|
||||
; see $6563C for drawing first file name and hearts
|
||||
REP #$20 ; set 16 bit accumulator
|
||||
|
||||
LDA $7003D9 : ORA.w #!FS_COLOR_BW
|
||||
%fs_draw8x16(3,3)
|
||||
LDA $7003DB : ORA.w #!FS_COLOR_BW
|
||||
%fs_draw8x16(3,5)
|
||||
LDA $7003DD : ORA.w #!FS_COLOR_BW
|
||||
%fs_draw8x16(3,7)
|
||||
LDA $7003DF : ORA.w #!FS_COLOR_BW
|
||||
%fs_draw8x16(3,9)
|
||||
|
||||
LDA $70036C : AND.w #$00FF : LSR #3 : STA $02
|
||||
%fs_LDY_screenpos(0,20)
|
||||
LDA.w #$028F|!FS_COLOR_RED
|
||||
LDX.w #$000A
|
||||
|
||||
.nextHeart
|
||||
|
||||
STA.w $0000, Y
|
||||
|
||||
INY #2 : DEX : BNE +
|
||||
PHA
|
||||
TYA : !ADD.w #$40-$14 : TAY
|
||||
PLA
|
||||
+
|
||||
DEC $02 : BNE .nextHeart
|
||||
|
||||
JSL DrawPlayerFile
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -565,8 +565,8 @@ CreditsLineTable:
|
||||
dw CreditsLine171, CreditsLine152, CreditsLine171, CreditsLine171, CreditsLine153, CreditsLine154, CreditsLine171, CreditsLine155
|
||||
dw CreditsLine156, CreditsLine171, CreditsLine157, CreditsLine158, CreditsLine171, CreditsLine159, CreditsLine160, CreditsLine171
|
||||
dw CreditsLine161, CreditsLine162, CreditsLine171, CreditsLine163, CreditsLine164, CreditsLine171, CreditsLine165, CreditsLine166
|
||||
dw CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine001
|
||||
dw CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine167, CreditsLine168, CreditsLine171, CreditsLine169, CreditsLine170
|
||||
dw CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine167, CreditsLine168, CreditsLine171
|
||||
dw CreditsLine169, CreditsLine170, CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine001, CreditsLine001
|
||||
|
||||
!FIRST_SWORD_X = 19
|
||||
!FIRST_SWORD_Y = 319
|
||||
@@ -601,6 +601,6 @@ CreditsLineTable:
|
||||
!TOTAL_LAG_TIME_X = 19
|
||||
!TOTAL_LAG_TIME_Y = 374
|
||||
!COLLECTION_RATE_X = 22
|
||||
!COLLECTION_RATE_Y = 387
|
||||
!COLLECTION_RATE_Y = 381
|
||||
!TOTAL_TIME_X = 19
|
||||
!TOTAL_TIME_Y = 390
|
||||
!TOTAL_TIME_Y = 384
|
||||
|
||||
@@ -555,6 +555,42 @@ LoadModifiedFont:
|
||||
DEX : BPL .nextWord
|
||||
|
||||
SEP #$30
|
||||
JSL LoadFullItemTilesCredits
|
||||
|
||||
RTL
|
||||
|
||||
LoadFullItemTilesCredits:
|
||||
; Based on CopyFontToVram(Bank00)
|
||||
; copies font graphics to VRAM (for BG3)
|
||||
|
||||
; increment on writes to $2119
|
||||
LDA.b #$80 : STA $2115
|
||||
|
||||
; set bank of the source address (see below)
|
||||
LDA.b #FileSelectNewGraphics>>16 : STA $02
|
||||
|
||||
REP #$30
|
||||
|
||||
; vram target address is $8000 (word) (Wraps to start of VRAM on normal SNES, but using the correct address so it works on extended VRAM machines)
|
||||
LDA.w #$8000 : STA $2116
|
||||
|
||||
; $00[3] = $0E8000 (offset for the font data)
|
||||
LDA.w #FileSelectNewGraphics : STA $00
|
||||
|
||||
; going to write 0x1000 bytes (0x800 words)
|
||||
LDX.w #$800-1
|
||||
|
||||
.nextWord
|
||||
|
||||
; read a word from the font data
|
||||
LDA [$00] : STA $2118
|
||||
|
||||
; increment source address by 2
|
||||
INC $00 : INC $00
|
||||
|
||||
DEX : BPL .nextWord
|
||||
|
||||
SEP #$30
|
||||
|
||||
RTL
|
||||
|
||||
@@ -567,6 +603,30 @@ CheckFontTable:
|
||||
PLB
|
||||
RTL
|
||||
|
||||
NearEnding:
|
||||
STZ.w $012A ; disable triforce helper thread
|
||||
JSL LoadPaletteCredits
|
||||
REP #$10
|
||||
JSL AltBufferTable_credits
|
||||
JSR DrawEndingItems
|
||||
JML.l $00ec03 ; PaletteFilter_InitTheEndSprite
|
||||
|
||||
EndingItems:
|
||||
; This function is not strictly needed, simply updating the tracker
|
||||
; every frame, but it is useful for debuging, so should be left in.
|
||||
REP #$10
|
||||
JSR DrawEndingItems
|
||||
REP #$20
|
||||
LDX.b #$0e
|
||||
RTL
|
||||
|
||||
DrawEndingItems:
|
||||
JSL DrawPlayerFile_credits
|
||||
JSL SetItemLayoutPriority
|
||||
SEP #$30
|
||||
LDA.b #$01 : STA $14
|
||||
RTS
|
||||
|
||||
FontTable:
|
||||
incbin stats/fonttable.bin
|
||||
|
||||
@@ -574,6 +634,12 @@ CreditsStats:
|
||||
incsrc stats/statConfig.asm
|
||||
dw $FFFF
|
||||
|
||||
org $0eedd9
|
||||
JSL EndingItems
|
||||
|
||||
org $0eedaf
|
||||
JSL NearEnding
|
||||
|
||||
org $0EE651
|
||||
JSL LoadModifiedFont
|
||||
|
||||
|
||||
Reference in New Issue
Block a user