store action GR screenshots in TOTAL.DATA

This commit is contained in:
4am 2021-11-09 13:39:16 -05:00
parent 17ebc1990a
commit 03a3113d02
12 changed files with 47 additions and 32 deletions

View File

@ -77,6 +77,7 @@ dsk: asm index
build/HGR5.IDX \ build/HGR5.IDX \
build/HGR6.IDX \ build/HGR6.IDX \
build/DHGR.IDX \ build/DHGR.IDX \
build/GR.IDX \
res/DECRUNCH \ res/DECRUNCH \
res/JOYSTICK \ res/JOYSTICK \
res/Finder.Data \ res/Finder.Data \
@ -178,6 +179,11 @@ index: md asmfx asmprelaunch
[ -f build/HGR6.IDX ] || ((for f in res/ACTION.HGR/[YZ]*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a build/TOTAL.DATA res/ACTION.HGR > build/HGR6.IDX) [ -f build/HGR6.IDX ] || ((for f in res/ACTION.HGR/[YZ]*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a build/TOTAL.DATA res/ACTION.HGR > build/HGR6.IDX)
[ -f build/DHGR.IDX ] || ((for f in res/ACTION.DHGR/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a build/TOTAL.DATA res/ACTION.DHGR > build/DHGR.IDX) [ -f build/DHGR.IDX ] || ((for f in res/ACTION.DHGR/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a build/TOTAL.DATA res/ACTION.DHGR > build/DHGR.IDX)
# #
# precompute indexed files for GR action screenshots
# note: these can be padded because they are not compressed
#
[ -f build/GR.IDX ] || ((for f in res/ACTION.GR/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a -p build/TOTAL.DATA res/ACTION.GR > build/GR.IDX)
#
# precompute indexed files for SHR artwork # precompute indexed files for SHR artwork
# note: these can not be padded because they are compressed and the decompressor needs the exact size # note: these can not be padded because they are compressed and the decompressor needs the exact size
# #

View File

@ -35,7 +35,6 @@ cat res/GAMES.CONF |
cat res/SS/ACTGR*.CONF | cat res/SS/ACTGR*.CONF |
egrep "(^|=)""$game""$" | egrep "(^|=)""$game""$" |
cut -d"=" -f1 | cut -d"=" -f1 |
sed -e "s/^/ACTION.GR\//g" |
sed -e "s/$/=D/g" | sed -e "s/$/=D/g" |
sort | sort |
uniq >> /tmp/g uniq >> /tmp/g

View File

@ -28,7 +28,7 @@
# A = single HGR file (|key| is a file in /ACTION.HGR/) # A = single HGR file (|key| is a file in /ACTION.HGR/)
# B = single DHGR file (|key| is a file in /ACTION.DHGR/) # B = single DHGR file (|key| is a file in /ACTION.DHGR/)
# C = single SHR file (|key| is a file in /ARTWORK.SHR/) # C = single SHR file (|key| is a file in /ARTWORK.SHR/)
# D = single GR file (|key| is arbitrary path from program root directory) # D = single GR file (|key| is a file in /ACTION.GR/)
# #
# Blank lines and lines beginning with '#' are ignored (like this one!) # Blank lines and lines beginning with '#' are ignored (like this one!)
# A line beginning with '[' terminates the parsing # A line beginning with '[' terminates the parsing

View File

@ -3,6 +3,6 @@
# This file is automatically generated # This file is automatically generated
# #
ACTION.GR/BC=D BC=D
[eof] [eof]

View File

@ -4,8 +4,8 @@
# #
FIREBUG=C FIREBUG=C
ACTION.GR/FIREBUG2=D FIREBUG2=D
ACTION.GR/FIREBUG=D FIREBUG=D
FIREBUG=0 FIREBUG=0
[eof] [eof]

View File

@ -3,6 +3,6 @@
# This file is automatically generated # This file is automatically generated
# #
ACTION.GR/OW=D OW=D
[eof] [eof]

View File

@ -3,6 +3,6 @@
# This file is automatically generated # This file is automatically generated
# #
ACTION.GR/POLLYWOG=D POLLYWOG=D
[eof] [eof]

View File

@ -156,7 +156,7 @@ PRELAUNCH_STANDARD_SIZE = 61 ; LoadStandardPrelaunch, eventually to be d
iCurBlockLo = $D401 ; constant iCurBlockLo = $D401 ; constant
iCurBlockHi = $D403 ; constant iCurBlockHi = $D403 ; constant
launchpatch = $D662 ; glue.launch.a launchpatch = $D662 ; glue.launch.a
iAddToPath = $FE90 ; Roger Rabbit, avoid, use Infiltrator 2 style instead iAddToPath = $FE94 ; Roger Rabbit, avoid, use Infiltrator 2 style instead
itraverse = $D964 ; Roger Rabbit, avoid, use Infiltrator 2 style instead itraverse = $D964 ; Roger Rabbit, avoid, use Infiltrator 2 style instead
ldrlo = $55 ; constant ldrlo = $55 ; constant
ldrhi = $56 ; constant ldrhi = $56 ; constant

View File

@ -3,7 +3,7 @@
!cpu 6502 !cpu 6502
!to "build/FX/GR.FIZZLE",plain !to "build/FX/GR.FIZZLE",plain
*=$6400 *=$6000
;init RNG ;init RNG
@ -47,7 +47,7 @@
ora #4 ora #4
sta $3d sta $3d
eor #$64 eor #$44
sta $27 sta $27
;set mask according to offset ;set mask according to offset

View File

@ -80,9 +80,9 @@ kDHGRActionIndexFile
!byte 8 !byte 8
!raw "DHGR.IDX" !raw "DHGR.IDX"
kGRActionDirectory kGRActionIndexFile
!byte 10 !byte 6
!raw "ACTION.GR/" !raw "GR.IDX"
kDemoDirectory kDemoDirectory
!byte 5 !byte 5

View File

@ -33,14 +33,11 @@ GRActionSlideshow
; graphics mode set to display hi-res screen ; graphics mode set to display hi-res screen
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
GRSingle GRSingle
+ST16 @fname +ST16 IndexedGRFilename
jsr BlankGR ; switch to GR mode with initial blank screen jsr BlankGR ; switch to GR mode with initial blank screen
jsr LoadFile ; load GR screenshot into $6000 jsr LoadIndexedGRFile ; load GR screen at $4000
!word kRootDirectory jsr LoadGRTransition ; load transition effect code at $6000
@fname !word $FDFD ; SMC jsr ExecuteTransitionAt6000AndWait
!word $6000
jsr LoadGRTransition ; load transition effect code at $6400
jsr ExecuteTransitionAt6400AndWait
jmp BlankHGR ; switch back to HGR mode with initial blank screen on exit jmp BlankHGR ; switch back to HGR mode with initial blank screen on exit
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
@ -67,14 +64,14 @@ BlankGR
; ;
; in: none ; in: none
; out: all registers and flags clobbered ; out: all registers and flags clobbered
; $6400..$BFFF/main contains transition effect code (probably not all ; $6000..$BFFF/main contains transition effect code (probably not all
; of that, but no promises) ; of that, but no promises)
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
LoadGRTransition LoadGRTransition
jsr LoadFile jsr LoadFile
!word kFXDirectory !word kFXDirectory
!word kGRFizzleFile !word kGRFizzleFile
!word $6400 !word $6000
GRRTS rts GRRTS rts
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
@ -92,7 +89,7 @@ GRActionCallback
bit KBD bit KBD
bmi GRRTS bmi GRRTS
+ST16 + +ST16 IndexedGRFilename
jsr FindGameInActionSlideshow jsr FindGameInActionSlideshow
; if game name is not found (C will be set here), it means the game ; if game name is not found (C will be set here), it means the game
@ -100,9 +97,26 @@ GRActionCallback
; it from slideshows ; it from slideshows
bcs GRRTS bcs GRRTS
jsr LoadFile ; load GR screenshot into $6000 jsr LoadIndexedGRFile
!word kGRActionDirectory jmp ExecuteTransitionAt6000AndWait
+ !word $FDFD ; SMC
!word $6000
jmp ExecuteTransitionAt6400AndWait LoadIndexedGRFile
; in: caller has set IndexedGRFilename
; out: all flags & registers clobbered
jsr LoadFile ; load index file into $4600
!word kRootDirectory
!word kGRActionIndexFile
- !word $4600
jsr okvs_find
!word -
IndexedGRFilename
!word $FDFD ; SMC
+ST16 @indexRecordPtr
jsr LoadIndexedFile ; load GR screenshot at $4000
!word kTotalDataFile ; because that's where the transition code expects to find it
!word $4000
@indexRecordPtr
!word $FDFD ; SMC
rts

View File

@ -4,7 +4,6 @@
; UI functions for doing things then waiting, or waiting then doing things ; UI functions for doing things then waiting, or waiting then doing things
; ;
; - ExecuteTransitionAt6000AndWait ; - ExecuteTransitionAt6000AndWait
; - ExecuteTransitionAt6400AndWait
; - ExecuteTransitionAtA000AndWait ; - ExecuteTransitionAtA000AndWait
; - ExecuteTransitionAndWait ; - ExecuteTransitionAndWait
; - WaitForKeyFor30Seconds ; - WaitForKeyFor30Seconds
@ -13,9 +12,6 @@
ExecuteTransitionAt6000AndWait ExecuteTransitionAt6000AndWait
ldy #$60 ldy #$60
+HIDE_NEXT_2_BYTES +HIDE_NEXT_2_BYTES
ExecuteTransitionAt6400AndWait
ldy #$64
+HIDE_NEXT_2_BYTES
ExecuteTransitionAtA000AndWait ExecuteTransitionAtA000AndWait
ldy #$A0 ldy #$A0
; /!\ execution falls through here to ExecuteTransitionAndWait ; /!\ execution falls through here to ExecuteTransitionAndWait