From c48469ec80d8fddf896a964d09604aba8f01b657 Mon Sep 17 00:00:00 2001 From: 4am Date: Fri, 10 Dec 2021 21:50:10 -0500 Subject: [PATCH] add DGR mode and action screenshots for DGR games fixes https://github.com/a2-4am/4cade/issues/326 --- Makefile | 5 +- bin/check-attract-mode.sh | 2 + bin/generate-mini-attract-mode.sh | 8 +++ res/ACTION.DGR/BEJEWELED | Bin 0 -> 2048 bytes res/ACTION.DGR/FLAPPLE.BIRD | Bin 0 -> 2048 bytes res/ACTION.DGR/FLAPPLE.BIRD2 | Bin 0 -> 2048 bytes res/ATTRACT.CONF | 3 + res/ATTRACT/BEJEWELED | 1 + res/ATTRACT/FLAPPLE.BIRD | 2 + res/SS/ACTDGR1.CONF | 9 +++ src/4cade.a | 1 + src/constants.a | 2 +- src/fx/fx.dgr.fizzle.a | 36 ++++++++++ src/index/artwork.idx.a | 2 +- src/index/attract.idx.a | 4 +- src/index/cache00.idx.a | 2 +- src/index/cache01.idx.a | 2 +- src/index/cache10.idx.a | 2 +- src/index/cache11.idx.a | 2 +- src/index/coverfade.idx.a | 2 +- src/index/credits.idx.a | 2 +- src/index/decrunch.idx.a | 2 +- src/index/dfx.idx.a | 2 +- src/index/dgr.fizzle.idx.a | 8 +++ src/index/dgr.idx.a | 8 +++ src/index/dhgr.idx.a | 2 +- src/index/dtitle.idx.a | 2 +- src/index/fx.idx.a | 2 +- src/index/gamehelp.idx.a | 2 +- src/index/gr.fizzle.idx.a | 2 +- src/index/gr.idx.a | 2 +- src/index/helptext.idx.a | 2 +- src/index/hgr0.idx.a | 2 +- src/index/hgr1.idx.a | 2 +- src/index/hgr2.idx.a | 2 +- src/index/hgr3.idx.a | 2 +- src/index/hgr4.idx.a | 2 +- src/index/hgr5.idx.a | 2 +- src/index/hgr6.idx.a | 2 +- src/index/joystick.idx.a | 2 +- src/index/miniattract.idx.a | 2 +- src/index/prelaunch.idx.a | 2 +- src/index/search00.idx.a | 2 +- src/index/search01.idx.a | 2 +- src/index/search10.idx.a | 2 +- src/index/search11.idx.a | 2 +- src/index/sfx.idx.a | 2 +- src/index/slideshow.idx.a | 4 +- src/index/title.idx.a | 2 +- src/prodos.path.a | 6 ++ src/ui.attract.dgr.a | 106 ++++++++++++++++++++++++++++++ src/ui.attract.mode.a | 4 ++ src/ui.common.a | 30 +++++++-- src/ui.offscreen.a | 7 +- 54 files changed, 265 insertions(+), 45 deletions(-) create mode 100644 res/ACTION.DGR/BEJEWELED create mode 100644 res/ACTION.DGR/FLAPPLE.BIRD create mode 100644 res/ACTION.DGR/FLAPPLE.BIRD2 create mode 100644 res/SS/ACTDGR1.CONF create mode 100644 src/fx/fx.dgr.fizzle.a create mode 100644 src/index/dgr.fizzle.idx.a create mode 100644 src/index/dgr.idx.a create mode 100644 src/ui.attract.dgr.a diff --git a/Makefile b/Makefile index 7a302b296..bd3f7d067 100644 --- a/Makefile +++ b/Makefile @@ -141,10 +141,11 @@ index: md asmfx asmprelaunch compress [ -f build/index ] || ((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/index ] || ((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 +# precompute indexed files for GR and DGR action screenshots # note: these can be padded because they are not compressed # [ -f build/index ] || ((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) + [ -f build/index ] || ((for f in res/ACTION.DGR/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a -p build/TOTAL.DATA res/ACTION.DGR > build/DGR.IDX) # # precompute indexed files for SHR artwork # note: these can not be padded because they are compressed and the decompressor needs the exact size @@ -190,12 +191,14 @@ index: md asmfx asmprelaunch compress [ -f build/index ] || bin/addfile.sh build/HGR6.IDX build/TOTAL.DATA > src/index/hgr6.idx.a [ -f build/index ] || bin/addfile.sh build/DHGR.IDX build/TOTAL.DATA > src/index/dhgr.idx.a [ -f build/index ] || bin/addfile.sh build/GR.IDX build/TOTAL.DATA > src/index/gr.idx.a + [ -f build/index ] || bin/addfile.sh build/DGR.IDX build/TOTAL.DATA > src/index/dgr.idx.a [ -f build/index ] || bin/addfile.sh build/ARTWORK.IDX build/TOTAL.DATA > src/index/artwork.idx.a # # add additional miscellaneous files # [ -f build/index ] || bin/addfile.sh build/COVERFADE build/TOTAL.DATA > src/index/coverfade.idx.a [ -f build/index ] || bin/addfile.sh build/GR.FIZZLE build/TOTAL.DATA > src/index/gr.fizzle.idx.a + [ -f build/index ] || bin/addfile.sh build/DGR.FIZZLE build/TOTAL.DATA > src/index/dgr.fizzle.idx.a [ -f build/index ] || bin/addfile.sh build/HELPTEXT build/TOTAL.DATA > src/index/helptext.idx.a [ -f build/index ] || bin/addfile.sh build/CREDITS build/TOTAL.DATA > src/index/credits.idx.a [ -f build/index ] || bin/addfile.sh res/DECRUNCH build/TOTAL.DATA > src/index/decrunch.idx.a diff --git a/bin/check-attract-mode.sh b/bin/check-attract-mode.sh index 9d36ad228..2a4b52edc 100755 --- a/bin/check-attract-mode.sh +++ b/bin/check-attract-mode.sh @@ -81,6 +81,8 @@ cat res/ATTRACT.CONF | check_slideshow res/SS/"$module_name" res/ARTWORK.SHR/ elif [ "$module_type" = "6" ]; then check_slideshow res/SS/"$module_name" res/ACTION.GR/ + elif [ "$module_type" = "7" ]; then + check_slideshow res/SS/"$module_name" res/ACTION.DGR/ else fatal_error "Unknown module type" $module_type fi diff --git a/bin/generate-mini-attract-mode.sh b/bin/generate-mini-attract-mode.sh index 440139855..6e50c7fc7 100755 --- a/bin/generate-mini-attract-mode.sh +++ b/bin/generate-mini-attract-mode.sh @@ -43,6 +43,14 @@ cat res/GAMES.CONF | sort | uniq >> /tmp/g + # add DGR action screenshots, if any + cat res/SS/ACTDGR*.CONF | + egrep "(^|=)""$game""$" | + cut -d"=" -f1 | + sed -e "s/$/=E/g" | + sort | + uniq >> /tmp/g + # add self-running demo, if any cat res/ATTRACT.CONF | grep "^$game=0" >> /tmp/g diff --git a/res/ACTION.DGR/BEJEWELED b/res/ACTION.DGR/BEJEWELED new file mode 100644 index 0000000000000000000000000000000000000000..a3d3ff7a5e24f1d6dd0d1c4b3a6e9b5be5e8a189 GIT binary patch literal 2048 zcmYk5F-s&t5QS@Z4{<@y-2)T3U>Pu97)(t34Js`N3MOt~;$JWnqfHFf=tK~0MD8D) zaF~d}C58(ZU$873Tsl`@bysV{P`sX+s#mYxG+SFM@#5k_o}MJWyhM@T660Dl9RDcx z(~)?0cPERBi!t8l{bz}{w;J{S{{G&x;%pXWG8tPOjYe@YxhnYe_0{vf<HIn)4CrySMZIhrpr zN74Hab4jb!O1@BT<_q_SM)OT7So)KL)t_#aO@*64ZOf93SFSzTQXG9F8~ybSV7B&>&o-!!IE ziLPRMdpl4f?CJfo<{caa?ss>0OJ0~x!?3P}$mkn&UGQWw@%EK8jeKdEW??jH`u%?3 zojyUPQ(3Pn!_@Hp#%-uQkB^O`afT~c?@Qic2%Szxf<}A=w}Rh)lj=v)v_5J7`M-I? zT>1}5*x$Fgc6N3Wrbapy+?Z=`G%}8GhAWtR&y#_2dVWqiZs_;AtKbo?=`jCSeHwd* z_O3ZO)BwNlwSt??k+nC@>_9R1UUyJc{LaP=?Nwjf0nxa>_ixjm9JF`M$)N_A{drw9 zE*$a2AY<`n634~lG;hC^@yh6)$U;5_}<7U134Hyhaq;ZI0n zG7N7kdG7|8i=24e=_D5**Y_cO&<;v9;ztEf>WoTA^=215;A^b+*sy_Dd~H5)U5p{% zmrnxJ@+k!3eA7df)KQ=Mg$6QET307VuG!YN;~kep%(9?%-aq9>N|3Yci~D;wsc45#z+v`DK4 zT$*!DERTg49UBv8`QESVN;AyHq|Ltd%$K?5di8yJ;L@CH_;xaMU+*6Ijs}EVL`xQD za=W$pG%*l2tukoSxm#}wR%Wo#OJF;;1wC;TQiLt@PBl#;_AJ(K&%YYC~| z>_RKSm#-a3;Jar-f!yUQf1W!=?|X|Mm0uG?Fup`l@#++Y@CC8K>b5P3A+IVYDr*|Y zO-r>bQZy4_-XA1RaNoh7ATd%l+==F~yv66A0-Nl)tl;03Pi>>7nV2J=x&&(OQ|%b~ zH=XKg4tco+p9OTA|9z}~DYyD%45QhB*r5i2Sq&`PWrmd(^Ni^6=;Zd|cL+SW5kV*+2X>e3hjSUu#T4epU;l%&IURE{_j5B#Z9ADu~-a;6@*R0*nxE+e5&O#%XGmTLq;}o`4sK7TPKgf zX9GR8TCdAe7rZfKly5Gdhwn;@&{01mkMKS7A_YLG>u>voRAc#S!tQxlF*WBxSa0I_ zt}=c49iOgN$e_K`$o^58z{C4yV>sc}J>7~ zFH+zn%;!hP4gR0RMEU*mA_YMB+*izgW4tF~I`dzC=T9sF!aljWen!5(cN#W-g+~t^ iRr4M4JU1*b#gA#&mgt9n@eQ~u)S4qxqbkh(4h|i literal 0 HcmV?d00001 diff --git a/res/ATTRACT.CONF b/res/ATTRACT.CONF index 42a9c8749..fa9472a85 100644 --- a/res/ATTRACT.CONF +++ b/res/ATTRACT.CONF @@ -25,10 +25,12 @@ # 4 = DHGR action slideshow (|key| is a file in /SS/ containing files in /ACTION.DHGR/) # 5 = SHR box art slideshow (|key| is a file in /SS/ containing files in /ARTWORK.SHR/) # 6 = GR action slideshow (|key| is a file in /SS/ containing files in /ACTION.GR/) +# 7 = DGR action slideshow (|key| is a file in /SS/ containing files in /ACTION.DGR/) # A = single HGR file (|key| is a file in /ACTION.HGR/) # B = single DHGR file (|key| is a file in /ACTION.DHGR/) # C = single SHR file (|key| is a file in /ARTWORK.SHR/) # D = single GR file (|key| is a file in /ACTION.GR/) +# E = single DGR file (|key| is a file in /ACTION.DGR/) # # Blank lines and lines beginning with '#' are ignored (like this one!) # A line beginning with '[' terminates the parsing @@ -47,6 +49,7 @@ ACTIONPOP.CONF=2 SAMMY.LIGHTFOOT=0 ACTIONEFG6.CONF=2 ADVINT.CONF=1 +ACTDGR1.CONF=7 SHR1.CONF=5 # set 2 diff --git a/res/ATTRACT/BEJEWELED b/res/ATTRACT/BEJEWELED index 139317126..089a5d53b 100644 --- a/res/ATTRACT/BEJEWELED +++ b/res/ATTRACT/BEJEWELED @@ -3,5 +3,6 @@ # This file is automatically generated # +BEJEWELED=E [eof] diff --git a/res/ATTRACT/FLAPPLE.BIRD b/res/ATTRACT/FLAPPLE.BIRD index 1e40de558..faf244239 100644 --- a/res/ATTRACT/FLAPPLE.BIRD +++ b/res/ATTRACT/FLAPPLE.BIRD @@ -3,5 +3,7 @@ # This file is automatically generated # +FLAPPLE.BIRD2=E +FLAPPLE.BIRD=E [eof] diff --git a/res/SS/ACTDGR1.CONF b/res/SS/ACTDGR1.CONF new file mode 100644 index 000000000..8ec0cfb01 --- /dev/null +++ b/res/SS/ACTDGR1.CONF @@ -0,0 +1,9 @@ +# +# action shots slideshow of double lo-res games +# + +FLAPPLE.BIRD +BEJEWELED +FLAPPLE.BIRD2=FLAPPLE.BIRD + +[eof] diff --git a/src/4cade.a b/src/4cade.a index 4905b1d50..d101cc837 100644 --- a/src/4cade.a +++ b/src/4cade.a @@ -104,6 +104,7 @@ ResetVector ; 6 bytes, copied to $100 !source "src/ui.attract.dhgr.a" !source "src/ui.attract.shr.a" !source "src/ui.attract.gr.a" + !source "src/ui.attract.dgr.a" !source "src/ui.offscreen.a" !source "src/ui.cheats.a" !source "src/ui.credits.a" diff --git a/src/constants.a b/src/constants.a index a19f36c15..cf61aa537 100644 --- a/src/constants.a +++ b/src/constants.a @@ -201,7 +201,7 @@ PRELAUNCH_STANDARD_SIZE = 61 ; LoadStandardPrelaunch, eventually to be d iCurBlockLo = $D601 ; constant iCurBlockHi = $D603 ; constant launchpatch = $D853 ; glue.launch.a -iAddToPath = $FECB ; Roger Rabbit, avoid, use Infiltrator 2 style instead +iAddToPath = $FEBF ; Roger Rabbit, avoid, use Infiltrator 2 style instead itraverse = $DB31 ; Roger Rabbit, avoid, use Infiltrator 2 style instead ldrlo = $55 ; constant ldrhi = $56 ; constant diff --git a/src/fx/fx.dgr.fizzle.a b/src/fx/fx.dgr.fizzle.a new file mode 100644 index 000000000..3af32689a --- /dev/null +++ b/src/fx/fx.dgr.fizzle.a @@ -0,0 +1,36 @@ +;license:MIT +;(c) 2017-2021 by qkumba/4am/John Brooks +; +!cpu 6502 +!to "build/DGR.FIZZLE",plain +*=$6000 + +src = $FC +dst = $FE + + ldy #0 + sty src + sty dst + lda #$40 + sta src+1 + sta $C005 + clv +-- ldx #4 + stx dst+1 +- tya + and #$78 + cmp #$78 + beq + ; skip screen holes + lda (src), y + sta (dst), y ++ iny + bne - + inc src+1 + inc dst+1 + dex + bne - + bvs exit + sta $C004 + bit exit + bvs -- ; always branches +exit rts diff --git a/src/index/artwork.idx.a b/src/index/artwork.idx.a index 9a25c8cdb..6950e9335 100644 --- a/src/index/artwork.idx.a +++ b/src/index/artwork.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10925185 + !be24 10931567 !le16 4244 diff --git a/src/index/attract.idx.a b/src/index/attract.idx.a index dd5ade7d4..01e65ec75 100644 --- a/src/index/attract.idx.a +++ b/src/index/attract.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10878065 - !le16 5223 + !be24 10884353 + !le16 5239 diff --git a/src/index/cache00.idx.a b/src/index/cache00.idx.a index 905692e7d..78205583c 100644 --- a/src/index/cache00.idx.a +++ b/src/index/cache00.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10820924 + !be24 10827212 !le16 3586 diff --git a/src/index/cache01.idx.a b/src/index/cache01.idx.a index 2a421b507..5aeb6885f 100644 --- a/src/index/cache01.idx.a +++ b/src/index/cache01.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10833294 + !be24 10839582 !le16 3946 diff --git a/src/index/cache10.idx.a b/src/index/cache10.idx.a index c6f601211..a078ba37d 100644 --- a/src/index/cache10.idx.a +++ b/src/index/cache10.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10848693 + !be24 10854981 !le16 4998 diff --git a/src/index/cache11.idx.a b/src/index/cache11.idx.a index 447dbd830..92605f0c6 100644 --- a/src/index/cache11.idx.a +++ b/src/index/cache11.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10866345 + !be24 10872633 !le16 5571 diff --git a/src/index/coverfade.idx.a b/src/index/coverfade.idx.a index 5582c7d60..ea4d65957 100644 --- a/src/index/coverfade.idx.a +++ b/src/index/coverfade.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10929429 + !be24 10935811 !le16 410 diff --git a/src/index/credits.idx.a b/src/index/credits.idx.a index 21d4da897..ece83db4e 100644 --- a/src/index/credits.idx.a +++ b/src/index/credits.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10930147 + !be24 10936579 !le16 448 diff --git a/src/index/decrunch.idx.a b/src/index/decrunch.idx.a index 70bc71f87..4e7a38a70 100644 --- a/src/index/decrunch.idx.a +++ b/src/index/decrunch.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10930595 + !be24 10937027 !le16 303 diff --git a/src/index/dfx.idx.a b/src/index/dfx.idx.a index 1ff6cb7f6..a397ee439 100644 --- a/src/index/dfx.idx.a +++ b/src/index/dfx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10885434 + !be24 10891738 !le16 1242 diff --git a/src/index/dgr.fizzle.idx.a b/src/index/dgr.fizzle.idx.a new file mode 100644 index 000000000..e2b6ccb7c --- /dev/null +++ b/src/index/dgr.fizzle.idx.a @@ -0,0 +1,8 @@ +; +; Index record for build/DGR.FIZZLE +; +; This file is automatically generated +; + !byte 0 + !be24 10936328 + !le16 50 diff --git a/src/index/dgr.idx.a b/src/index/dgr.idx.a new file mode 100644 index 000000000..4bc1e484a --- /dev/null +++ b/src/index/dgr.idx.a @@ -0,0 +1,8 @@ +; +; Index record for build/DGR.IDX +; +; This file is automatically generated +; + !byte 0 + !be24 10931508 + !le16 59 diff --git a/src/index/dhgr.idx.a b/src/index/dhgr.idx.a index f965864d0..804725ad3 100644 --- a/src/index/dhgr.idx.a +++ b/src/index/dhgr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10923855 + !be24 10930178 !le16 1249 diff --git a/src/index/dtitle.idx.a b/src/index/dtitle.idx.a index 77c6cf7aa..0e11b53ae 100644 --- a/src/index/dtitle.idx.a +++ b/src/index/dtitle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10909845 + !be24 10916168 !le16 464 diff --git a/src/index/fx.idx.a b/src/index/fx.idx.a index 998eecd75..d906ef3e1 100644 --- a/src/index/fx.idx.a +++ b/src/index/fx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10883288 + !be24 10889592 !le16 2146 diff --git a/src/index/gamehelp.idx.a b/src/index/gamehelp.idx.a index 57a0d8ae4..8d0838687 100644 --- a/src/index/gamehelp.idx.a +++ b/src/index/gamehelp.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10886907 + !be24 10893211 !le16 6149 diff --git a/src/index/gr.fizzle.idx.a b/src/index/gr.fizzle.idx.a index e8846e1d8..b40c10c34 100644 --- a/src/index/gr.fizzle.idx.a +++ b/src/index/gr.fizzle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10929839 + !be24 10936221 !le16 107 diff --git a/src/index/gr.idx.a b/src/index/gr.idx.a index 9facea3cb..388ef0d47 100644 --- a/src/index/gr.idx.a +++ b/src/index/gr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10925104 + !be24 10931427 !le16 81 diff --git a/src/index/helptext.idx.a b/src/index/helptext.idx.a index 5d74f9197..7c7d835c8 100644 --- a/src/index/helptext.idx.a +++ b/src/index/helptext.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10929946 + !be24 10936378 !le16 201 diff --git a/src/index/hgr0.idx.a b/src/index/hgr0.idx.a index b733d8ecd..c92c75ffc 100644 --- a/src/index/hgr0.idx.a +++ b/src/index/hgr0.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10910309 + !be24 10916632 !le16 4407 diff --git a/src/index/hgr1.idx.a b/src/index/hgr1.idx.a index 896b6dcb5..ff0c721a7 100644 --- a/src/index/hgr1.idx.a +++ b/src/index/hgr1.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10914716 + !be24 10921039 !le16 1533 diff --git a/src/index/hgr2.idx.a b/src/index/hgr2.idx.a index c7169158f..490928189 100644 --- a/src/index/hgr2.idx.a +++ b/src/index/hgr2.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10916249 + !be24 10922572 !le16 1040 diff --git a/src/index/hgr3.idx.a b/src/index/hgr3.idx.a index ff040d3d6..7c2162652 100644 --- a/src/index/hgr3.idx.a +++ b/src/index/hgr3.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10917289 + !be24 10923612 !le16 3237 diff --git a/src/index/hgr4.idx.a b/src/index/hgr4.idx.a index 325a54b7b..4d268fc3f 100644 --- a/src/index/hgr4.idx.a +++ b/src/index/hgr4.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10920526 + !be24 10926849 !le16 2764 diff --git a/src/index/hgr5.idx.a b/src/index/hgr5.idx.a index f0adb381f..38fcc0b0a 100644 --- a/src/index/hgr5.idx.a +++ b/src/index/hgr5.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10923290 + !be24 10929613 !le16 460 diff --git a/src/index/hgr6.idx.a b/src/index/hgr6.idx.a index c5c2e775e..3237d5c91 100644 --- a/src/index/hgr6.idx.a +++ b/src/index/hgr6.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10923750 + !be24 10930073 !le16 105 diff --git a/src/index/joystick.idx.a b/src/index/joystick.idx.a index 307b8aaf8..5fcbedbf2 100644 --- a/src/index/joystick.idx.a +++ b/src/index/joystick.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10930898 + !be24 10937330 !le16 2370 diff --git a/src/index/miniattract.idx.a b/src/index/miniattract.idx.a index 764bec3e4..1e9b78f35 100644 --- a/src/index/miniattract.idx.a +++ b/src/index/miniattract.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10897950 + !be24 10904273 !le16 6149 diff --git a/src/index/prelaunch.idx.a b/src/index/prelaunch.idx.a index 486698eea..a76a05e16 100644 --- a/src/index/prelaunch.idx.a +++ b/src/index/prelaunch.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10871916 + !be24 10878204 !le16 6149 diff --git a/src/index/search00.idx.a b/src/index/search00.idx.a index 65ef3ed3b..bc1319358 100644 --- a/src/index/search00.idx.a +++ b/src/index/search00.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10812892 + !be24 10819180 !le16 8032 diff --git a/src/index/search01.idx.a b/src/index/search01.idx.a index 317380539..c7edb3587 100644 --- a/src/index/search01.idx.a +++ b/src/index/search01.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10824510 + !be24 10830798 !le16 8784 diff --git a/src/index/search10.idx.a b/src/index/search10.idx.a index 756b4f1b1..b8c2678c6 100644 --- a/src/index/search10.idx.a +++ b/src/index/search10.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10837240 + !be24 10843528 !le16 11453 diff --git a/src/index/search11.idx.a b/src/index/search11.idx.a index 145edab4a..c29abe21c 100644 --- a/src/index/search11.idx.a +++ b/src/index/search11.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10853691 + !be24 10859979 !le16 12654 diff --git a/src/index/sfx.idx.a b/src/index/sfx.idx.a index 11628e510..31c00a614 100644 --- a/src/index/sfx.idx.a +++ b/src/index/sfx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10886676 + !be24 10892980 !le16 231 diff --git a/src/index/slideshow.idx.a b/src/index/slideshow.idx.a index 641818045..a1a91d26e 100644 --- a/src/index/slideshow.idx.a +++ b/src/index/slideshow.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10893056 - !le16 4894 + !be24 10899360 + !le16 4913 diff --git a/src/index/title.idx.a b/src/index/title.idx.a index 5bbfe7b39..3f0359c56 100644 --- a/src/index/title.idx.a +++ b/src/index/title.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 10904099 + !be24 10910422 !le16 5746 diff --git a/src/prodos.path.a b/src/prodos.path.a index 0a07b1fe4..8117c3490 100644 --- a/src/prodos.path.a +++ b/src/prodos.path.a @@ -102,6 +102,9 @@ kDHGRActionIndexRecord kGRActionIndexRecord !source "src/index/gr.idx.a" +kDGRActionIndexRecord + !source "src/index/dgr.idx.a" + kHGRActionIndexLo !byte HGRTitleSlideshow !byte >HGRActionSlideshow @@ -223,11 +225,13 @@ RunAttractModule !byte >DHGRActionSlideshow !byte >SHRSlideshow !byte >GRActionSlideshow + !byte >DGRActionSlideshow @singleshi !byte >HGRSingle !byte >DHGRSingle !byte >SHRSingle !byte >GRSingle + !byte >DGRSingle DemoFilename !byte 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 diff --git a/src/ui.common.a b/src/ui.common.a index 19fce43f1..828dc4890 100755 --- a/src/ui.common.a +++ b/src/ui.common.a @@ -54,6 +54,22 @@ Home lda TEXTMODE jmp UnwaitForVBL +BlankDGR + jsr BlankDHGR + ldy #$2C ; BIT + sty PageFrom + ldx #$04 + stx PageTo+2 + jsr ClearToBlack + sta WRITEAUXMEM + ldx #$04 + stx PageTo+2 + jsr ClearToBlack + sta WRITEMAINMEM + lda #1 + sta OffscreenPage + bne DGRMode ; always branches + ;------------------------------------------------------------------------------ ; BlankDHGR ; clear and show DHGR page 1 without flickering @@ -73,13 +89,20 @@ BlankDHGR ; /!\ execution falls through here to DHGRMode ;------------------------------------------------------------------------------ -; DHGRMode -; switch to DHGR mode (HARDER THAN IT SOUNDS) +; DHGRMode / DGRMode +; switch to DHGR or DGR mode (HARDER THAN IT SOUNDS) ; ; in: none ; out: none ;------------------------------------------------------------------------------ DHGRMode + jsr + + jmp HGRMode +DGRMode + jsr + + bit $C056 + jmp GRMode ++ ; magic sequence to set colour mode on an RGB card ; SET80VID clears the RGB-card shift-register ; DHIRESON/OFF shifts that bit into the mode register @@ -98,8 +121,7 @@ DHGRMode jsr ShowOtherPage lda #1 sta gMachineInDHGRMode - jsr UnwaitForVBL - jmp HGRMode + jmp UnwaitForVBL ;------------------------------------------------------------------------------ ; IsSearchKey diff --git a/src/ui.offscreen.a b/src/ui.offscreen.a index b753c94a2..1884fa92b 100644 --- a/src/ui.offscreen.a +++ b/src/ui.offscreen.a @@ -233,14 +233,15 @@ ClearMem ;------------------------------------------------------------------------------ CopyHGR ldx #$20 - ldy #$B9 ; LDY + ldy #$B9 ; LDA $0000,Y opcode + sty PageFrom sta PageTo+2 +ClearToBlack lda #$00 ClearGR ldy #0 -PageFrom lda $FD00,y ; SMC -PageTo sta $FD00,y ; SMC +PageFrom lda $FD00,y ; SMC address high byte, also SMC opcode (might be BIT) +PageTo sta $FD00,y ; SMC address high byte iny bne PageFrom inc PageFrom+2