riven: move more stuff to qload

this frees up room in the levels...
This commit is contained in:
Vince Weaver 2024-06-15 23:36:30 -04:00
parent cd3335ce00
commit 1130778db2
12 changed files with 57 additions and 158 deletions

View File

@ -42,7 +42,11 @@ QLOAD: qload.o
ld65 -o QLOAD qload.o -C $(LINKER_SCRIPTS)/apple2_1800.inc
qload.o: qload.s qboot.inc \
zx02_optim.s
zx02_optim.s wait.s \
draw_pointer.s log_table.s \
graphics_sprites/pointer_sprites.inc \
hgr_14x14_sprite.s \
keyboard.s
ca65 -o qload.o qload.s -l qload.lst
@ -53,20 +57,12 @@ HELLO: hello.bas
####
#LOADER: loader.o
# ld65 -o LOADER loader.o -C $(LINKER_SCRIPTS)/apple2_1000.inc
#loader.o: loader.s hardware_detect.s
# ca65 -o loader.o loader.s -l loader.lst
####
TITLE: title.o
ld65 -o TITLE title.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
title.o: title.s zp.inc hardware.inc \
qload.inc wait_a_bit.s \
hgr_sprite.s hgr_tables.s \
hgr_tables.s \
graphics_title/riven_title.hgr.zx02
ca65 -o title.o title.s -l title.lst
@ -77,11 +73,7 @@ LEVEL_OUTSIDE: level_outside.o
level_outside.o: level_outside.s zp.inc hardware.inc \
qload.inc \
hgr_sprite.s hgr_tables.s \
keyboard.s \
hgr_14x14_sprite.s \
disk39_files/leveldata_outside.inc \
graphics_sprites/pointer_sprites.inc \
graphics_outside/outside_graphics.inc
ca65 -o level_outside.o level_outside.s -l level_outside.lst
@ -92,11 +84,7 @@ LEVEL_PROJECTOR: level_projector.o
level_projector.o: level_projector.s zp.inc hardware.inc \
qload.inc \
hgr_sprite.s hgr_tables.s \
keyboard.s \
hgr_14x14_sprite.s \
disk39_files/leveldata_projector.inc \
graphics_sprites/pointer_sprites.inc \
graphics_projector/projector_graphics.inc
ca65 -o level_projector.o level_projector.s -l level_projector.lst
@ -107,11 +95,7 @@ LEVEL_MAGSTEPS: level_magsteps.o
level_magsteps.o: level_magsteps.s zp.inc hardware.inc \
qload.inc \
hgr_sprite.s hgr_tables.s \
keyboard.s \
hgr_14x14_sprite.s \
disk39_files/leveldata_magsteps.inc \
graphics_sprites/pointer_sprites.inc \
graphics_magsteps/magsteps_graphics.inc
ca65 -o level_magsteps.o level_magsteps.s -l level_magsteps.lst
@ -122,11 +106,7 @@ LEVEL_MAGLEV: level_maglev.o
level_maglev.o: level_maglev.s zp.inc hardware.inc \
qload.inc \
hgr_sprite.s hgr_tables.s \
keyboard.s \
hgr_14x14_sprite.s \
disk39_files/leveldata_maglev.inc \
graphics_sprites/pointer_sprites.inc \
graphics_maglev/maglev_graphics.inc
ca65 -o level_maglev.o level_maglev.s -l level_maglev.lst

View File

@ -1,17 +1,4 @@
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 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 32432 bytes 128S = 8T0S ~
MEMORY MAP
$0000-$00FF = zero page
$0100-$01FF = stack
@ -53,3 +40,19 @@ final movie roto procedure:
scale to 80x48
save
Disk39 Map (disk has 35 tracks, each 4k in size)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
T 0 = Qboot
T 1 = QLOAD 1762 bytes 8S = 0T8S (2048) 300B free
T 1.5 = TITLE 1531 bytes 8S = 0T8S (2048) 500B free
T 2 = PROJECTOR 26736 bytes 112S = 7T0S (28672) 2k free
T 9 = OUTSIDE 29355 bytes 128S = 8T0S (32768) 3k free
T 17 = MAGSTEPS 11537 bytes 64S = 4T0S (16384) 5k free
T 21 = MAGLEV 13862 bytes 64S = 4T0S (16384) 3k free
T 25 = MOVIE1 7680 bytes 32S = 2T0S (8192) 500B free
T 27 = MOVIE2 32275 bytes 128S = 8T0S (32768)500B free

View File

