riven: start moving some common routines into QLOAD

this saves some space
This commit is contained in:
Vince Weaver 2024-06-15 22:53:44 -04:00
parent ef8b039e65
commit 36b8b26a04
12 changed files with 62 additions and 88 deletions

View File

@ -41,7 +41,8 @@ qboot_sector.o: qboot_sector.s qboot_stage2.s
QLOAD: qload.o
ld65 -o QLOAD qload.o -C $(LINKER_SCRIPTS)/apple2_1800.inc
qload.o: qload.s qboot.inc
qload.o: qload.s qboot.inc \
zx02_optim.s
ca65 -o qload.o qload.s -l qload.lst
@ -64,7 +65,7 @@ TITLE: title.o
ld65 -o TITLE title.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
title.o: title.s zp.inc hardware.inc \
zx02_optim.s wait_a_bit.s \
qload.inc wait_a_bit.s \
hgr_sprite.s hgr_tables.s \
graphics_title/riven_title.hgr.zx02
ca65 -o title.o title.s -l title.lst
@ -75,7 +76,7 @@ LEVEL_OUTSIDE: level_outside.o
ld65 -o LEVEL_OUTSIDE level_outside.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
level_outside.o: level_outside.s zp.inc hardware.inc \
zx02_optim.s \
qload.inc \
hgr_sprite.s hgr_tables.s \
keyboard.s \
hgr_14x14_sprite.s \
@ -90,7 +91,7 @@ LEVEL_PROJECTOR: level_projector.o
ld65 -o LEVEL_PROJECTOR level_projector.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
level_projector.o: level_projector.s zp.inc hardware.inc \
zx02_optim.s \
qload.inc \
hgr_sprite.s hgr_tables.s \
keyboard.s \
hgr_14x14_sprite.s \
@ -105,7 +106,7 @@ LEVEL_MAGSTEPS: level_magsteps.o
ld65 -o LEVEL_MAGSTEPS level_magsteps.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
level_magsteps.o: level_magsteps.s zp.inc hardware.inc \
zx02_optim.s \
qload.inc \
hgr_sprite.s hgr_tables.s \
keyboard.s \
hgr_14x14_sprite.s \
@ -120,7 +121,7 @@ LEVEL_MAGLEV: level_maglev.o
ld65 -o LEVEL_MAGLEV level_maglev.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
level_maglev.o: level_maglev.s zp.inc hardware.inc \
zx02_optim.s \
qload.inc \
hgr_sprite.s hgr_tables.s \
keyboard.s \
hgr_14x14_sprite.s \
@ -136,6 +137,7 @@ MOVIE1: movie1.o
movie1.o: movie1.s \
zp.inc hardware.inc \
qload.inc \
movie1/movie1.inc
ca65 -o movie1.o movie1.s -l movie1.lst
@ -146,6 +148,7 @@ MOVIE2: movie2.o
movie2.o: movie2.s \
zp.inc hardware.inc \
qload.inc \
end_message/end_message.gr.zx02 \
movie2/movie2.inc
ca65 -o movie2.o movie2.s -l movie2.lst

View File

@ -1,17 +1,15 @@
What would QBOOT look like:
Disk1 Map (disk has 35 tracks, each 4k in size)
Disk39 Map (disk has 35 tracks, each 4k in size)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
T 0 = Qboot
T 1 = QLOAD 255 bytes ??S = 1T0S 3k free
T 1.5 = TITLE 1688 bytes ??S = 1T0S 2k free
T 2 = PROJECTOR 32000 bytes 128S = 6T0S 6k free
T 9 = OUTSIDE 30825 bytes 128S = 8T0S 2k free
T 17 = MAGSTEPS 13027 bytes 64S = 4T0S 3k free
T 21 = MAGLEV 15349 bytes 64S = 4T0S 1k free
T 2 = PROJECTOR 28220 bytes 128S = 6T0S 3k free
T 9 = OUTSIDE 30839 bytes 128S = 8T0S 2k free
T 17 = MAGSTEPS 13021 bytes 64S = 4T0S 3k free
T 21 = MAGLEV 15346 bytes 64S = 4T0S 1k free
T 25 = MOVIE1 7837 bytes 32S = 2T0S ~
T 27 = MOVIE2 32000 bytes 128S = 8T0S ~
T 27 = MOVIE2 32432 bytes 128S = 8T0S ~
MEMORY MAP
@ -23,6 +21,7 @@ $0400-$07ff = lores graphics page1
$0800-$0bff = lores graphics page2
$800-$8ff = (qboot initial sector)
$1000-$11ff = qboot_stage2 (disk code)
$1200-$12ff = ????
$1300-$16FF = HGR lookup tables
$1700-$17FF = ????
$1800-$1FFF = QLOAD = loader code (2k?)
@ -33,24 +32,24 @@ $D000-$FFFF = ROM
image conversion
scummvm/vokoscreen capture
crop
scale to 140x201
convert
re-scale and crop to 280x192
contrast/bright 57/3 (note: not always or even often)
final movie roto procedure:
scale to 40x50
crop to 40x48
add layer
paste overlay mask on top
rotoscope
copy to new image
convert to indexed apple II palette
scale to 80x48
save
HELLO = 318 = 2
TITLE = 1130 = 5
LEVEL_PROJECTOR = 15648 = 62
LEVEL_OUTSIDE = 26351 = 103
LEVEL_MAGSTEPS = 13045 = 51
LEVEL_MAGLEV = 12012 = 47
=====
68k
todo:
move "magpath" from outside (8k) to projector?
then what about steps?
$4000 - $B800 = 30k??

