ram.asm initial commit. Replaced all address defines with labels
Value defines styled without quotes, # moved to load/store/cmp site Added registers.asm (copied from spannerisms JP disassembly) Added a bunch of length annotations Deleted old or trivial commented out code Deleted: ganonfixes.asm, map.asm, seedtag.asm Replaced obsolete credits.asm with creditsnew.asm Moved scratch space at $7F5020-3F to mirrored WRAM (7E1E70-8F) Moved clock RAM to mirrored WRAM (7E1E90-9F) dialog.asm: FreeDungeonItemNotice preserves callee-preserved scratch RAM Toast buffer moved to mirrored WRAM (7E1E0E-0F) servicerequest.asm: long store to $012E converted to word length store
This commit is contained in:
1311
stats/credits.asm
Executable file → Normal file
1311
stats/credits.asm
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,752 +0,0 @@
|
||||
;===================================================================================================
|
||||
; LEAVE THIS HERE FOR PHP WRITES
|
||||
;===================================================================================================
|
||||
table "creditscharmapbighi.txt"
|
||||
YourSpriteCreditsHi:
|
||||
db 2
|
||||
db 55
|
||||
db " " ; $238002
|
||||
|
||||
table "creditscharmapbiglo.txt"
|
||||
YourSpriteCreditsLo:
|
||||
db 2
|
||||
db 55
|
||||
db " " ; $238020
|
||||
|
||||
;===================================================================================================
|
||||
|
||||
CreditsLineTable:
|
||||
fillword CreditsLineBlank : fill 800
|
||||
|
||||
;===================================================================================================
|
||||
|
||||
!CLINE = -1
|
||||
|
||||
;---------------------------------------------------------------------------------------------------
|
||||
|
||||
macro smallcredits(text, color)
|
||||
!CLINE #= !CLINE+1
|
||||
table "creditscharmapsmall_<color>.txt"
|
||||
|
||||
?line:
|
||||
db (32-(?end-?text))/2
|
||||
db 2*(?end-?text)-1
|
||||
?text:
|
||||
db "<text>"
|
||||
?end:
|
||||
|
||||
pushpc
|
||||
org CreditsLineTable+!CLINE+!CLINE : dw ?line
|
||||
pullpc
|
||||
|
||||
endmacro
|
||||
|
||||
;---------------------------------------------------------------------------------------------------
|
||||
macro bigcredits(text)
|
||||
!CLINE #= !CLINE+1
|
||||
table "creditscharmapbighi.txt"
|
||||
|
||||
?line_top:
|
||||
db (32-(?end-?text))/2
|
||||
db 2*(?end-?text)-1
|
||||
?text:
|
||||
db "<text>"
|
||||
?end:
|
||||
|
||||
pushpc
|
||||
org CreditsLineTable+!CLINE+!CLINE : dw ?line_top
|
||||
pullpc
|
||||
|
||||
|
||||
table "creditscharmapbiglo.txt"
|
||||
?line_bottom:
|
||||
db (32-(?end-?text))/2
|
||||
db 2*(?end-?text)-1
|
||||
db "<text>"
|
||||
|
||||
|
||||
!CLINE #= !CLINE+1
|
||||
pushpc
|
||||
org CreditsLineTable+!CLINE+!CLINE : dw ?line_bottom
|
||||
pullpc
|
||||
|
||||
endmacro
|
||||
|
||||
;---------------------------------------------------------------------------------------------------
|
||||
|
||||
macro bigcreditsleft(text)
|
||||
!CLINE #= !CLINE+1
|
||||
table "creditscharmapbighi.txt"
|
||||
|
||||
?line_top:
|
||||
db 2
|
||||
db 2*(?end-?text)-1
|
||||
?text:
|
||||
db "<text>"
|
||||
?end:
|
||||
|
||||
pushpc
|
||||
org CreditsLineTable+!CLINE+!CLINE : dw ?line_top
|
||||
pullpc
|
||||
|
||||
|
||||
table "creditscharmapbiglo.txt"
|
||||
?line_bottom:
|
||||
db 2
|
||||
db 2*(?end-?text)-1
|
||||
db "<text>"
|
||||
|
||||
|
||||
!CLINE #= !CLINE+1
|
||||
pushpc
|
||||
org CreditsLineTable+!CLINE+!CLINE : dw ?line_bottom
|
||||
pullpc
|
||||
|
||||
endmacro
|
||||
|
||||
;---------------------------------------------------------------------------------------------------
|
||||
|
||||
macro emptyline()
|
||||
!CLINE #= !CLINE+1
|
||||
pushpc
|
||||
org CreditsLineTable+!CLINE+!CLINE : dw CreditsEmptyLine
|
||||
pullpc
|
||||
endmacro
|
||||
|
||||
macro blankline()
|
||||
!CLINE #= !CLINE+1
|
||||
pushpc
|
||||
org CreditsLineTable+!CLINE+!CLINE : dw CreditsLineBlank
|
||||
pullpc
|
||||
endmacro
|
||||
|
||||
macro addarbline(l)
|
||||
!CLINE #= !CLINE+1
|
||||
pushpc
|
||||
org CreditsLineTable+!CLINE+!CLINE : dw <l>
|
||||
pullpc
|
||||
endmacro
|
||||
|
||||
;===================================================================================================
|
||||
|
||||
CreditsEmptyLine:
|
||||
db $00, $01, $9F
|
||||
|
||||
CreditsLineBlank:
|
||||
db $FF
|
||||
|
||||
;---------------------------------------------------------------------------------------------------
|
||||
|
||||
%emptyline()
|
||||
%smallcredits("ORIGINAL GAME STAFF", "yellow")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("EXECUTIVE PRODUCER", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("HIROSHI YAMAUCHI")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("PRODUCER", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("SHIGERU MIYAMOTO")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("DIRECTOR", "red")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("TAKASHI TEZUKA")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("SCRIPT WRITER", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("KENSUKE TANABE")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("ASSISTANT DIRECTORS", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("YASUHISA YAMAMURA")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("YOICHI YAMADA")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("SCREEN GRAPHICS DESIGNERS", "green")
|
||||
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
|
||||
%smallcredits("OBJECT DESIGNERS", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("SOICHIRO TOMITA")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("TAKAYA IMAMURA")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("BACK GROUND DESIGNERS", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("MASANAO ARIMOTO")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("TSUYOSHI WATANABE")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("PROGRAM DIRECTOR", "red")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("TOSHIHIKO NAKAGO")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("MAIN PROGRAMMER", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("YASUNARI SOEJIMA")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("OBJECT PROGRAMMER", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("KAZUAKI MORITA")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("PROGRAMMERS", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("TATSUO NISHIYAMA")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("YUICHI YAMAMOTO")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("YOSHIHIRO NOMOTO")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("EIJI NOTO")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("SATORU TAKAHATA")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("TOSHIO IWAWAKI")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("SHIGEHIRO KASAMATSU")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("YASUNARI NISHIDA")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("SOUND COMPOSER", "red")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("KOJI KONDO")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("COORDINATORS", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("KEIZO KATO")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("TAKAO SHIMIZU")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("PRINTED ART WORK", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("YOICHI KOTABE")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("HIDEKI FUJII")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("YOSHIAKI KOIZUMI")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("YASUHIRO SAKAI")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("TOMOAKI KUROUME")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("SPECIAL THANKS TO", "red")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("NOBUO OKAJIMA")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("YASUNORI TAKETANI")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("KIYOSHI KODA")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("TAKAMITSU KUZUHARA")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("HIRONOBU KAKUI")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("SHIGEKI YAMASHIRO")
|
||||
|
||||
%blankline()
|
||||
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
|
||||
;---------------------------------------------------------------------------------------------------
|
||||
|
||||
%smallcredits("RANDOMIZER CONTRIBUTORS", "red")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("ITEM RANDOMIZER", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("KATDEVSGAMES VEETORP")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("CHRISTOSOWEN DESSYREQT")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("SMALLHACKER SYNACK")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("ENTRANCE RANDOMIZER", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("AMAZINGAMPHAROS LLCOOLDAVE")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("KEVINCATHCART CASSIDYMOEN")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("ENEMY RANDOMIZER", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("ZARBY89 SOSUKE3")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("ENDEROFGAMES")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("DOOR RANDOMIZER", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("AERINON COMPILING")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("FESTIVE RANDOMIZER", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("KAN TOTAL")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("CATOBAT DINSAPHIR")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("SPRITE DEVELOPMENT", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("MIKETRETHEWEY IBAZLY")
|
||||
|
||||
%blankline()
|
||||
%bigcredits("FISH_WAFFLE64 KRELBEL")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("ACHY ARTHEAU")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("GLAN TWROXAS")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("PLAGUEDONE TARTHORON")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("YOUR SPRITE BY", "yellow")
|
||||
|
||||
%addarbline(YourSpriteCreditsHi)
|
||||
%addarbline(YourSpriteCreditsLo)
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("MSU SUPPORT", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("QWERTYMODO")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("PALETTE SHUFFLER", "yellow")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("NELSON AKA SWR")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("WEBSITE LOGO", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("PLEASURE")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("SPECIAL THANKS", "red")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("SUPERSKUJ EVILASH25")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("MYRAMONG JOSHRTA")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("WALKINGEYE MATHONNAPKINS")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("MICHAELK FOUTON")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("BONTA EMOSARU")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("PINKUS YUZUHARA")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("SAKURATSUBASA")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("AND...")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("THE ALTTP RANDOMIZER COMMUNITY")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("COMMUNITY DISCORD", "green")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcredits("HTTPS://ALTTPR.COM/DISCORD")
|
||||
|
||||
%blankline()
|
||||
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
|
||||
;===================================================================================================
|
||||
|
||||
print "Credits line number: !CLINE | Expected: 302"
|
||||
|
||||
if !CLINE > 302
|
||||
error "Too many credits lines. !CLINE > 302"
|
||||
|
||||
elseif !CLINE < 302
|
||||
warn "Too few credits lines. !CLINE < 302; Adding additional empties for alignment."
|
||||
|
||||
endif
|
||||
|
||||
|
||||
; Set line always to line up with stats
|
||||
!CLINE #= 302
|
||||
|
||||
;===================================================================================================
|
||||
|
||||
%smallcredits("THE IMPORTANT STUFF", "yellow")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%emptyline()
|
||||
%smallcredits("TIME FOUND", "green")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("FIRST SWORD")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("PEGASUS BOOTS")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("FLUTE")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("MIRROR")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%emptyline()
|
||||
%smallcredits("BOSS KILLS", "yellow")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("SWORDLESS /13")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("FIGHTER'S SWORD /13")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("MASTER SWORD /13")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("TEMPERED SWORD /13")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("GOLD SWORD /13")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%smallcredits("GAME STATS", "red")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("DAMAGE TAKEN")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("MAGIC USED")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("BONKS")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("SAVE AND QUITS")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("DEATHS")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("FAERIE REVIVALS")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("TOTAL MENU TIME")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("TOTAL LAG TIME")
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
|
||||
%blankline()
|
||||
%blankline()
|
||||
|
||||
|
||||
%blankline()
|
||||
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%bigcreditsleft("COLLECTION RATE /216")
|
||||
|
||||
%blankline()
|
||||
|
||||
%bigcreditsleft("TOTAL TIME")
|
||||
|
||||
%blankline()
|
||||
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
%emptyline()
|
||||
|
||||
;---------------------------------------------------------------------------------------------------
|
||||
|
||||
!FIRST_SWORD_X = 19
|
||||
!FIRST_SWORD_Y = 310
|
||||
!PEGASUS_BOOTS_X = 19
|
||||
!PEGASUS_BOOTS_Y = 313
|
||||
!FLUTE_X = 19
|
||||
!FLUTE_Y = 316
|
||||
!MIRROR_X = 19
|
||||
!MIRROR_Y = 319
|
||||
!SWORDLESS_X = 23
|
||||
!SWORDLESS_Y = 327
|
||||
!FIGHTERS_SWORD_X = 23
|
||||
!FIGHTERS_SWORD_Y = 330
|
||||
!MASTER_SWORD_X = 23
|
||||
!MASTER_SWORD_Y = 333
|
||||
!TEMPERED_SWORD_X = 23
|
||||
!TEMPERED_SWORD_Y = 336
|
||||
!GOLD_SWORD_X = 23
|
||||
!GOLD_SWORD_Y = 339
|
||||
!DAMAGETAKEN_X = 26
|
||||
!DAMAGETAKEN_Y = 346
|
||||
!MAGICUSED_X = 26
|
||||
!MAGICUSED_Y = 349
|
||||
!BONKS_X = 26
|
||||
!BONKS_Y = 352
|
||||
!SAVE_AND_QUITS_X = 26
|
||||
!SAVE_AND_QUITS_Y = 355
|
||||
!DEATHS_X = 26
|
||||
!DEATHS_Y = 358
|
||||
!FAERIE_REVIVALS_X = 26
|
||||
!FAERIE_REVIVALS_Y = 361
|
||||
!TOTAL_MENU_TIME_X = 19
|
||||
!TOTAL_MENU_TIME_Y = 364
|
||||
!TOTAL_LAG_TIME_X = 19
|
||||
!TOTAL_LAG_TIME_Y = 367
|
||||
!COLLECTION_RATE_X = 22
|
||||
!COLLECTION_RATE_Y = 380
|
||||
!TOTAL_TIME_X = 19
|
||||
!TOTAL_TIME_Y = 383
|
||||
330
stats/main.asm
330
stats/main.asm
@@ -6,7 +6,7 @@ lorom
|
||||
!BGE = "BCS"
|
||||
|
||||
org $238000
|
||||
incsrc stats/creditsnew.asm
|
||||
incsrc stats/credits.asm
|
||||
|
||||
FontGfx:
|
||||
if !FEATURE_NEW_TEXT
|
||||
@@ -17,28 +17,27 @@ endif
|
||||
FontGfxEnd:
|
||||
|
||||
; Custom addresses. Most are arbitrary. Feel free to make sure they're okay or moving them elsewhere within ZP
|
||||
!CreditsPtr = $7C ; 3 bytes
|
||||
!Temp = $B3 ; 2 bytes
|
||||
!StatsBottom = $B5 ; 2 bytes
|
||||
!StatsPtr = $B7 ; 3 bytes
|
||||
!ValueLow = $BA ; 2 bytes
|
||||
!ValueHigh = $BC ; 2 bytes
|
||||
!Hours = $72 ; 2 bytes
|
||||
!Minutes = $74 ; 2 bytes
|
||||
!Seconds = $76 ; 2 bytes
|
||||
!RemoveZero = $78 ; 2 bytes
|
||||
|
||||
CreditsPtr = $7C ; 3 bytes
|
||||
Temp = $B3 ; 2 bytes
|
||||
StatsBottom = $B5 ; 2 bytes
|
||||
StatsPtr = $B7 ; 3 bytes
|
||||
ValueLow = $BA ; 2 bytes
|
||||
ValueHigh = $BC ; 2 bytes
|
||||
Hours = $72 ; 2 bytes
|
||||
Minutes = $74 ; 2 bytes
|
||||
Seconds = $76 ; 2 bytes
|
||||
RemoveZero = $78 ; 2 bytes
|
||||
|
||||
; Original addresses
|
||||
!LineNumber = $CA ; 2 bytes
|
||||
LineNumber = $CA ; 2 bytes
|
||||
|
||||
PreparePointer:
|
||||
LDA.w #$2300
|
||||
STA.b !CreditsPtr+1
|
||||
STA.b CreditsPtr+1
|
||||
LDA.w #CreditsLineTable
|
||||
STA.b !CreditsPtr
|
||||
LDA [!CreditsPtr],Y
|
||||
STA.b !CreditsPtr
|
||||
STA.b CreditsPtr
|
||||
LDA.b [CreditsPtr],Y
|
||||
STA.b CreditsPtr
|
||||
LDY.w #$0000
|
||||
RTL
|
||||
|
||||
@@ -84,30 +83,21 @@ BitMasks:
|
||||
dw $3FFF
|
||||
dw $7FFF
|
||||
|
||||
macro AddStat(address, type, shiftRight, bits, digits, xPos, lineNumber)
|
||||
db <xPos><<2|<type><<9|<lineNumber>>>8
|
||||
db <lineNumber>
|
||||
db <bits><<4|<shiftRight>
|
||||
db <digits><<5
|
||||
db $00
|
||||
dl <address>
|
||||
endmacro
|
||||
|
||||
macro StripeStart(xPos, length)
|
||||
LDA $C8
|
||||
LDA.b $C8
|
||||
CLC
|
||||
ADC.w #<xPos>
|
||||
XBA
|
||||
STA $1002,x
|
||||
STA.w $1002,x
|
||||
|
||||
LDA.w #<length>*2-1
|
||||
XBA
|
||||
LDA #$0500
|
||||
STA $1004,x
|
||||
LDA.w #$0500
|
||||
STA.w $1004,x
|
||||
endmacro
|
||||
|
||||
macro StripeTile()
|
||||
STA $1006,x
|
||||
STA.w $1006,x
|
||||
INX
|
||||
INX
|
||||
endmacro
|
||||
@@ -123,27 +113,27 @@ HexToDecStats:
|
||||
PHA
|
||||
PHA
|
||||
LDA.w #$0000
|
||||
STA $7F5003 : STA $7F5005 : STA $7F5006 ; clear digit storage
|
||||
STA.l $7F5003 : STA.l $7F5005 : STA.l $7F5006 ; clear digit storage
|
||||
PLA
|
||||
-
|
||||
CMP.w #10000 : !BLT +
|
||||
PHA : SEP #$20 : LDA $7F5003 : INC : STA $7F5003 : REP #$20 : PLA
|
||||
PHA : SEP #$20 : LDA.l $7F5003 : INC : STA.l $7F5003 : REP #$20 : PLA
|
||||
!SUB.w #10000 : BRA -
|
||||
+ -
|
||||
CMP.w #1000 : !BLT +
|
||||
PHA : SEP #$20 : LDA $7F5004 : INC : STA $7F5004 : REP #$20 : PLA
|
||||
PHA : SEP #$20 : LDA.l $7F5004 : INC : STA.l $7F5004 : REP #$20 : PLA
|
||||
!SUB.w #1000 : BRA -
|
||||
+ -
|
||||
CMP.w #100 : !BLT +
|
||||
PHA : SEP #$20 : LDA $7F5005 : INC : STA $7F5005 : REP #$20 : PLA
|
||||
PHA : SEP #$20 : LDA.l $7F5005 : INC : STA.l $7F5005 : REP #$20 : PLA
|
||||
!SUB.w #100 : BRA -
|
||||
+ -
|
||||
CMP.w #10 : !BLT +
|
||||
PHA : SEP #$20 : LDA $7F5006 : INC : STA $7F5006 : REP #$20 : PLA
|
||||
PHA : SEP #$20 : LDA.l $7F5006 : INC : STA.l $7F5006 : REP #$20 : PLA
|
||||
!SUB.w #10 : BRA -
|
||||
+ -
|
||||
CMP.w #1 : !BLT +
|
||||
PHA : SEP #$20 : LDA $7F5007 : INC : STA $7F5007 : REP #$20 : PLA
|
||||
PHA : SEP #$20 : LDA.l $7F5007 : INC : STA.l $7F5007 : REP #$20 : PLA
|
||||
!SUB.w #1 : BRA -
|
||||
+
|
||||
PLA
|
||||
@@ -151,13 +141,13 @@ RTL
|
||||
|
||||
LastHexDigit:
|
||||
TYA
|
||||
AND #$000F
|
||||
AND.w #$000F
|
||||
PHA
|
||||
TYA
|
||||
LSR #4
|
||||
TAY
|
||||
CLC
|
||||
LDA !StatsBottom
|
||||
LDA.b StatsBottom
|
||||
BNE +
|
||||
; Upper half
|
||||
PLA
|
||||
@@ -172,18 +162,18 @@ FindLine:
|
||||
LDY.w #$0000
|
||||
|
||||
- LDA.w CreditsStats,y
|
||||
STZ !StatsBottom
|
||||
STZ.b StatsBottom
|
||||
CMP #$FFFF
|
||||
BEQ .noLine
|
||||
|
||||
XBA
|
||||
AND #$01FF
|
||||
CMP !LineNumber
|
||||
AND.w #$01FF
|
||||
CMP.b LineNumber
|
||||
BEQ .lineFound
|
||||
|
||||
INC
|
||||
INC !StatsBottom
|
||||
CMP !LineNumber
|
||||
INC.b StatsBottom
|
||||
CMP.b LineNumber
|
||||
BEQ .lineFound
|
||||
|
||||
INY #8
|
||||
@@ -203,26 +193,26 @@ FindLine:
|
||||
!MAX_FRAME_COUNT = 59*60+59*60+59*60+99
|
||||
|
||||
macro CountUnits(framesPerUnit, unitCounter)
|
||||
STZ <unitCounter>
|
||||
STZ.b <unitCounter>
|
||||
?loop:
|
||||
LDA !ValueLow
|
||||
LDA.b ValueLow
|
||||
SEC
|
||||
SBC.w #<framesPerUnit>
|
||||
STA !Temp
|
||||
LDA !ValueHigh
|
||||
STA.b Temp
|
||||
LDA.b ValueHigh
|
||||
SBC.w #<framesPerUnit>>>16
|
||||
BCC ?end
|
||||
STA !ValueHigh
|
||||
LDA !Temp
|
||||
STA !ValueLow
|
||||
INC <unitCounter>
|
||||
STA.b ValueHigh
|
||||
LDA.b Temp
|
||||
STA.b ValueLow
|
||||
INC.b <unitCounter>
|
||||
BRA ?loop
|
||||
?end:
|
||||
endmacro
|
||||
|
||||
!ColonOffset = $83
|
||||
!PeriodOffset = $80
|
||||
!BlankTile = #$883D
|
||||
BlankTile = $883D
|
||||
|
||||
RenderCreditsStatCounter:
|
||||
PHB
|
||||
@@ -248,44 +238,44 @@ RenderCreditsStatCounter:
|
||||
; == Write Stripe header (VRAM address, i.e. tile coordinates) ==
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR #3
|
||||
AND #$001F ; X XXXX
|
||||
AND.w #$001F ; X XXXX
|
||||
CLC
|
||||
ADC $C8
|
||||
ADC.w $C8
|
||||
XBA
|
||||
STA $1002,x
|
||||
STA.w $1002,x
|
||||
|
||||
; == Write Stripe header (Length of data) ==
|
||||
LDA.w #4*2-1 ; 4 tiles = 8 bytes
|
||||
XBA
|
||||
STA $1004,x
|
||||
STA.w $1004,x
|
||||
PHX
|
||||
|
||||
; == Load tile base (upper or lower half of white two-line zero) ==
|
||||
LDA !StatsBottom
|
||||
LDA.b StatsBottom
|
||||
BNE +
|
||||
LDA #$3D40
|
||||
LDA.w #$3D40
|
||||
BRA ++
|
||||
+ LDA #$3D50
|
||||
++ STA !Temp
|
||||
+ LDA.w #$3D50
|
||||
++ STA.b Temp
|
||||
|
||||
; == Load the actual stat word ==
|
||||
LDA.w CreditsStats+5,y
|
||||
STA.b !StatsPtr
|
||||
STA.b StatsPtr
|
||||
LDA.w CreditsStats+6,y
|
||||
STA.b !StatsPtr+1
|
||||
LDA.b [!StatsPtr]
|
||||
STA !ValueLow
|
||||
STA.b StatsPtr+1
|
||||
LDA.b [StatsPtr]
|
||||
STA.b ValueLow
|
||||
|
||||
; == Shift value ==
|
||||
LDA.w CreditsStats+2,y; CCC- ---- BBBB SSSS
|
||||
AND.w #$000F ; SSSS
|
||||
BEQ +
|
||||
TAX
|
||||
LDA !ValueLow
|
||||
LDA.b ValueLow
|
||||
- LSR
|
||||
DEX
|
||||
BNE -
|
||||
STA !ValueLow
|
||||
STA.b ValueLow
|
||||
+
|
||||
; == Mask value ==
|
||||
LDA.w CreditsStats+2,y; CCC- ---- BBBB SSSS
|
||||
@@ -295,8 +285,8 @@ RenderCreditsStatCounter:
|
||||
AND.w #$001E
|
||||
TAX
|
||||
LDA.l BitMasks,x
|
||||
AND !ValueLow
|
||||
STA !ValueLow
|
||||
AND.b ValueLow
|
||||
STA.b ValueLow
|
||||
|
||||
; == Cap value ==
|
||||
LDA.w CreditsStats+3,y; ---- ---- CCC- ----
|
||||
@@ -305,60 +295,58 @@ RenderCreditsStatCounter:
|
||||
BEQ +
|
||||
ASL : TAX
|
||||
LDA.l ValueCaps,x
|
||||
CMP !ValueLow
|
||||
CMP.b ValueLow
|
||||
!BGE +
|
||||
STA !ValueLow
|
||||
STA.b ValueLow
|
||||
+
|
||||
; == Display value ==
|
||||
LDA !ValueLow
|
||||
LDA.b ValueLow
|
||||
JSL HexToDecStats
|
||||
PLX
|
||||
STZ !RemoveZero
|
||||
STZ.b RemoveZero
|
||||
|
||||
LDA $7F5004
|
||||
AND #$00FF
|
||||
CMP !RemoveZero
|
||||
LDA.l $7F5004
|
||||
AND.w #$00FF
|
||||
CMP.b RemoveZero
|
||||
BNE +
|
||||
LDA !BlankTile
|
||||
LDA.w #BlankTile
|
||||
BRA ++
|
||||
+ DEC !RemoveZero
|
||||
+ DEC.b RemoveZero
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
++ %StripeTile()
|
||||
|
||||
LDA $7F5005
|
||||
LDA.l $7F5005
|
||||
AND #$00FF
|
||||
CMP !RemoveZero
|
||||
CMP.b RemoveZero
|
||||
BNE +
|
||||
LDA !BlankTile
|
||||
LDA.w #BlankTile
|
||||
BRA ++
|
||||
+ DEC !RemoveZero
|
||||
+ DEC.b RemoveZero
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
++ %StripeTile()
|
||||
|
||||
LDA $7F5006
|
||||
AND #$00FF
|
||||
CMP !RemoveZero
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CMP.b RemoveZero
|
||||
BNE +
|
||||
LDA !BlankTile
|
||||
LDA.w #BlankTile
|
||||
BRA ++
|
||||
+ DEC !RemoveZero
|
||||
+ DEC.b RemoveZero
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
++ %StripeTile()
|
||||
|
||||
LDA $7F5007
|
||||
AND #$00FF
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
%StripeEnd()
|
||||
.endStats
|
||||
|
||||
;JSR RenderLineNumber
|
||||
|
||||
PLB
|
||||
RTL
|
||||
|
||||
@@ -368,131 +356,131 @@ RenderCreditsStatCounter:
|
||||
; == Write Stripe header (VRAM address, i.e. tile coordinates) ==
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR #3
|
||||
AND #$001F ; X XXXX
|
||||
AND.w #$001F ; X XXXX
|
||||
CLC
|
||||
ADC $C8
|
||||
ADC.b $C8
|
||||
XBA
|
||||
STA $1002,x
|
||||
STA.w $1002,x
|
||||
|
||||
; == Write Stripe header (Length of data) ==
|
||||
LDA.w #11*2-1 ; 11 tiles = 22 bytes
|
||||
XBA
|
||||
STA $1004,x
|
||||
STA.w $1004,x
|
||||
PHX
|
||||
|
||||
; == Load the actual stat words ==
|
||||
LDA.w CreditsStats+5,y
|
||||
STA.b !StatsPtr
|
||||
STA.b StatsPtr
|
||||
LDA.w CreditsStats+6,y
|
||||
STA.b !StatsPtr+1
|
||||
LDA.b [!StatsPtr]
|
||||
STA !ValueLow
|
||||
INC !StatsPtr
|
||||
INC !StatsPtr
|
||||
LDA.b [!StatsPtr]
|
||||
STA !ValueHigh
|
||||
STA.b StatsPtr+1
|
||||
LDA.b [StatsPtr]
|
||||
STA.b ValueLow
|
||||
INC.b StatsPtr
|
||||
INC.b StatsPtr
|
||||
LDA.b [StatsPtr]
|
||||
STA.b ValueHigh
|
||||
|
||||
CMP.w #!MAX_FRAME_COUNT>>16+1
|
||||
!BGE ++
|
||||
|
||||
; == Convert total frames into hours, minutes, seconds and frames ==
|
||||
%CountUnits(!FRAMES_PER_HOUR, !Hours)
|
||||
%CountUnits(!FRAMES_PER_MINUTE, !Minutes)
|
||||
%CountUnits(!FRAMES_PER_SECOND, !Seconds)
|
||||
%CountUnits(!FRAMES_PER_HOUR, Hours)
|
||||
%CountUnits(!FRAMES_PER_MINUTE, Minutes)
|
||||
%CountUnits(!FRAMES_PER_SECOND, Seconds)
|
||||
|
||||
; == Cap at 99:59:59.59 ==
|
||||
LDA !Hours
|
||||
LDA.b Hours
|
||||
CMP.w #100
|
||||
!BLT +
|
||||
++ LDA.w #99
|
||||
STA !Hours
|
||||
STA.b Hours
|
||||
LDA.w #59
|
||||
STA !Minutes
|
||||
STA !Seconds
|
||||
STA !ValueLow
|
||||
STA.b Minutes
|
||||
STA.b Seconds
|
||||
STA.b ValueLow
|
||||
+
|
||||
|
||||
; == Load tile base (upper or lower half of white two-line zero) ==
|
||||
LDA !StatsBottom
|
||||
LDA.b StatsBottom
|
||||
BNE +
|
||||
LDA #$3D40
|
||||
LDA.w #$3D40
|
||||
BRA ++
|
||||
+ LDA #$3D50
|
||||
++ STA !Temp
|
||||
+ LDA.w #$3D50
|
||||
++ STA.b Temp
|
||||
|
||||
PLX
|
||||
|
||||
; == Display value ==
|
||||
LDA !Hours
|
||||
LDA.b Hours
|
||||
JSL HexToDecStats
|
||||
|
||||
LDA $7F5006
|
||||
AND #$00FF
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA $7F5007
|
||||
AND #$00FF
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.w #!ColonOffset
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA !Minutes
|
||||
LDA.b Minutes
|
||||
JSL HexToDecStats
|
||||
LDA $7F5006
|
||||
AND #$00FF
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA $7F5007
|
||||
AND #$00FF
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.w #!ColonOffset
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA !Seconds
|
||||
LDA.b Seconds
|
||||
JSL HexToDecStats
|
||||
LDA $7F5006
|
||||
AND #$00FF
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA $7F5007
|
||||
AND #$00FF
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.w #!PeriodOffset
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA !ValueLow
|
||||
LDA.b ValueLow
|
||||
JSL HexToDecStats
|
||||
LDA $7F5006
|
||||
AND #$00FF
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA $7F5007
|
||||
AND #$00FF
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC !Temp
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
%StripeEnd()
|
||||
@@ -502,13 +490,13 @@ RenderCreditsStatCounter:
|
||||
RenderLineNumber:
|
||||
%StripeStart(0, 3)
|
||||
|
||||
STZ !StatsBottom
|
||||
LDA $CA
|
||||
STZ.b StatsBottom
|
||||
LDA.b $CA
|
||||
TAY
|
||||
AND #$0001
|
||||
AND.w #$0001
|
||||
BEQ +
|
||||
DEY
|
||||
INC !StatsBottom
|
||||
INC.b StatsBottom
|
||||
+
|
||||
JSR LastHexDigit
|
||||
PHA
|
||||
@@ -530,21 +518,21 @@ LoadModifiedFont:
|
||||
; copies font graphics to VRAM (for BG3)
|
||||
|
||||
; set name base table to vram $4000 (word)
|
||||
LDA.b #$02 : STA $2101
|
||||
LDA.b #$02 : STA.w OBSEL
|
||||
|
||||
; increment on writes to $2119
|
||||
LDA.b #$80 : STA $2115
|
||||
LDA.b #$80 : STA.w VMAIN
|
||||
|
||||
; set bank of the source address (see below)
|
||||
LDA.b #FontGfx>>16 : STA $02
|
||||
LDA.b #FontGfx>>16 : STA.b Scrap02
|
||||
|
||||
REP #$30
|
||||
|
||||
; vram target address is $7000 (word)
|
||||
LDA.w #$7000 : STA $2116
|
||||
LDA.w #$7000 : STA.w VMADDL
|
||||
|
||||
; $00[3] = $0E8000 (offset for the font data)
|
||||
LDA.w #FontGfx : STA $00
|
||||
LDA.w #FontGfx : STA.b Scrap00
|
||||
|
||||
; going to write 0x1000 bytes (0x800 words)
|
||||
LDX.w #FontGfxEnd-FontGfx/2-1
|
||||
@@ -552,10 +540,10 @@ LoadModifiedFont:
|
||||
.nextWord
|
||||
|
||||
; read a word from the font data
|
||||
LDA [$00] : STA $2118
|
||||
LDA.b [$00] : STA.w VMDATAL
|
||||
|
||||
; increment source address by 2
|
||||
INC $00 : INC $00
|
||||
INC.b Scrap00 : INC.b Scrap00
|
||||
|
||||
DEX : BPL .nextWord
|
||||
|
||||
@@ -569,18 +557,18 @@ LoadFullItemTilesCredits:
|
||||
; copies font graphics to VRAM (for BG3)
|
||||
|
||||
; increment on writes to $2119
|
||||
LDA.b #$80 : STA $2115
|
||||
LDA.b #$80 : STA.w VMAIN
|
||||
|
||||
; set bank of the source address (see below)
|
||||
LDA.b #FileSelectNewGraphics>>16 : STA $02
|
||||
LDA.b #FileSelectNewGraphics>>16 : STA.b Scrap02
|
||||
|
||||
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
|
||||
LDA.w #$8000 : STA.w VMADDL
|
||||
|
||||
; $00[3] = $0E8000 (offset for the font data)
|
||||
LDA.w #FileSelectNewGraphics : STA $00
|
||||
LDA.w #FileSelectNewGraphics : STA.b Scrap00
|
||||
|
||||
; going to write 0x1000 bytes (0x800 words)
|
||||
LDX.w #$800-1
|
||||
@@ -588,10 +576,10 @@ LoadFullItemTilesCredits:
|
||||
.nextWord
|
||||
|
||||
; read a word from the font data
|
||||
LDA [$00] : STA $2118
|
||||
LDA.b [$00] : STA.w VMDATAL
|
||||
|
||||
; increment source address by 2
|
||||
INC $00 : INC $00
|
||||
INC.b Scrap00 : INC.b Scrap00
|
||||
|
||||
DEX : BPL .nextWord
|
||||
|
||||
@@ -629,7 +617,7 @@ DrawEndingItems:
|
||||
JSL DrawPlayerFile_credits
|
||||
JSL SetItemLayoutPriority
|
||||
SEP #$30
|
||||
LDA.b #$01 : STA $14
|
||||
LDA.b #$01 : STA.b $14
|
||||
RTS
|
||||
|
||||
FontTable:
|
||||
@@ -650,13 +638,13 @@ org $0EE651
|
||||
|
||||
org $0EE828
|
||||
JSL PreparePointer
|
||||
LDA [!CreditsPtr],Y
|
||||
LDA.b [CreditsPtr],Y
|
||||
NOP
|
||||
org $0EE83F
|
||||
LDA [!CreditsPtr],Y
|
||||
LDA.b [CreditsPtr],Y
|
||||
NOP
|
||||
org $0EE853
|
||||
LDA [!CreditsPtr],Y
|
||||
LDA.b [CreditsPtr],Y
|
||||
NOP
|
||||
AND.w #$00ff
|
||||
ASL A
|
||||
|
||||
@@ -1,4 +1,50 @@
|
||||
;(address, type, shiftRight, bits, digits, xPos, lineNumber)
|
||||
!FIRST_SWORD_X = 19
|
||||
!FIRST_SWORD_Y = 310
|
||||
!PEGASUS_BOOTS_X = 19
|
||||
!PEGASUS_BOOTS_Y = 313
|
||||
!FLUTE_X = 19
|
||||
!FLUTE_Y = 316
|
||||
!MIRROR_X = 19
|
||||
!MIRROR_Y = 319
|
||||
!SWORDLESS_X = 23
|
||||
!SWORDLESS_Y = 327
|
||||
!FIGHTERS_SWORD_X = 23
|
||||
!FIGHTERS_SWORD_Y = 330
|
||||
!MASTER_SWORD_X = 23
|
||||
!MASTER_SWORD_Y = 333
|
||||
!TEMPERED_SWORD_X = 23
|
||||
!TEMPERED_SWORD_Y = 336
|
||||
!GOLD_SWORD_X = 23
|
||||
!GOLD_SWORD_Y = 339
|
||||
!DAMAGETAKEN_X = 26
|
||||
!DAMAGETAKEN_Y = 346
|
||||
!MAGICUSED_X = 26
|
||||
!MAGICUSED_Y = 349
|
||||
!BONKS_X = 26
|
||||
!BONKS_Y = 352
|
||||
!SAVE_AND_QUITS_X = 26
|
||||
!SAVE_AND_QUITS_Y = 355
|
||||
!DEATHS_X = 26
|
||||
!DEATHS_Y = 358
|
||||
!FAERIE_REVIVALS_X = 26
|
||||
!FAERIE_REVIVALS_Y = 361
|
||||
!TOTAL_MENU_TIME_X = 19
|
||||
!TOTAL_MENU_TIME_Y = 364
|
||||
!TOTAL_LAG_TIME_X = 19
|
||||
!TOTAL_LAG_TIME_Y = 367
|
||||
!COLLECTION_RATE_X = 22
|
||||
!COLLECTION_RATE_Y = 380
|
||||
!TOTAL_TIME_X = 19
|
||||
!TOTAL_TIME_Y = 383
|
||||
|
||||
macro AddStat(address, type, shiftRight, bits, digits, xPos, lineNumber)
|
||||
db <xPos><<2|<type><<9|<lineNumber>>>8
|
||||
db <lineNumber>
|
||||
db <bits><<4|<shiftRight>
|
||||
db <digits><<5
|
||||
db $00
|
||||
dl <address>
|
||||
endmacro
|
||||
|
||||
%AddStat(SwordTime, 1, 0, 32, 4, !FIRST_SWORD_X, !FIRST_SWORD_Y)
|
||||
%AddStat(BootsTime, 1, 0, 32, 4, !PEGASUS_BOOTS_X, !PEGASUS_BOOTS_Y)
|
||||
|
||||
Reference in New Issue
Block a user