diff --git a/res/DEMO/GOONIES.1 b/res/DEMO/GOONIES.1 deleted file mode 100755 index 5ac75b730..000000000 Binary files a/res/DEMO/GOONIES.1 and /dev/null differ diff --git a/res/DEMO/GOONIES.2 b/res/DEMO/GOONIES.2 deleted file mode 100755 index 8f357072e..000000000 Binary files a/res/DEMO/GOONIES.2 and /dev/null differ diff --git a/res/DEMO/GOONIES.3 b/res/DEMO/GOONIES.3 deleted file mode 100755 index 4fda7d92b..000000000 Binary files a/res/DEMO/GOONIES.3 and /dev/null differ diff --git a/res/DEMO/GOONIES.4 b/res/DEMO/GOONIES.4 deleted file mode 100755 index ed1381b3f..000000000 Binary files a/res/DEMO/GOONIES.4 and /dev/null differ diff --git a/res/DEMO/GOONIES.5 b/res/DEMO/GOONIES.5 deleted file mode 100755 index 80145a4c9..000000000 Binary files a/res/DEMO/GOONIES.5 and /dev/null differ diff --git a/res/DEMO/GOONIES.6 b/res/DEMO/GOONIES.6 deleted file mode 100755 index db0be8e7d..000000000 Binary files a/res/DEMO/GOONIES.6 and /dev/null differ diff --git a/res/DEMO/GOONIES.7 b/res/DEMO/GOONIES.7 deleted file mode 100755 index c0d60ac03..000000000 Binary files a/res/DEMO/GOONIES.7 and /dev/null differ diff --git a/res/DEMO/GOONIES.A b/res/DEMO/GOONIES.A deleted file mode 100755 index 1027fb2ee..000000000 Binary files a/res/DEMO/GOONIES.A and /dev/null differ diff --git a/res/DEMO/GOONIES.B b/res/DEMO/GOONIES.B deleted file mode 100755 index 45aee6f71..000000000 Binary files a/res/DEMO/GOONIES.B and /dev/null differ diff --git a/res/DEMO/GOONIES.C b/res/DEMO/GOONIES.C deleted file mode 100755 index e5502b81f..000000000 Binary files a/res/DEMO/GOONIES.C and /dev/null differ diff --git a/res/DEMO/GOONIES.D b/res/DEMO/GOONIES.D deleted file mode 100755 index d461dfc2f..000000000 Binary files a/res/DEMO/GOONIES.D and /dev/null differ diff --git a/res/DEMO/GOONIES.E b/res/DEMO/GOONIES.E deleted file mode 100755 index 0ef72585a..000000000 Binary files a/res/DEMO/GOONIES.E and /dev/null differ diff --git a/res/DEMO/GOONIES.F b/res/DEMO/GOONIES.F deleted file mode 100755 index 1164bd310..000000000 Binary files a/res/DEMO/GOONIES.F and /dev/null differ diff --git a/res/DEMO/GOONIES.J b/res/DEMO/GOONIES.J deleted file mode 100755 index dca5f5262..000000000 Binary files a/res/DEMO/GOONIES.J and /dev/null differ diff --git a/res/DEMO/THE.GOONIES b/res/DEMO/THE.GOONIES index 4e9315724..c361aff55 100644 Binary files a/res/DEMO/THE.GOONIES and b/res/DEMO/THE.GOONIES differ diff --git a/res/DEMO/_FileInformation.txt b/res/DEMO/_FileInformation.txt index 9ea782b37..0dec6b226 100644 --- a/res/DEMO/_FileInformation.txt +++ b/res/DEMO/_FileInformation.txt @@ -38,21 +38,7 @@ FIREBUG=Type(06),AuxType(0200),Access(C3) FLIP.OUT=Type(06),AuxType(0300),Access(C3) GALAXIAN=Type(06),AuxType(0300),Access(C3) GAMMA.GOBLINS=Type(06),AuxType(B000),Access(C3) -THE.GOONIES=Type(06),AuxType(1000),Access(C3) -GOONIES.1=Type(F1),AuxType(4C63),Access(C3) -GOONIES.2=Type(F1),AuxType(4C63),Access(C3) -GOONIES.3=Type(F1),AuxType(4C63),Access(C3) -GOONIES.4=Type(F1),AuxType(4C63),Access(C3) -GOONIES.5=Type(F1),AuxType(4C63),Access(C3) -GOONIES.6=Type(F1),AuxType(4C63),Access(C3) -GOONIES.7=Type(F1),AuxType(4C63),Access(C3) -GOONIES.A=Type(F1),AuxType(5997),Access(C3) -GOONIES.B=Type(F1),AuxType(6006),Access(C3) -GOONIES.C=Type(F1),AuxType(5F69),Access(C3) -GOONIES.D=Type(F1),AuxType(5A2D),Access(C3) -GOONIES.E=Type(F1),AuxType(6219),Access(C3) -GOONIES.F=Type(F1),AuxType(5D88),Access(C3) -GOONIES.J=Type(F1),AuxType(0800),Access(C3) +THE.GOONIES=Type(06),AuxType(0300),Access(C3) GUMBALL=Type(06),AuxType(0210),Access(C3) HARD.HAT.MACK=Type(06),AuxType(0200),Access(C3) HIGH.RISE=Type(06),AuxType(0300),Access(C3) diff --git a/src/demo/the.goonies.a b/src/demo/the.goonies.a new file mode 100644 index 000000000..b849893f9 --- /dev/null +++ b/src/demo/the.goonies.a @@ -0,0 +1,67 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "res/DEMO/THE.GOONIES",plain +*=$300 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +USES_TEXT_PAGE_2 + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator + +LOAD_FILE_KEEP_DIR the_goonies, the_goonies_dir_e-the_goonies_dir_b + lda #$60 + sta $1045 + jsr $1000 ; decompress + ldx #$2C + stx $6BF + ldx #$60 + stx $60C + stx $622 + ldx #6 + stx $583 + jsr $55C ; load next part + lda #$4C + sta $406F + ldx #0 + stx $4070 + inx + stx $4071 + lda #$2C + sta $4039 + +DISABLE_ACCEL + jsr $4000 ; title + jsr $60F ; load level + ldx #0 + stx $87D + stx $12C4 + stx $12CC + inx + stx $87E + stx $12C5 + stx $12CD + stx $A0D + lda #$4C + sta $12CB + lda #$D0 + sta $83AF + sta $832A + sta $8330 + sta $8379 + sta $8391 + jmp $800 + +the_goonies + !byte the_goonies_e-the_goonies_b +the_goonies_b +the_goonies_dir_b + !text "X/THE.GOONIES" +the_goonies_dir_e + !text "/THE.GOONIES" +the_goonies_e + +!if * > $3F0 { + !error "code is too large, ends at ", * +} diff --git a/src/macros.a b/src/macros.a index 1ce3972af..104614aba 100755 --- a/src/macros.a +++ b/src/macros.a @@ -456,6 +456,25 @@ sta iCurBlockLo } +; load an external file by pathname +; set path to new directory +; LC RAM 2 MUST BE BANKED IN +!macro LOAD_FILE_KEEP_DIR .filepath, .dirlen { + ldx #0 ; read to main memory + stx ldrhi + stx ldrlo + +LDADDR .filepath + jsr iLoadFileDirect + + ldx #.dirlen + stx $BFD0 +- lda .filepath,x + sta $BFD0,x + dex + bne - + +} + ; Macros for demo launchers that need to check whether they should run ; on the current machine. Exit demo if the requirements are not met. !macro GAME_REQUIRES_JOYSTICK {