View File

@ -1,14 +0,0 @@
5 HOME
10 PRINT "LOADING RIVEN SUBSET V0.02"
20 PRINT " RIVEN SCENES"
30 PRINT:PRINT
70 PRINT "BASED ON RIVEN BY CYAN"
75 PRINT:PRINT
80 PRINT "APPLE II PORT: VINCE WEAVER"
90 PRINT "DISK CODE : QKUMBA"
95 PRINT
100 PRINT " ______"
110 PRINT " A \/\/\/ SOFTWARE PRODUCTION"
115 PRINT
120 PRINT " HTTP://WWW.DEATER.NET/WEAVE/VMWPROD"
130 PRINT CHR$(4);"BRUN LOADER"

View File

@ -6,6 +6,7 @@
.include "zp.inc"
.include "hardware.inc"
.include "common_defines.inc"
.include "qload.inc"
riven_maglev:
@ -139,7 +140,7 @@ handle2_clicked:
; includes
;==========================
.include "zx02_optim.s"
; .include "zx02_optim.s"
.include "keyboard.s"

View File

@ -6,6 +6,7 @@
.include "zp.inc"
.include "hardware.inc"
.include "common_defines.inc"
.include "qload.inc"
riven_magsteps:
@ -99,7 +100,7 @@ really_exit:
; includes
;==========================
.include "zx02_optim.s"
; .include "zx02_optim.s"
.include "keyboard.s"

View File

@ -6,6 +6,7 @@
.include "zp.inc"
.include "hardware.inc"
.include "common_defines.inc"
.include "qload.inc"
riven_outside:
@ -114,7 +115,7 @@ call_button_clicked:
; includes
;==========================
.include "zx02_optim.s"
; .include "zx02_optim.s"
.include "keyboard.s"

View File

@ -6,6 +6,7 @@
.include "zp.inc"
.include "hardware.inc"
.include "common_defines.inc"
.include "qload.inc"
riven_projector:
@ -99,7 +100,7 @@ really_exit:
; includes
;==========================
.include "zx02_optim.s"
; .include "zx02_optim.s"
.include "keyboard.s"

View File

@ -5,6 +5,7 @@
.include "zp.inc"
.include "hardware.inc"
.include "common_defines.inc"
.include "qload.inc"
overlays = $2000
@ -352,12 +353,14 @@ done_pageflip:
;===================================
.include "zx02_optim.s"
; .include "zx02_optim.s"
.include "wait.s"
.include "movie1/movie1.inc"
.include "wait.s"
frames_l:
.byte <img025_bg_zx02
.byte <img055_bg_zx02

View File

@ -6,6 +6,7 @@
.include "zp.inc"
.include "hardware.inc"
.include "qload.inc"
NUM_SCENES = 137
@ -318,12 +319,7 @@ done_pageflip:
;===================================
; .include "../wait_keypress.s"
; .include "draw_boxes.s"
.include "zx02_optim.s"
; .include "zx02_optim.s"
.include "wait.s"

View File

@ -0,0 +1,6 @@
; TODO: autoate generating this
qload_start = $1800
full_decomp = qload_start+$DB

View File

@ -247,6 +247,11 @@ insert_disk_string:
.byte "PLEASE INSERT DISK 1",13
.byte " THEN PRESS RETURN",0
; common includes used by everyone
.include "zx02_optim.s"
which_disk_array:
.byte 1,1,1,1 ; TITLE, OUTSIDE, PROJECTOR, MAGSTEPS
@ -268,35 +273,6 @@ length_array:
.byte 16, 123,123, 64 ; TITLE, OUTSIDE, PROJECTOR, MAGSTEPS
.byte 64, 32, 128 ; MAGLEV, MOVIE1, MOVIE2
.if 0
.include "qkumba_popwr.s"
.include "drive2.s"
.include "zx02_optim.s"
;.include "decompress_fast_v2.s"
.include "hgr_font.s"
.include "draw_box.s"
.include "hgr_rectangle.s"
.include "hgr_1x28_sprite_mask.s"
.include "hgr_partial_save.s"
.include "hgr_input.s"
.include "hgr_tables.s"
.include "hgr_text_box.s"
.include "clear_bottom.s"
.include "hgr_hgr2.s" ; this one is maybe only needed once?
.include "gr_offsets.s"
.include "loadsave_menu.s"
.include "wait_keypress.s"
.include "random16.s"
.include "score.s"
.include "speaker_beeps.s"
peasant_text:
.byte 25,2,"Peasant's Quest",0
.endif
qload_end:
;.assert (>qload_end - >qload_start) < $e , error, "loader too big"

View File

@ -6,6 +6,7 @@
.include "zp.inc"
.include "hardware.inc"
.include "common_defines.inc"
.include "qload.inc"
riven_title:
@ -315,7 +316,7 @@ clear_loop:
; includes
;==========================
.include "zx02_optim.s"
; .include "zx02_optim.s"
.include "hgr_tables.s"
.include "wait_a_bit.s"