mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-02 01:29:06 +00:00
riven: add back in a disk40
This commit is contained in:
parent
5b0ee0915e
commit
dac7ab17f7
@ -7,7 +7,7 @@ EMPTY_DISK = ../../empty_disk/
|
||||
LINKER_SCRIPTS = ../../linker_scripts/
|
||||
|
||||
|
||||
all: riven_disk39.dsk riven_disk43.dsk
|
||||
all: riven_disk39.dsk riven_disk40.dsk riven_disk43.dsk
|
||||
|
||||
riven_disk39.dsk: QBOOT QLOAD_39 TITLE_39 \
|
||||
disk39_files/LEVEL_MAGSTEPS \
|
||||
@ -29,6 +29,16 @@ riven_disk39.dsk: QBOOT QLOAD_39 TITLE_39 \
|
||||
$(DOS33_RAW) riven_disk39.dsk 25 0 disk39_files/MOVIE_MAGLEV_FLIP 0 0
|
||||
$(DOS33_RAW) riven_disk39.dsk 27 0 disk39_files/MOVIE_MAGLEV_RIDE 0 0
|
||||
|
||||
riven_disk40.dsk: QBOOT QLOAD_40 TITLE_40 \
|
||||
disk40_files/LEVEL_MAGLEV
|
||||
cp $(EMPTY_DISK)/empty.dsk riven_disk40.dsk
|
||||
$(DOS33_RAW) riven_disk40.dsk 0 0 QBOOT 0 1
|
||||
$(DOS33_RAW) riven_disk40.dsk 0 2 QBOOT 1 1
|
||||
$(DOS33_RAW) riven_disk40.dsk 0 4 QBOOT 2 1
|
||||
$(DOS33_RAW) riven_disk40.dsk 1 0 QLOAD_40 0 0
|
||||
$(DOS33_RAW) riven_disk40.dsk 1 8 TITLE_40 0 0
|
||||
$(DOS33_RAW) riven_disk40.dsk 2 0 disk40_files/LEVEL_MAGLEV 0 0
|
||||
|
||||
riven_disk43.dsk: QBOOT QLOAD_43 TITLE_43 \
|
||||
disk43_files/LEVEL_CART
|
||||
cp $(EMPTY_DISK)/empty.dsk riven_disk43.dsk
|
||||
@ -62,6 +72,22 @@ qload_39.o: qload.s qboot.inc \
|
||||
keyboard.s
|
||||
ca65 -o qload_39.o qload.s -DDISK=39 -l qload_39.lst
|
||||
|
||||
###
|
||||
|
||||
QLOAD_40: qload_40.o
|
||||
ld65 -o QLOAD_40 qload_40.o -C $(LINKER_SCRIPTS)/apple2_1800.inc
|
||||
|
||||
qload_40.o: qload.s qboot.inc \
|
||||
zx02_optim.s wait.s \
|
||||
draw_pointer.s log_table.s \
|
||||
disk40_files/disk40_qload.inc \
|
||||
disk40_files/disk40_defines.inc \
|
||||
graphics_sprites/pointer_sprites.inc \
|
||||
hgr_14x14_sprite.s \
|
||||
keyboard.s
|
||||
ca65 -o qload_40.o qload.s -DDISK=40 -l qload_40.lst
|
||||
|
||||
|
||||
####
|
||||
|
||||
QLOAD_43: qload_43.o
|
||||
@ -90,6 +116,18 @@ title_39.o: title.s zp.inc hardware.inc \
|
||||
|
||||
####
|
||||
|
||||
TITLE_40: title_40.o
|
||||
ld65 -o TITLE_40 title_40.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||
|
||||
title_40.o: title.s zp.inc hardware.inc \
|
||||
qload.inc wait_a_bit.s \
|
||||
hgr_tables.s \
|
||||
graphics_title/riven_title.hgr.zx02
|
||||
ca65 -o title_40.o title.s -DDISK=40 -l title_40.lst
|
||||
|
||||
|
||||
####
|
||||
|
||||
TITLE_43: title_43.o
|
||||
ld65 -o TITLE_43 title_43.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||
|
||||
@ -122,6 +160,11 @@ disk39_files/MOVIE_MAGLEV_RIDE:
|
||||
|
||||
####
|
||||
|
||||
disk40_files/LEVEL_MAGLEV:
|
||||
cd disk40_files && make
|
||||
|
||||
####
|
||||
|
||||
disk43_files/LEVEL_CART:
|
||||
cd disk43_files && make
|
||||
|
||||
@ -137,16 +180,22 @@ graphics_title/riven_title.hgr.zx02:
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst QLOAD QBOOT TITLE
|
||||
rm -f *~ *.o *.lst QLOAD \
|
||||
QBOOT_39 QBOOT_40 QBOOT_43 \
|
||||
TITLE_39 TITLE_40 TITLE_43
|
||||
cd disk39_files && make clean
|
||||
cd disk40_files && make clean
|
||||
cd disk43_files && make clean
|
||||
|
||||
####
|
||||
|
||||
distclean:
|
||||
rm -f *~ *.o *.lst QLOAD QBOOT TITLE
|
||||
rm -f *~ *.o *.lst QLOAD \
|
||||
QBOOT_39 QBOOT_40 QBOOT_43 \
|
||||
TITLE_39 TITLE_40 TITLE_43
|
||||
cd graphics_title && make clean
|
||||
cd graphics_sprites && make clean
|
||||
cd disk39_files && make distclean
|
||||
cd disk40_files && make distclean
|
||||
cd disk43_files && make distclean
|
||||
|
||||
|
@ -51,8 +51,27 @@ 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
|
||||
T 25 = MOVIE_FLIP 7680 bytes 32S = 2T0S (8192) 500B free
|
||||
T 27 = MOVIE_MAG 32275 bytes 128S = 8T0S (32768)500B free
|
||||
|
||||
Disk40 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 = STATION 26736 bytes 112S = 7T0S (28672) 2k free
|
||||
T 25 = MOVIE_FLIP 7680 bytes 32S = 2T0S (8192) 500B free
|
||||
T 27 = MOVIE_MAG 32275 bytes 128S = 8T0S (32768)500B free
|
||||
|
||||
|
||||
Disk43 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 = CART 26736 bytes 112S = 7T0S (28672) 2k free
|
||||
T 27 = MOVIE_CART32275 bytes 128S = 8T0S (32768)500B free
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
include ../../../Makefile.inc
|
||||
include ../../../../Makefile.inc
|
||||
|
||||
ZX02 = ~/research/6502_compression/zx02.git/build/zx02
|
||||
PNG2GR = ../../../utils/gr-utils/png2gr
|
||||
PNG2GR = ../../../../utils/gr-utils/png2gr
|
||||
|
||||
all: end_message.gr.zx02
|
||||
|
||||
|
105
games/riven_hgr/disk40_files/Makefile
Normal file
105
games/riven_hgr/disk40_files/Makefile
Normal file
@ -0,0 +1,105 @@
|
||||
include ../../../Makefile.inc
|
||||
|
||||
LINKER_SCRIPTS = ../../../linker_scripts/
|
||||
|
||||
|
||||
all: LEVEL_MAGLEV
|
||||
|
||||
####
|
||||
|
||||
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 ../qload.inc \
|
||||
../common_defines.inc disk40_defines.inc \
|
||||
leveldata_maglev.inc \
|
||||
graphics_maglev/maglev_graphics.inc
|
||||
ca65 -o level_maglev.o level_maglev.s -l level_maglev.lst
|
||||
|
||||
####
|
||||
|
||||
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 ../qload.inc \
|
||||
../common_defines.inc disk40_defines.inc \
|
||||
leveldata_projector.inc \
|
||||
graphics_projector/projector_graphics.inc
|
||||
ca65 -o level_projector.o level_projector.s -l level_projector.lst
|
||||
|
||||
####
|
||||
|
||||
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 ../qload.inc \
|
||||
../common_defines.inc disk40_defines.inc \
|
||||
leveldata_magsteps.inc \
|
||||
graphics_magsteps/magsteps_graphics.inc
|
||||
ca65 -o level_magsteps.o level_magsteps.s -l level_magsteps.lst
|
||||
|
||||
####
|
||||
|
||||
MOVIE_MAGLEV_FLIP: movie_maglev_flip.o
|
||||
ld65 -o MOVIE_MAGLEV_FLIP movie_maglev_flip.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||
|
||||
movie_maglev_flip.o: movie_maglev_flip.s \
|
||||
../zp.inc ../hardware.inc ../qload.inc \
|
||||
../common_defines.inc disk40_defines.inc \
|
||||
movie_maglev_flip/movie_maglev_flip.inc
|
||||
ca65 -o movie_maglev_flip.o movie_maglev_flip.s -l movie_maglev_flip.lst
|
||||
|
||||
####
|
||||
|
||||
MOVIE_MAGLEV_RIDE: movie_maglev_ride.o
|
||||
ld65 -o MOVIE_MAGLEV_RIDE movie_maglev_ride.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||
|
||||
movie_maglev_ride.o: movie_maglev_ride.s \
|
||||
../zp.inc ../hardware.inc ../qload.inc \
|
||||
../common_defines.inc disk40_defines.inc \
|
||||
end_message/end_message.gr.zx02 \
|
||||
movie_maglev_ride/movie_maglev_ride.inc
|
||||
ca65 -o movie_maglev_ride.o movie_maglev_ride.s -l movie_maglev_ride.lst
|
||||
|
||||
|
||||
|
||||
####
|
||||
|
||||
graphics_maglev/maglev_graphics.inc:
|
||||
cd graphics_maglev && make
|
||||
|
||||
graphics_magsteps/magsteps_graphics.inc:
|
||||
cd graphics_magsteps && make
|
||||
|
||||
graphics_projector/projector_graphics.inc:
|
||||
cd graphics_projector && make
|
||||
|
||||
movie_maglev_flip/movie_maglev_flip.inc:
|
||||
cd movie_maglev_flip && make
|
||||
|
||||
movie_maglev_ride/movie_maglev_ride.inc:
|
||||
cd movie_maglev_ride && make
|
||||
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst \
|
||||
LEVEL_PROJECTOR LEVEL_MAGSTEPS LEVEL_MAGLEV LEVEL_MAGLEV \
|
||||
MOVIE_MAGLEV_FLIP MOVIE_MAGLEV_RIDE
|
||||
|
||||
####
|
||||
|
||||
distclean:
|
||||
rm -f *~ *.o *.lst \
|
||||
LEVEL_PROJECTOR LEVEL_MAGSTEPS LEVEL_MAGLEV LEVEL_MAGLEV \
|
||||
MOVIE_MAGLEV_FLIP MOVIE_MAGLEV_RIDE
|
||||
cd graphics_maglev && make clean
|
||||
# cd graphics_projector && make clean
|
||||
# cd graphics_magsteps && make clean
|
||||
# cd graphics_maglev && make clean
|
||||
# cd movie_maglev_flip && make clean
|
||||
# cd movie_maglev_ride && make clean
|
||||
|
10
games/riven_hgr/disk40_files/disk40_defines.inc
Normal file
10
games/riven_hgr/disk40_files/disk40_defines.inc
Normal file
@ -0,0 +1,10 @@
|
||||
LOAD_TITLE = 0
|
||||
LOAD_MAGLEV = 1
|
||||
|
||||
;================================
|
||||
; Level definitions
|
||||
|
||||
; Maglev
|
||||
|
||||
RIVEN_MAGLEV_SIT = 0
|
||||
|
14
games/riven_hgr/disk40_files/disk40_qload.inc
Normal file
14
games/riven_hgr/disk40_files/disk40_qload.inc
Normal file
@ -0,0 +1,14 @@
|
||||
which_disk_array:
|
||||
.byte 1,1,1,1 ; TITLE, MAGLEV
|
||||
|
||||
load_address_array:
|
||||
.byte $40,$40,$40,$40 ; TITLE, MAGLEV
|
||||
|
||||
track_array:
|
||||
.byte 1, 2, 9,17 ; TITLE, MAGLEV
|
||||
|
||||
sector_array:
|
||||
.byte 8, 0, 0, 0 ; TITLE, MAGLEV
|
||||
|
||||
length_array:
|
||||
.byte 16, 96,123, 64 ; TITLE, MAGLEV
|
24
games/riven_hgr/disk40_files/graphics_maglev/Makefile
Normal file
24
games/riven_hgr/disk40_files/graphics_maglev/Makefile
Normal file
@ -0,0 +1,24 @@
|
||||
include ../../../../Makefile.inc
|
||||
|
||||
ZX02 = ~/research/6502_compression/zx02.git/build/zx02 -f
|
||||
PNG_TO_HGR = ../../../../utils/hgr-utils/png2hgr
|
||||
|
||||
all: maglev_graphics.inc
|
||||
|
||||
maglev_graphics.inc: \
|
||||
maglev_sit_s.hgr.zx02
|
||||
echo "maglev_sit_s_zx02: .incbin \"maglev_sit_s.hgr.zx02\"" > maglev_graphics.inc
|
||||
|
||||
####
|
||||
|
||||
%.hgr: %.png
|
||||
$(PNG_TO_HGR) $< > $@
|
||||
|
||||
%.hgr.zx02: %.hgr
|
||||
$(ZX02) -f $< $@
|
||||
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst *.zx02 *.hgr maglev_graphics.inc
|
||||
|
BIN
games/riven_hgr/disk40_files/graphics_maglev/maglev_sit_s.png
Normal file
BIN
games/riven_hgr/disk40_files/graphics_maglev/maglev_sit_s.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
122
games/riven_hgr/disk40_files/level_maglev.s
Normal file
122
games/riven_hgr/disk40_files/level_maglev.s
Normal file
@ -0,0 +1,122 @@
|
||||
; Riven -- Jungle Island -- Maglev
|
||||
|
||||
; by deater (Vince Weaver) <vince@deater.net>
|
||||
|
||||
; Zero Page
|
||||
.include "../zp.inc"
|
||||
.include "../hardware.inc"
|
||||
.include "../common_defines.inc"
|
||||
.include "../qload.inc"
|
||||
.include "disk40_defines.inc"
|
||||
|
||||
riven_jungle_maglev:
|
||||
|
||||
;===================
|
||||
; init screen
|
||||
;===================
|
||||
|
||||
; jsr TEXT
|
||||
; jsr HOME
|
||||
bit KEYRESET
|
||||
|
||||
bit SET_GR
|
||||
bit PAGE1
|
||||
bit HIRES
|
||||
bit FULLGR
|
||||
|
||||
;========================
|
||||
; set up location
|
||||
;========================
|
||||
|
||||
lda #<locations
|
||||
sta LOCATIONS_L
|
||||
lda #>locations
|
||||
sta LOCATIONS_H
|
||||
|
||||
lda #0
|
||||
sta DRAW_PAGE
|
||||
sta LEVEL_OVER
|
||||
|
||||
lda #0
|
||||
sta JOYSTICK_ENABLED
|
||||
sta UPDATE_POINTER
|
||||
|
||||
lda #1
|
||||
sta CURSOR_VISIBLE
|
||||
|
||||
lda #20
|
||||
sta CURSOR_X
|
||||
sta CURSOR_Y
|
||||
|
||||
|
||||
|
||||
|
||||
;===================================
|
||||
; init
|
||||
;===================================
|
||||
|
||||
; done in title
|
||||
|
||||
; lda #$20
|
||||
; sta HGR_PAGE
|
||||
; jsr hgr_make_tables
|
||||
|
||||
jsr change_location
|
||||
|
||||
jsr save_bg_14x14 ; save old bg
|
||||
|
||||
game_loop:
|
||||
|
||||
;===================================
|
||||
; draw pointer
|
||||
;===================================
|
||||
|
||||
jsr draw_pointer
|
||||
|
||||
;===================================
|
||||
; handle keypress/joystick
|
||||
;===================================
|
||||
|
||||
jsr handle_keypress
|
||||
|
||||
;===================================
|
||||
; increment frame count
|
||||
;===================================
|
||||
|
||||
inc FRAMEL
|
||||
bne frame_no_oflo
|
||||
|
||||
inc FRAMEH
|
||||
frame_no_oflo:
|
||||
|
||||
;====================================
|
||||
; check level over
|
||||
;====================================
|
||||
|
||||
lda LEVEL_OVER
|
||||
bne really_exit
|
||||
|
||||
jmp game_loop
|
||||
|
||||
really_exit:
|
||||
|
||||
rts
|
||||
|
||||
;==================================
|
||||
; cart button clicked
|
||||
;==================================
|
||||
; TODO: call cart code
|
||||
|
||||
cart_button_clicked:
|
||||
bit SPEAKER
|
||||
rts
|
||||
|
||||
|
||||
;==========================
|
||||
; includes
|
||||
;==========================
|
||||
|
||||
|
||||
.include "graphics_maglev/maglev_graphics.inc"
|
||||
|
||||
.include "leveldata_maglev.inc"
|
27
games/riven_hgr/disk40_files/leveldata_maglev.inc
Normal file
27
games/riven_hgr/disk40_files/leveldata_maglev.inc
Normal file
@ -0,0 +1,27 @@
|
||||
;===============================================
|
||||
; level data for Jungle Maglev
|
||||
;===============================================
|
||||
|
||||
locations:
|
||||
.word location0
|
||||
|
||||
; RIVEN_MAGLEV_SIT -- sitting in maglev
|
||||
location0:
|
||||
.byte $ff ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte $ff ; east exit
|
||||
.byte $ff ; west exit
|
||||
.byte $ff ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte $ff ; east exit_dir
|
||||
.byte $ff ; west exit_dir
|
||||
.word $0000 ; north bg
|
||||
.word maglev_sit_s_zx02 ; south bg
|
||||
.word $0000 ; east bg
|
||||
.word $0000 ; west bg
|
||||
.byte BG_SOUTH ; bgs
|
||||
.byte DIRECTION_S ; special exit
|
||||
.byte 3,5 ; special x
|
||||
.byte 107,130 ; special y
|
||||
.word cart_button_clicked-1
|
||||
|
@ -11,6 +11,9 @@
|
||||
.if DISK=39
|
||||
.include "disk39_files/disk39_defines.inc"
|
||||
.endif
|
||||
.if DISK=40
|
||||
.include "disk40_files/disk40_defines.inc"
|
||||
.endif
|
||||
.if DISK=43
|
||||
.include "disk43_files/disk43_defines.inc"
|
||||
.endif
|
||||
@ -268,6 +271,10 @@ insert_disk_string:
|
||||
.include "disk39_files/disk39_qload.inc"
|
||||
.endif
|
||||
|
||||
.if DISK=40
|
||||
.include "disk40_files/disk40_qload.inc"
|
||||
.endif
|
||||
|
||||
.if DISK=43
|
||||
.include "disk43_files/disk43_qload.inc"
|
||||
.endif
|
||||
|
@ -12,6 +12,10 @@
|
||||
.include "disk39_files/disk39_defines.inc"
|
||||
.endif
|
||||
|
||||
.if DISK=40
|
||||
.include "disk40_files/disk40_defines.inc"
|
||||
.endif
|
||||
|
||||
.if DISK=43
|
||||
.include "disk43_files/disk43_defines.inc"
|
||||
.endif
|
||||
@ -304,6 +308,17 @@ clear_loop:
|
||||
sta DIRECTION
|
||||
.endif
|
||||
|
||||
.if DISK=40
|
||||
lda #LOAD_MAGLEV
|
||||
sta WHICH_LOAD ; assume new game (dome island)
|
||||
|
||||
lda #RIVEN_MAGLEV_SIT
|
||||
sta LOCATION
|
||||
|
||||
lda #DIRECTION_S
|
||||
sta DIRECTION
|
||||
.endif
|
||||
|
||||
.if DISK=43
|
||||
lda #LOAD_CART
|
||||
sta WHICH_LOAD
|
||||
|
Loading…
Reference in New Issue
Block a user