diff --git a/res/CACHE00.IDX b/res/CACHE00.IDX index 0db1bfeef..f3794f8a1 100644 Binary files a/res/CACHE00.IDX and b/res/CACHE00.IDX differ diff --git a/res/CACHE01.IDX b/res/CACHE01.IDX index 6405923f0..c0a7818b7 100644 Binary files a/res/CACHE01.IDX and b/res/CACHE01.IDX differ diff --git a/res/CACHE10.IDX b/res/CACHE10.IDX index 88d82a3d0..2668f05ab 100644 Binary files a/res/CACHE10.IDX and b/res/CACHE10.IDX differ diff --git a/res/CACHE11.IDX b/res/CACHE11.IDX index 41c293b9c..5288a5fc6 100644 Binary files a/res/CACHE11.IDX and b/res/CACHE11.IDX differ diff --git a/res/GAMES.CONF b/res/GAMES.CONF index 74b0ff9e5..84edfcd19 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -440,6 +440,7 @@ 00000,STATION.5=Station 5 00060,STELLAR.7=Stellar 7 00041,SUCCESSION=Succession +00000,SUDOKU=Sudoku 00041,SU=Suicide! 00010,SUPER.BUNNY=Super Bunny 00011,SUPER.PUCKMAN=Super Puckman diff --git a/res/TITLE.HGR.UNPACKED/SUDOKU b/res/TITLE.HGR.UNPACKED/SUDOKU new file mode 100644 index 000000000..6093edf7f Binary files /dev/null and b/res/TITLE.HGR.UNPACKED/SUDOKU differ diff --git a/res/TITLE.HGR/SUDOKU b/res/TITLE.HGR/SUDOKU new file mode 100644 index 000000000..69c7dcb36 Binary files /dev/null and b/res/TITLE.HGR/SUDOKU differ diff --git a/res/dsk/bejeweled PRODOS (san inc pack).po b/res/dsk/bejeweled PRODOS (san inc pack).po index 1125a3941..71f22dad3 100644 Binary files a/res/dsk/bejeweled PRODOS (san inc pack).po and b/res/dsk/bejeweled PRODOS (san inc pack).po differ diff --git a/res/dsk/sudoku PRODOS (san inc pack).po b/res/dsk/sudoku PRODOS (san inc pack).po new file mode 100644 index 000000000..574454aa2 Binary files /dev/null and b/res/dsk/sudoku PRODOS (san inc pack).po differ diff --git a/src/index/artwork.idx.a b/src/index/artwork.idx.a index bb01fe285..9b9e5c6c1 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 15514779 + !be24 15522622 !le16 5112 diff --git a/src/index/attract.idx.a b/src/index/attract.idx.a index e395a30d7..6403cd7d1 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 15459857 + !be24 15467674 !le16 5707 diff --git a/src/index/cache00.idx.a b/src/index/cache00.idx.a index b442e6142..3a9f84db1 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 15392547 - !le16 4043 + !be24 15400251 + !le16 4050 diff --git a/src/index/cache01.idx.a b/src/index/cache01.idx.a index cfff7682a..3fce2e7da 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 15406794 - !le16 4508 + !be24 15414529 + !le16 4515 diff --git a/src/index/cache10.idx.a b/src/index/cache10.idx.a index 19b12fbb2..532acc5e1 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 15425028 - !le16 5861 + !be24 15432794 + !le16 5868 diff --git a/src/index/cache11.idx.a b/src/index/cache11.idx.a index 2e7c1aee9..1bbc41fa0 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 15445972 - !le16 6487 + !be24 15453769 + !le16 6494 diff --git a/src/index/count00.a b/src/index/count00.a index f729cc016..d4eb98177 100644 --- a/src/index/count00.a +++ b/src/index/count00.a @@ -3,4 +3,4 @@ ; ; This file is automatically generated ; -!word 303 +!word 304 diff --git a/src/index/count01.a b/src/index/count01.a index 1fc1705f9..cfc42501d 100644 --- a/src/index/count01.a +++ b/src/index/count01.a @@ -3,4 +3,4 @@ ; ; This file is automatically generated ; -!word 332 +!word 333 diff --git a/src/index/count10.a b/src/index/count10.a index ed888a1c9..b1799aba0 100644 --- a/src/index/count10.a +++ b/src/index/count10.a @@ -3,4 +3,4 @@ ; ; This file is automatically generated ; -!word 446 +!word 447 diff --git a/src/index/count11.a b/src/index/count11.a index 4b1a1790c..d5fccb3c5 100644 --- a/src/index/count11.a +++ b/src/index/count11.a @@ -3,4 +3,4 @@ ; ; This file is automatically generated ; -!word 489 +!word 490 diff --git a/src/index/coverfade.idx.a b/src/index/coverfade.idx.a index ab181c409..e0654c90a 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 15519891 + !be24 15527734 !le16 410 diff --git a/src/index/credits.idx.a b/src/index/credits.idx.a index 62ed94e9b..7ab367cd4 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 15520645 + !be24 15528488 !le16 449 diff --git a/src/index/decrunch.idx.a b/src/index/decrunch.idx.a index 3341eaabd..74d912a0c 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 15521094 + !be24 15528937 !le16 303 diff --git a/src/index/demo.idx.a b/src/index/demo.idx.a index c09c424d1..39e02d74b 100644 --- a/src/index/demo.idx.a +++ b/src/index/demo.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 12348895 + !be24 12356575 !le16 1652 diff --git a/src/index/dfx.idx.a b/src/index/dfx.idx.a index 8ed1fe7f5..55dcf5e40 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 15468204 + !be24 15476021 !le16 1640 diff --git a/src/index/dgr.fizzle.idx.a b/src/index/dgr.fizzle.idx.a index 3962dc8e3..03fd9afc4 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 15520377 + !be24 15528220 !le16 67 diff --git a/src/index/dgr.idx.a b/src/index/dgr.idx.a index a6513ef17..b2b84ca3c 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 15514720 + !be24 15522563 !le16 59 diff --git a/src/index/dhgr.idx.a b/src/index/dhgr.idx.a index a023c665d..f889f1925 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 15513176 + !be24 15521019 !le16 1426 diff --git a/src/index/dtitle.idx.a b/src/index/dtitle.idx.a index 3829ba58b..fbb716e33 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 15497299 + !be24 15505142 !le16 557 diff --git a/src/index/fx.idx.a b/src/index/fx.idx.a index 39b6245ec..5f780bfdd 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 15465564 + !be24 15473381 !le16 2640 diff --git a/src/index/gamehelp.idx.a b/src/index/gamehelp.idx.a index 207917f95..1a898a1d7 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 15470202 - !le16 7398 + !be24 15478019 + !le16 7411 diff --git a/src/index/gr.fizzle.idx.a b/src/index/gr.fizzle.idx.a index f26149c9e..af75d79bb 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 15520301 + !be24 15528144 !le16 76 diff --git a/src/index/gr.idx.a b/src/index/gr.idx.a index 2bff97c58..ce0ea6048 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 15514602 + !be24 15522445 !le16 118 diff --git a/src/index/helptext.idx.a b/src/index/helptext.idx.a index c64e03b30..04827e1a2 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 15520444 + !be24 15528287 !le16 201 diff --git a/src/index/hgr0.idx.a b/src/index/hgr0.idx.a index f23be791b..51e237e32 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 15497856 + !be24 15505699 !le16 4951 diff --git a/src/index/hgr1.idx.a b/src/index/hgr1.idx.a index e0c84d46f..afa0906d4 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 15502807 + !be24 15510650 !le16 1802 diff --git a/src/index/hgr2.idx.a b/src/index/hgr2.idx.a index 302c473d2..fb123046e 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 15504609 + !be24 15512452 !le16 1181 diff --git a/src/index/hgr3.idx.a b/src/index/hgr3.idx.a index e7a6cd05e..da01b5f33 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 15505790 + !be24 15513633 !le16 3421 diff --git a/src/index/hgr4.idx.a b/src/index/hgr4.idx.a index ab0d99711..f43431b74 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 15509211 + !be24 15517054 !le16 3359 diff --git a/src/index/hgr5.idx.a b/src/index/hgr5.idx.a index 04bca62a4..ec36a5650 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 15512570 + !be24 15520413 !le16 479 diff --git a/src/index/hgr6.idx.a b/src/index/hgr6.idx.a index 10049eaf5..29b8a9f22 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 15513049 + !be24 15520892 !le16 127 diff --git a/src/index/joystick.idx.a b/src/index/joystick.idx.a index 1a89d5480..cf3811911 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 15521397 + !be24 15529240 !le16 2370 diff --git a/src/index/miniattract0.idx.a b/src/index/miniattract0.idx.a index 64277222a..f0b47f6cc 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 15482974 + !be24 15490804 !le16 4989 diff --git a/src/index/miniattract1.idx.a b/src/index/miniattract1.idx.a index a6b66f121..39e3cb48b 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 15487963 + !be24 15495793 !le16 2413 diff --git a/src/index/prelaunch.idx.a b/src/index/prelaunch.idx.a index e10b95d30..3e6c1c61a 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 15452459 - !le16 7398 + !be24 15460263 + !le16 7411 diff --git a/src/index/res.cover.idx.a b/src/index/res.cover.idx.a index fe298727b..c0edbb8a1 100644 --- a/src/index/res.cover.idx.a +++ b/src/index/res.cover.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 4189184 + !be24 4196864 !le16 8192 diff --git a/src/index/res.help.idx.a b/src/index/res.help.idx.a index d6ceb848e..37c1bd525 100644 --- a/src/index/res.help.idx.a +++ b/src/index/res.help.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 4205568 + !be24 4213248 !le16 8192 diff --git a/src/index/res.title.idx.a b/src/index/res.title.idx.a index 4d8591788..b4838b9e7 100644 --- a/src/index/res.title.idx.a +++ b/src/index/res.title.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 4197376 + !be24 4205056 !le16 8192 diff --git a/src/index/search00.idx.a b/src/index/search00.idx.a index 5632d2b9d..840805614 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 15383280 - !le16 9267 + !be24 15390960 + !le16 9291 diff --git a/src/index/search01.idx.a b/src/index/search01.idx.a index 77564853b..f68b51536 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 15396590 - !le16 10204 + !be24 15404301 + !le16 10228 diff --git a/src/index/search10.idx.a b/src/index/search10.idx.a index 2734fd0cc..53cf34618 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 15411302 - !le16 13726 + !be24 15419044 + !le16 13750 diff --git a/src/index/search11.idx.a b/src/index/search11.idx.a index 222625c33..bd80c02db 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 15430889 - !le16 15083 + !be24 15438662 + !le16 15107 diff --git a/src/index/sfx.idx.a b/src/index/sfx.idx.a index a00eb9feb..398472780 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 15469844 + !be24 15477661 !le16 358 diff --git a/src/index/slideshow.idx.a b/src/index/slideshow.idx.a index aa2ec7f5b..6c4d9c3c2 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 15477600 + !be24 15485430 !le16 5374 diff --git a/src/index/title.idx.a b/src/index/title.idx.a index e705f68a0..f2ff5cc6e 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 15490376 - !le16 6923 + !be24 15498206 + !le16 6936 diff --git a/src/index/xsingle.idx.a b/src/index/xsingle.idx.a index bdca26230..bfaede29b 100644 --- a/src/index/xsingle.idx.a +++ b/src/index/xsingle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15379016 + !be24 15386696 !le16 4264 diff --git a/src/prelaunch/sudoku.a b/src/prelaunch/sudoku.a new file mode 100644 index 000000000..621b9742d --- /dev/null +++ b/src/prelaunch/sudoku.a @@ -0,0 +1,52 @@ +;license:MIT +;(c) 2024 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH.INDEXED/SUDOKU",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $813 + jsr $800 ; decompress + lda $BF0B + sta nohelp + 1 + lda $BF0C + sta nohelp + 2 + lda #helper + sta $BF0C + +DISABLE_ACCEL + jmp $4000 + +helper + lda $9F4C + cmp #$CB ; write file + bne nohelp + lda $A50D ; write address (low) + cmp #$EE ; erasing save + beq nohelp + cmp #$F3 ; writing "valid" + beq nocall ; ignore it + cmp #$F7 ; writing options + beq nohelp + inc $A053 ; mark save valid + dec $A50D ; write address (low) + inc $A50F ; increase size + +nohelp + jmp $FDFD ; SMC + +nocall + plp + pla + pla + clc + rts + +!if * > $1C0 { + !error "code is too large, ends at ", * +}