@ -1,88 +0,0 @@
;===========================================
; hgr draw sprite (only at 7-bit boundaries)
;===========================================
; SPRITE in INL/INH
; Location at SPRITE_X SPRITE_Y
; xsize, ysize in first two bytes
; sprite AT INL/INH
hgr_draw_sprite:
ldy #0
lda (INL),Y ; load xsize
clc
adc SPRITE_X
sta sprite_width_end_smc+1 ; self modify for end of line
iny ; load ysize
lda (INL),Y
sta sprite_ysize_smc+1 ; self modify
; point smc to sprite
lda INL ; 16-bit add
sta sprite_smc1+1
lda INH
sta sprite_smc1+2
ldx #0 ; X is pointer offset
stx CURRENT_ROW ; actual row
ldx #2
hgr_sprite_yloop:
lda CURRENT_ROW ; row
clc
adc SPRITE_Y ; add in cursor_y
; calc GBASL/GBASH
tay ; get output ROW into GBASL/H
lda hposn_low,Y
sta GBASL
lda hposn_high,Y
; eor #$00 draws on page2
; eor #$60 draws on page1
;hgr_sprite_page_smc:
; eor #$00
clc
adc DRAW_PAGE
sta GBASH
; eor #$60
; sta INH
ldy SPRITE_X
sprite_inner_loop:
sprite_smc1:
lda $f000,X ; load sprite data
sta (GBASL),Y ; store to screen
inx ; increment sprite offset
bne not_oflo
inc sprite_smc1+2
not_oflo:
iny ; increment output position
sprite_width_end_smc:
cpy #6 ; see if reached end of row
bne sprite_inner_loop ; if not, loop
inc CURRENT_ROW ; row
lda CURRENT_ROW ; row
sprite_ysize_smc:
cmp #31 ; see if at end
bne hgr_sprite_yloop ; if not, loop
rts

View File

@ -142,17 +142,15 @@ handle2_clicked:
; .include "zx02_optim.s"
.include "keyboard.s"
; .include "keyboard.s"
.include "hgr_14x14_sprite.s"
.include "draw_pointer.s"
; .include "hgr_14x14_sprite.s"
; .include "draw_pointer.s"
.include "log_table.s"
; .include "log_table.s"
.include "graphics_maglev/maglev_graphics.inc"
;.include "common_sprites.inc"
.include "graphics_sprites/pointer_sprites.inc"
;.include "graphics_sprites/pointer_sprites.inc"
.include "disk39_files/leveldata_maglev.inc"

View File

@ -102,17 +102,15 @@ really_exit:
; .include "zx02_optim.s"
.include "keyboard.s"
; .include "keyboard.s"
.include "hgr_14x14_sprite.s"
.include "draw_pointer.s"
; .include "hgr_14x14_sprite.s"
; .include "draw_pointer.s"
.include "log_table.s"
; .include "log_table.s"
.include "graphics_magsteps/magsteps_graphics.inc"
;.include "common_sprites.inc"
.include "graphics_sprites/pointer_sprites.inc"
;.include "graphics_sprites/pointer_sprites.inc"
.include "disk39_files/leveldata_magsteps.inc"

View File

@ -117,17 +117,15 @@ call_button_clicked:
; .include "zx02_optim.s"
.include "keyboard.s"
; .include "keyboard.s"
.include "hgr_14x14_sprite.s"
.include "draw_pointer.s"
; .include "hgr_14x14_sprite.s"
; .include "draw_pointer.s"
.include "log_table.s"
; .include "log_table.s"
.include "graphics_outside/outside_graphics.inc"
;.include "common_sprites.inc"
.include "graphics_sprites/pointer_sprites.inc"
;.include "graphics_sprites/pointer_sprites.inc"
.include "disk39_files/leveldata_outside.inc"

View File

@ -102,15 +102,15 @@ really_exit:
; .include "zx02_optim.s"
.include "keyboard.s"
; .include "keyboard.s"
.include "hgr_14x14_sprite.s"
.include "draw_pointer.s"
; .include "hgr_14x14_sprite.s"
; .include "draw_pointer.s"
.include "log_table.s"
; .include "log_table.s"
.include "graphics_projector/projector_graphics.inc"
.include "graphics_sprites/pointer_sprites.inc"
;.include "graphics_sprites/pointer_sprites.inc"
.include "disk39_files/leveldata_projector.inc"

View File

@ -359,7 +359,7 @@ done_pageflip:
.include "movie_maglev_flip/movie_maglev_flip.inc"
.include "wait.s"
; .include "wait.s"
frames_l:
.byte <img025_bg_zx02

View File

@ -321,7 +321,7 @@ done_pageflip:
; .include "zx02_optim.s"
.include "wait.s"
; .include "wait.s"
.include "movie_maglev_ride/movie_maglev_ride.inc"

View File

@ -3,4 +3,10 @@
qload_start = $1800
full_decomp = qload_start+$DB
wait = qload_start+$161
wait_50xms = qload_start+$16f
draw_pointer = qload_start+$178
save_bg_14x14 = qload_start+$44f
handle_keypress = qload_start+$4b9
change_location = qload_start+$5f9

View File

@ -250,8 +250,12 @@ insert_disk_string:
; common includes used by everyone
.include "zx02_optim.s"
.include "wait.s"
.include "draw_pointer.s"
.include "log_table.s"
.include "graphics_sprites/pointer_sprites.inc"
.include "hgr_14x14_sprite.s"
.include "keyboard.s"
which_disk_array:
.byte 1,1,1,1 ; TITLE, OUTSIDE, PROJECTOR, MAGSTEPS

View File

@ -320,7 +320,7 @@ clear_loop:
.include "hgr_tables.s"
.include "wait_a_bit.s"
.include "wait.s"
; .include "wait.s"
.include "hardware_detect.s"