From 34224f1e654cf93a23c9fb819c1d44f9a30281f1 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Fri, 10 Jun 2022 13:26:21 -0700 Subject: [PATCH] convert Spare Change demo, save 55kb, fix attract --- bin/generate-mini-attract-mode.sh | 12 ++++---- res/ATTRACT/SPARE.CHANGE | 12 ++++---- res/DEMO/SPARE.CHANGE | Bin 19699 -> 122 bytes res/DEMO/SPARE.CHANGE.A | Bin 2048 -> 0 bytes res/DEMO/SPARE.CHANGE.G | Bin 3072 -> 0 bytes res/DEMO/SPARE.CHANGE.H | Bin 3072 -> 0 bytes res/DEMO/SPARE.CHANGE.I | Bin 6144 -> 0 bytes res/DEMO/SPARE.CHANGE.J | Bin 3072 -> 0 bytes res/DEMO/SPARE.CHANGE.K | Bin 6144 -> 0 bytes res/DEMO/SPARE.CHANGE.L | Bin 6144 -> 0 bytes res/DEMO/SPARE.CHANGE.S | Bin 6144 -> 0 bytes res/DEMO/SPARE.CHANGE.Z | Bin 256 -> 0 bytes res/DEMO/SPCARTOON.11 | Bin 79 -> 110 bytes res/DEMO/SPCARTOON.22 | Bin 79 -> 110 bytes res/DEMO/SPCARTOON.33 | Bin 79 -> 110 bytes res/DEMO/SPCARTOON.44 | Bin 79 -> 110 bytes res/DEMO/SPCARTOON.55 | Bin 79 -> 110 bytes res/DEMO/SPCARTOON.66 | Bin 79 -> 110 bytes src/demo/spare.change.a | 48 ++++++++++++++++++++++++++++++ src/demo/spcartoon.1.s | 41 +++++++++++++++++++++++++ src/demo/spcartoon.2.s | 41 +++++++++++++++++++++++++ src/demo/spcartoon.3.s | 41 +++++++++++++++++++++++++ src/demo/spcartoon.4.s | 41 +++++++++++++++++++++++++ src/demo/spcartoon.5.s | 41 +++++++++++++++++++++++++ src/demo/spcartoon.6.s | 41 +++++++++++++++++++++++++ src/index/artwork.idx.a | 2 +- src/index/attract.idx.a | 2 +- 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 | 2 +- src/index/dgr.idx.a | 2 +- 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/miniattract0.idx.a | 2 +- src/index/miniattract1.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 | 2 +- src/index/title.idx.a | 2 +- 62 files changed, 343 insertions(+), 49 deletions(-) delete mode 100755 res/DEMO/SPARE.CHANGE.A delete mode 100755 res/DEMO/SPARE.CHANGE.G delete mode 100755 res/DEMO/SPARE.CHANGE.H delete mode 100755 res/DEMO/SPARE.CHANGE.I delete mode 100755 res/DEMO/SPARE.CHANGE.J delete mode 100755 res/DEMO/SPARE.CHANGE.K delete mode 100755 res/DEMO/SPARE.CHANGE.L delete mode 100755 res/DEMO/SPARE.CHANGE.S delete mode 100755 res/DEMO/SPARE.CHANGE.Z create mode 100644 src/demo/spare.change.a create mode 100644 src/demo/spcartoon.1.s create mode 100644 src/demo/spcartoon.2.s create mode 100644 src/demo/spcartoon.3.s create mode 100644 src/demo/spcartoon.4.s create mode 100644 src/demo/spcartoon.5.s create mode 100644 src/demo/spcartoon.6.s diff --git a/bin/generate-mini-attract-mode.sh b/bin/generate-mini-attract-mode.sh index 6e50c7fc..9370c301 100755 --- a/bin/generate-mini-attract-mode.sh +++ b/bin/generate-mini-attract-mode.sh @@ -56,12 +56,12 @@ cat res/GAMES.CONF | grep "^$game=0" >> /tmp/g if [ "$game" == "SPARE.CHANGE" ]; then - echo "SPCARTOON.1=0" >> /tmp/g - echo "SPCARTOON.2=0" >> /tmp/g - echo "SPCARTOON.3=0" >> /tmp/g - echo "SPCARTOON.4=0" >> /tmp/g - echo "SPCARTOON.5=0" >> /tmp/g - echo "SPCARTOON.6=0" >> /tmp/g + echo "SPCARTOON.1.=0" >> /tmp/g + echo "SPCARTOON.2.=0" >> /tmp/g + echo "SPCARTOON.3.=0" >> /tmp/g + echo "SPCARTOON.4.=0" >> /tmp/g + echo "SPCARTOON.5.=0" >> /tmp/g + echo "SPCARTOON.6.=0" >> /tmp/g fi if [ "$game" == "PRINCEUNP" ]; then diff --git a/res/ATTRACT/SPARE.CHANGE b/res/ATTRACT/SPARE.CHANGE index da9bf1cd..91de0798 100644 --- a/res/ATTRACT/SPARE.CHANGE +++ b/res/ATTRACT/SPARE.CHANGE @@ -6,11 +6,11 @@ SPARE.CHANGE=C SPARE.CHANGE=A SPARE.CHANGE=0 -SPCARTOON.1=0 -SPCARTOON.2=0 -SPCARTOON.3=0 -SPCARTOON.4=0 -SPCARTOON.5=0 -SPCARTOON.6=0 +SPCARTOON.1.=0 +SPCARTOON.2.=0 +SPCARTOON.3.=0 +SPCARTOON.4.=0 +SPCARTOON.5.=0 +SPCARTOON.6.=0 [eof] diff --git a/res/DEMO/SPARE.CHANGE b/res/DEMO/SPARE.CHANGE index be33a90cf63302d7171829dc80c6d794a00a10db..49606131252107e984fa6b6c2b63cbb9b532050e 100755 GIT binary patch literal 122 zcmdOCKA_WlKw_2tk`%0$XD)p5Hy|wB- z4C*U=di5m~7!+2z^qN!wIWm2V82Sq8`(*oG^cB|k$@TR%98lPDzqjdtkCB9Qgnn>< QW00$!vxlRfyDJI@06!iwO8@`> literal 19699 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 diff --git a/res/DEMO/SPARE.CHANGE.I b/res/DEMO/SPARE.CHANGE.I deleted file mode 100755 index 02f8fd63021f3a88a6637a8210494b8290423d2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6144 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 QsNc!0?)jnti@odp3%A+?h5!Hn diff --git a/res/DEMO/SPARE.CHANGE.K b/res/DEMO/SPARE.CHANGE.K deleted file mode 100755 index ab1d613187b2e455cc7b733bc89f35c4a8e177df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6144 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 H=kx1d;j#h- diff --git a/res/DEMO/SPARE.CHANGE.L b/res/DEMO/SPARE.CHANGE.L deleted file mode 100755 index 8abfbf9972b8a22ec2dad8998da295ad5fc0f30d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6144 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 diff --git a/res/DEMO/SPARE.CHANGE.S b/res/DEMO/SPARE.CHANGE.S deleted file mode 100755 index e4cb1e261801a109d05863cf080a9f53d6d5a0f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6144 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 diff --git a/res/DEMO/SPCARTOON.11 b/res/DEMO/SPCARTOON.11 index 036291980e1778a00a8d71591c0fc0a24d59ac94..b7add2226ca738dc1a4da5051558cf6ead66d971 100644 GIT binary patch literal 110 zcmdOCKA_WlKwTm>_2tk`^tpgYIOw$^_2|0 z$0b+#^y*6}Fet3t&}%(yWlpcnwBCjT3R~{?HXTr4nC8R4C>^069N-w_s^{$C=;!W= G!T|u+J}kZf literal 79 zcmY#j*ni>=lLEv3Q%uZ2@(eTc%7or(bp;0Xl?=VdC0F|N8c8THD6HJjYdvjcPOr^0 h9|lHdE@lP=1{OvJ_5VP?6CB_eTm>_2tk`^tpgYIOw$^_7gh z$0b+#^y*6}Fet3t&}%(yWlpcnwBCjT3R~{?HXTr4nC8R4C>^069N-w_s^{$C=;!W= G!T|u+e=NTM literal 79 zcmY#j*ni>=lLEv3Q%uZ2@(eTc%7or(bp;0Xm5jZ|C0F|N8c8THD6HJjYdvjcPOr^0 h9|lHdE@lP=1{OvJ_5VP?6CB_eTm>_2tk`^tpgYIOw$^_5J$ z$0b+#^y*6}Fet3t&}%(yWlpcnwBCjT3R~{?HXTr4nC8R4C>^069N-w_s^{$C=;!W= G!T|u+z%0N3 literal 79 zcmY#j*ni>=lLEv3Q%uZ2@(eTc%7or(bp;0Xl}x?IC0F|N8c8THD6HJjYdvjcPOr^0 h9|lHdE@lP=1{OvJ_5VP?6CB_eTm>_2tk`^tpgYIOw$^_9%M z$0b+#^y*6}Fet3t&}%(yWlpcnwBCjT3R~{?HXTr4nC8R4C>^069N-w_s^{$C=;!W= G!T|u-0W84) literal 79 zcmY#j*ni>=lLEv3Q%uZ2@(eTc%7or(bp;0XmCU`zC0F|N8c8THD6HJjYdvjcPOr^0 h9|lHdE@lP=1{OvJ_5VP?6CB_eTm>_2tk`^tpgYIOw$^_48W z$0b+#^y*6}Fet3t&}%(yWlpcnwBCjT3R~{?HXTr4nC8R4C>^069N-w_s^{$C=;!W= G!T|u-LM*}n literal 79 zcmY#j*ni>=lLEv3Q%uZ2@(eTc%7or(bp;0Xl`Or-C0F|N8c8THD6HJjYdvjcPOr^0 h9|lHdE@lP=1{OvJ_5VP?6CB_eTm>_2tk`^tpgYIOw$^_8r> z$0b+#^y*6}Fet3t&}%(yWlpcnwBCjT3R~{?HXTr4nC8R4C>^069N-w_s^{$C=;!W= G!T|u-gDk@U literal 79 zcmY#j*ni>=lLEv3Q%uZ2@(eTc%7or(bp;0Xm8`wTC0F|N8c8THD6HJjYdvjcPOr^0 h9|lHdE@lP=1{OvJ_5VP?6CB_e(callback - 1) + sta $277A + lda #<(callback - 1) + sta $277D + jmp $2700 ; decompress + +callback + lda #$4C + sta $182F + jsr $2000 + lda #$44 + sta $7A34 + lda #$4C + sta $8E1C + ldx #0 + stx $7F70 + stx $8E1D + inx + stx $7F71 + stx $8E1E + +DISABLE_ACCEL + jmp $1832 + +spare_change + !byte spare_change_e-spare_change_b +spare_change_b +spare_change_dir_b + !text "X/SPARE.CHANGE" +spare_change_dir_e + !text "/SPARE.CHANGE" +spare_change_e + +!if * > $3F0 { + !error "code is too large, ends at ", * +} diff --git a/src/demo/spcartoon.1.s b/src/demo/spcartoon.1.s new file mode 100644 index 00000000..33745eeb --- /dev/null +++ b/src/demo/spcartoon.1.s @@ -0,0 +1,41 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "res/DEMO/SPCARTOON.11",plain +*=$200 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator + +LOAD_FILE_KEEP_DIR spare_change, spare_change_dir_e-spare_change_dir_b + lda #$60 + sta $277B + jsr $2700 ; decompress + lda #0 + sta $19C7 + lda #$4C + sta $182F + jsr $2000 + lda #$B0 + sta $963B + lda #$6C + sta $963C + +DISABLE_ACCEL + jsr $9600 + jmp $100 + +spare_change + !byte spare_change_e-spare_change_b +spare_change_b +spare_change_dir_b + !text "X/SPARE.CHANGE" +spare_change_dir_e + !text "/SPARE.CHANGE" +spare_change_e + +!if * > $3F0 { + !error "code is too large, ends at ", * +} diff --git a/src/demo/spcartoon.2.s b/src/demo/spcartoon.2.s new file mode 100644 index 00000000..fdece25f --- /dev/null +++ b/src/demo/spcartoon.2.s @@ -0,0 +1,41 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "res/DEMO/SPCARTOON.22",plain +*=$200 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator + +LOAD_FILE_KEEP_DIR spare_change, spare_change_dir_e-spare_change_dir_b + lda #$60 + sta $277B + jsr $2700 ; decompress + lda #1 + sta $19C7 + lda #$4C + sta $182F + jsr $2000 + lda #$B0 + sta $963B + lda #$6C + sta $963C + +DISABLE_ACCEL + jsr $9600 + jmp $100 + +spare_change + !byte spare_change_e-spare_change_b +spare_change_b +spare_change_dir_b + !text "X/SPARE.CHANGE" +spare_change_dir_e + !text "/SPARE.CHANGE" +spare_change_e + +!if * > $3F0 { + !error "code is too large, ends at ", * +} diff --git a/src/demo/spcartoon.3.s b/src/demo/spcartoon.3.s new file mode 100644 index 00000000..a10dac6d --- /dev/null +++ b/src/demo/spcartoon.3.s @@ -0,0 +1,41 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "res/DEMO/SPCARTOON.33",plain +*=$200 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator + +LOAD_FILE_KEEP_DIR spare_change, spare_change_dir_e-spare_change_dir_b + lda #$60 + sta $277B + jsr $2700 ; decompress + lda #2 + sta $19C7 + lda #$4C + sta $182F + jsr $2000 + lda #$B0 + sta $963B + lda #$6C + sta $963C + +DISABLE_ACCEL + jsr $9600 + jmp $100 + +spare_change + !byte spare_change_e-spare_change_b +spare_change_b +spare_change_dir_b + !text "X/SPARE.CHANGE" +spare_change_dir_e + !text "/SPARE.CHANGE" +spare_change_e + +!if * > $3F0 { + !error "code is too large, ends at ", * +} diff --git a/src/demo/spcartoon.4.s b/src/demo/spcartoon.4.s new file mode 100644 index 00000000..4b1d326d --- /dev/null +++ b/src/demo/spcartoon.4.s @@ -0,0 +1,41 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "res/DEMO/SPCARTOON.44",plain +*=$200 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator + +LOAD_FILE_KEEP_DIR spare_change, spare_change_dir_e-spare_change_dir_b + lda #$60 + sta $277B + jsr $2700 ; decompress + lda #3 + sta $19C7 + lda #$4C + sta $182F + jsr $2000 + lda #$B0 + sta $963B + lda #$6C + sta $963C + +DISABLE_ACCEL + jsr $9600 + jmp $100 + +spare_change + !byte spare_change_e-spare_change_b +spare_change_b +spare_change_dir_b + !text "X/SPARE.CHANGE" +spare_change_dir_e + !text "/SPARE.CHANGE" +spare_change_e + +!if * > $3F0 { + !error "code is too large, ends at ", * +} diff --git a/src/demo/spcartoon.5.s b/src/demo/spcartoon.5.s new file mode 100644 index 00000000..e9aa396c --- /dev/null +++ b/src/demo/spcartoon.5.s @@ -0,0 +1,41 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "res/DEMO/SPCARTOON.55",plain +*=$200 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator + +LOAD_FILE_KEEP_DIR spare_change, spare_change_dir_e-spare_change_dir_b + lda #$60 + sta $277B + jsr $2700 ; decompress + lda #4 + sta $19C7 + lda #$4C + sta $182F + jsr $2000 + lda #$B0 + sta $963B + lda #$6C + sta $963C + +DISABLE_ACCEL + jsr $9600 + jmp $100 + +spare_change + !byte spare_change_e-spare_change_b +spare_change_b +spare_change_dir_b + !text "X/SPARE.CHANGE" +spare_change_dir_e + !text "/SPARE.CHANGE" +spare_change_e + +!if * > $3F0 { + !error "code is too large, ends at ", * +} diff --git a/src/demo/spcartoon.6.s b/src/demo/spcartoon.6.s new file mode 100644 index 00000000..e77c38d6 --- /dev/null +++ b/src/demo/spcartoon.6.s @@ -0,0 +1,41 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "res/DEMO/SPCARTOON.66",plain +*=$200 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator + +LOAD_FILE_KEEP_DIR spare_change, spare_change_dir_e-spare_change_dir_b + lda #$60 + sta $277B + jsr $2700 ; decompress + lda #5 + sta $19C7 + lda #$4C + sta $182F + jsr $2000 + lda #$B0 + sta $963B + lda #$6C + sta $963C + +DISABLE_ACCEL + jsr $9600 + jmp $100 + +spare_change + !byte spare_change_e-spare_change_b +spare_change_b +spare_change_dir_b + !text "X/SPARE.CHANGE" +spare_change_dir_e + !text "/SPARE.CHANGE" +spare_change_e + +!if * > $3F0 { + !error "code is too large, ends at ", * +} diff --git a/src/index/artwork.idx.a b/src/index/artwork.idx.a index 444ff261..db445022 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 11719597 + !be24 11719603 !le16 4764 diff --git a/src/index/attract.idx.a b/src/index/attract.idx.a index f0697da1..2f22488e 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 11670619 + !be24 11670625 !le16 5343 diff --git a/src/index/cache00.idx.a b/src/index/cache00.idx.a index 574c55e2..e38efb69 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 11610759 + !be24 11610765 !le16 3654 diff --git a/src/index/cache01.idx.a b/src/index/cache01.idx.a index a401a910..3b6c448f 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 11623607 + !be24 11623613 !le16 4074 diff --git a/src/index/cache10.idx.a b/src/index/cache10.idx.a index fe1b0df5..52f51464 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 11639694 + !be24 11639700 !le16 5245 diff --git a/src/index/cache11.idx.a b/src/index/cache11.idx.a index 226be773..167027d8 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 11658275 + !be24 11658281 !le16 5880 diff --git a/src/index/coverfade.idx.a b/src/index/coverfade.idx.a index 80c2db1c..5c2584c6 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 11724361 + !be24 11724367 !le16 410 diff --git a/src/index/credits.idx.a b/src/index/credits.idx.a index ad6ca6bd..3bc951ac 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 11725115 + !be24 11725121 !le16 448 diff --git a/src/index/decrunch.idx.a b/src/index/decrunch.idx.a index 77a7bed6..2e49e4eb 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 11725563 + !be24 11725569 !le16 303 diff --git a/src/index/dfx.idx.a b/src/index/dfx.idx.a index f7d1eb44..69437830 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 11678108 + !be24 11678114 !le16 1242 diff --git a/src/index/dgr.fizzle.idx.a b/src/index/dgr.fizzle.idx.a index 0195ff03..8a38d0c0 100644 --- a/src/index/dgr.fizzle.idx.a +++ b/src/index/dgr.fizzle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11724847 + !be24 11724853 !le16 67 diff --git a/src/index/dgr.idx.a b/src/index/dgr.idx.a index 724bb068..c57c8f13 100644 --- a/src/index/dgr.idx.a +++ b/src/index/dgr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11719538 + !be24 11719544 !le16 59 diff --git a/src/index/dhgr.idx.a b/src/index/dhgr.idx.a index dbf0d00b..647c60a6 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 11718004 + !be24 11718010 !le16 1437 diff --git a/src/index/dtitle.idx.a b/src/index/dtitle.idx.a index 459e4080..b2f34e33 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 11703605 + !be24 11703611 !le16 537 diff --git a/src/index/fx.idx.a b/src/index/fx.idx.a index 0f696484..be2a37fa 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 11675962 + !be24 11675968 !le16 2146 diff --git a/src/index/gamehelp.idx.a b/src/index/gamehelp.idx.a index e309bdba..d09e7024 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 11679708 + !be24 11679714 !le16 6464 diff --git a/src/index/gr.fizzle.idx.a b/src/index/gr.fizzle.idx.a index c852631d..f9cb565a 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 11724771 + !be24 11724777 !le16 76 diff --git a/src/index/gr.idx.a b/src/index/gr.idx.a index 069c02de..5aa904fd 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 11719441 + !be24 11719447 !le16 97 diff --git a/src/index/helptext.idx.a b/src/index/helptext.idx.a index 3594aeef..95120d88 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 11724914 + !be24 11724920 !le16 201 diff --git a/src/index/hgr0.idx.a b/src/index/hgr0.idx.a index 827ead47..16d6e324 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 11704142 + !be24 11704148 !le16 4511 diff --git a/src/index/hgr1.idx.a b/src/index/hgr1.idx.a index 627d64e6..e5e8fbd5 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 11708653 + !be24 11708659 !le16 1591 diff --git a/src/index/hgr2.idx.a b/src/index/hgr2.idx.a index c3cea90f..0521bbf8 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 11710244 + !be24 11710250 !le16 1053 diff --git a/src/index/hgr3.idx.a b/src/index/hgr3.idx.a index fbe2da94..274119ea 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 11711297 + !be24 11711303 !le16 3237 diff --git a/src/index/hgr4.idx.a b/src/index/hgr4.idx.a index 0cf4f8fd..9d927865 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 11714534 + !be24 11714540 !le16 2877 diff --git a/src/index/hgr5.idx.a b/src/index/hgr5.idx.a index d9c73d1c..8ff9eb09 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 11717411 + !be24 11717417 !le16 479 diff --git a/src/index/hgr6.idx.a b/src/index/hgr6.idx.a index 02ccab75..13e51e7c 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 11717890 + !be24 11717896 !le16 114 diff --git a/src/index/joystick.idx.a b/src/index/joystick.idx.a index 5371099c..df421721 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 11725866 + !be24 11725872 !le16 2370 diff --git a/src/index/miniattract0.idx.a b/src/index/miniattract0.idx.a index 79faf796..4a643d8a 100644 --- a/src/index/miniattract0.idx.a +++ b/src/index/miniattract0.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11691128 + !be24 11691134 !le16 4283 diff --git a/src/index/miniattract1.idx.a b/src/index/miniattract1.idx.a index 35fc4afa..f3359138 100644 --- a/src/index/miniattract1.idx.a +++ b/src/index/miniattract1.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11695411 + !be24 11695417 !le16 2185 diff --git a/src/index/prelaunch.idx.a b/src/index/prelaunch.idx.a index d6983b50..cf22d730 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 11664155 + !be24 11664161 !le16 6464 diff --git a/src/index/search00.idx.a b/src/index/search00.idx.a index 9f24ecdf..ed53e35e 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 11602439 + !be24 11602445 !le16 8320 diff --git a/src/index/search01.idx.a b/src/index/search01.idx.a index 375ba4f4..7dd51d5d 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 11614413 + !be24 11614419 !le16 9194 diff --git a/src/index/search10.idx.a b/src/index/search10.idx.a index 384a651d..7f95f3ad 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 11627681 + !be24 11627687 !le16 12013 diff --git a/src/index/search11.idx.a b/src/index/search11.idx.a index 11d54104..66d67f8c 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 11644939 + !be24 11644945 !le16 13336 diff --git a/src/index/sfx.idx.a b/src/index/sfx.idx.a index 59104b0a..d74705ed 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 11679350 + !be24 11679356 !le16 358 diff --git a/src/index/slideshow.idx.a b/src/index/slideshow.idx.a index 90cc6111..37bc27a6 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 11686172 + !be24 11686178 !le16 4956 diff --git a/src/index/title.idx.a b/src/index/title.idx.a index 45e775bf..f8d40cb4 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 11697596 + !be24 11697602 !le16 6009