riven: hook up atrus intro

This commit is contained in:
Vince Weaver 2024-07-01 12:50:45 -04:00
parent 4dfc18a674
commit 7305dcd628
20 changed files with 312 additions and 39 deletions

View File

@ -9,7 +9,8 @@ CADIUS = ~/research/apple2/cadius/bin/release/cadius
PRODOSDIR = ../../utils/prodos-utils/
PRODOS = ../../utils/prodos-utils/prodos
all: riven_disk01.dsk \
all: riven_disk00.dsk \
riven_disk01.dsk \
riven_disk39.dsk riven_disk40.dsk riven_disk41.dsk \
riven_disk43.dsk \
riven_hgr.po
@ -35,6 +36,22 @@ riven_hgr.po: disk01_files/LEVEL_ARRIVAL
###
riven_disk00.dsk: QBOOT QLOAD TITLE_00 \
disk00_files/DISK00 \
disk00_files/ATRUS
cp $(EMPTY_DISK)/empty.dsk riven_disk00.dsk
$(DOS33_RAW) riven_disk00.dsk 0 0 QBOOT 0 1
$(DOS33_RAW) riven_disk00.dsk 0 2 QBOOT 1 1
$(DOS33_RAW) riven_disk00.dsk 0 4 QBOOT 2 1
$(DOS33_RAW) riven_disk00.dsk 0 8 disk00_files/DISK00 0 0
$(DOS33_RAW) riven_disk00.dsk 1 0 QLOAD 0 0
$(DOS33_RAW) riven_disk00.dsk 1 9 TITLE_00 0 0
# $(DOS33_RAW) riven_disk00.dsk 2 0 disk00_files/CYAN 0 0
$(DOS33_RAW) riven_disk00.dsk 10 0 disk00_files/ATRUS 0 0
###
riven_disk01.dsk: QBOOT QLOAD TITLE_01 \
@ -153,6 +170,16 @@ qload.o: qload.s qboot.inc \
keyboard.s
ca65 -o qload.o qload.s -l qload.lst
####
TITLE_00: title_00.o
ld65 -o TITLE_00 title_00.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
title_00.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_00.o title.s -DDISK=00 -l title_00.lst
####

View File

@ -0,0 +1,43 @@
include ../../../Makefile.inc
LINKER_SCRIPTS = ../../../linker_scripts/
all: DISK00 ATRUS
####
DISK00: disk00.o
ld65 -o DISK00 disk00.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
disk00.o: disk00.s ../zp.inc
ca65 -o disk00.o disk00.s -l disk00.lst
####
ATRUS: atrus.o
ld65 -o ATRUS atrus.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
atrus.o: atrus.s \
../zp.inc ../hardware.inc ../qload.inc \
graphics_atrus/atrus_graphics.inc
ca65 -o atrus.o atrus.s -l atrus.lst
####
graphics_atrus/atrus_graphics.inc:
cd graphics_atrus && make
####
clean:
rm -f *~ *.o *.lst \
DISK00 ATRUS
####
distclean:
rm -f *~ *.o *.lst \
DISK00 ATRUS
cd graphics_atrus && make clean

View File

@ -0,0 +1,133 @@
; Opening with Atrus
; by deater (Vince Weaver) <vince@deater.net>
.include "../zp.inc"
.include "../hardware.inc"
.include "../qload.inc"
NUM_SCENES = 11
;===================
; notes for atrus opening
atrus_start:
;===================
; Setup graphics
;===================
bit SET_GR
bit HIRES
bit TEXTGR
bit PAGE1
lda #0
sta SCENE_COUNT
lda #4
sta DRAW_PAGE
bit KEYRESET
;===============================
;===============================
; main loop
;===============================
;===============================
atrus_loop:
ldx SCENE_COUNT
lda frames_l,X
sta ZX0_src
lda frames_h,X
sta ZX0_src+1
lda #$20 ; hgr page1
jsr full_decomp
wait_for_key:
lda KEYPRESS
bpl wait_for_key
bit KEYRESET
inc SCENE_COUNT
lda SCENE_COUNT
cmp #NUM_SCENES
bne atrus_loop
rts
frames_l:
.byte <atrus1_zx02
.byte <atrus2_zx02
.byte <atrus3_zx02
.byte <atrus4_zx02
.byte <atrus5_zx02
.byte <atrus6_zx02
.byte <atrus7_zx02
.byte <atrus8_zx02
.byte <atrus9_zx02
.byte <atrus10_zx02
.byte <atrus11_zx02
frames_h:
.byte >atrus1_zx02
.byte >atrus2_zx02
.byte >atrus3_zx02
.byte >atrus4_zx02
.byte >atrus5_zx02
.byte >atrus6_zx02
.byte >atrus7_zx02
.byte >atrus8_zx02
.byte >atrus9_zx02
.byte >atrus10_zx02
.byte >atrus11_zx02
atrus_graphics:
.include "graphics_atrus/atrus_graphics.inc"
; [welcoming player back]
.byte "Thank God you've returned.",0
.byte "I need your help.",0
.byte "There's a great deal of history that",0
.byte "you should know, but I'm afraid that...",0
.byte "I must continue my writing. Here.",0
;[hands player his journal]
.byte "Most of what you'll need to know is in",0
.byte "there.",0
.byte "Keep it well hidden.",0
;[picks up the book]
.byte "For reasons you'll discover, I can't",0
.byte "send you to Riven with a way out, but",0
.byte "I can give you this.",0
.byte "It appears to be a Linking Book, back",0
.byte "here to D'ni, but it's actually a",0
.byte "one-man prison. You'll need it,",0
.byte "I'm afraid, to capture Gehn.",0
;[hands player the Prison book]
.byte "Once you've found Catherine, signal me,",0
.byte "and I'll come with a Linking Book",0
.byte "to bring us back.",0
;[writes in the Riven book, then closes it",0
; re-opens to the first page, holds it up,",0
; showing glitchy panel]
.byte "There's also a chance, if all goes",0
.byte "well, that I might be able to get you",0
.byte "back to the place that you came from.",0

View File

@ -0,0 +1,42 @@
.include "../zp.inc"
which_disk:
.byte $00 ; BCD
load_address_array:
.byte $40,$40,$40,$40 ; TITLE, CYAN, ATRUS
.byte $00,$00,$00,$00
track_array:
.byte 1, 2, 10,18 ; TITLE, CYAN, ATRUS
.byte 0,0,0,0
sector_array:
.byte 9, 0, 0, 0 ; TITLE, CYAN, ATRUS
.byte 0,0,0,0
length_array:
.byte 8, 128,128,128 ; TITLE, CYAN, ATRUS
.byte 0,0,0,0
disk_exit_disk: ; note: BCD (yes I'm lazy)
.byte $01 ; start of game
.byte 0,0,0
disk_exit_dni_h:
.byte $00 ; 01 = 1
.byte 0,0,0
disk_exit_dni_l:
.byte $01
.byte 0,0,0
; want to go to disk01, LOAD_ARRIVAL, RIVEN_ARRIVAL, N
disk_exit_load:
.byte 1 ; LOAD_ARRIVAL
.byte 0,0,0
disk_exit_level:
.byte 0 ; RIVEN_ARRIVAL
.byte 0,0,0
disk_exit_direction:
.byte DIRECTION_N
.byte 0,0,0

View File

@ -0,0 +1,4 @@
LOAD_TITLE = 0
LOAD_CYAN = 1
LOAD_ATRUS = 2
LOAD_OPENER = 3

View File

@ -0,0 +1,45 @@
include ../../../../Makefile.inc
ZX02 = ~/research/6502_compression/zx02.git/build/zx02
PNG_TO_HGR = ../../../../utils/hgr-utils/png2hgr
all: atrus_graphics.inc
atrus_graphics.inc: \
atrus1_iipix.hgr.zx02 \
atrus2_iipix.hgr.zx02 \
atrus3_iipix.hgr.zx02 \
atrus4_iipix.hgr.zx02 \
atrus5_iipix.hgr.zx02 \
atrus6_iipix.hgr.zx02 \
atrus7_iipix.hgr.zx02 \
atrus8_iipix.hgr.zx02 \
atrus9_iipix.hgr.zx02 \
atrus10_iipix.hgr.zx02 \
atrus11_iipix.hgr.zx02
echo "atrus1_zx02: .incbin \"atrus1_iipix.hgr.zx02\"" > atrus_graphics.inc
echo "atrus2_zx02: .incbin \"atrus2_iipix.hgr.zx02\"" >> atrus_graphics.inc
echo "atrus3_zx02: .incbin \"atrus3_iipix.hgr.zx02\"" >> atrus_graphics.inc
echo "atrus4_zx02: .incbin \"atrus4_iipix.hgr.zx02\"" >> atrus_graphics.inc
echo "atrus5_zx02: .incbin \"atrus5_iipix.hgr.zx02\"" >> atrus_graphics.inc
echo "atrus6_zx02: .incbin \"atrus6_iipix.hgr.zx02\"" >> atrus_graphics.inc
echo "atrus7_zx02: .incbin \"atrus7_iipix.hgr.zx02\"" >> atrus_graphics.inc
echo "atrus8_zx02: .incbin \"atrus8_iipix.hgr.zx02\"" >> atrus_graphics.inc
echo "atrus9_zx02: .incbin \"atrus9_iipix.hgr.zx02\"" >> atrus_graphics.inc
echo "atrus10_zx02: .incbin \"atrus10_iipix.hgr.zx02\"" >> atrus_graphics.inc
echo "atrus11_zx02: .incbin \"atrus11_iipix.hgr.zx02\"" >> atrus_graphics.inc
####
%.hgr: %.png
$(PNG_TO_HGR) $< > $@
%.hgr.zx02: %.hgr
$(ZX02) -f $< $@
####
clean:
rm -f *~ *.o *.lst *.zx02 *.hgr atrus_graphics.inc

View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -1,36 +0,0 @@
[opening monologue, to the player]
Thank God you've returned.
I need your help.
There's a great deal of history that
you should know, but I'm afraid that...
I must continue my writing. Here.
[hands the player his journal]
Most of what you'll need to know is in
there.
Keep it well hidden.
[picks up a book]
For reasons you'll discover, I can't
send you to Riven with a way out, but
I can give you this.
It appears to be a Linking Book, back
here to D'ni, but it's actually a
one-man prison. You'll need it,
I'm afraid, to capture Gehn.
[hands the player the Prison Book]
Once you've found Catherine, signal me,
and I'll come with a Linking Book
to bring us back.
[writes in the Book of Riven, then closes it,
opens it to its first page, and holds it up,
showing the blurred descriptive panel]
There's also a chance, if all goes
well, that I might be able to get you
back to the place that you came from.

View File

@ -50,13 +50,13 @@ graphics_telescope/telescope_graphics.inc:
clean:
rm -f *~ *.o *.lst \
LEVEL_ARRIVAL LEVEL_TELESCOPE
DISK01 LEVEL_ARRIVAL LEVEL_TELESCOPE
####
distclean:
rm -f *~ *.o *.lst \
LEVEL_ARRIVAL LEVEL_TELESCOPE
DISK01 LEVEL_ARRIVAL LEVEL_TELESCOPE
cd graphics_arrival && make clean
cd graphics_telescope && make clean

View File

@ -8,6 +8,10 @@
.include "common_defines.inc"
.include "qload.inc"
.if DISK=00
.include "disk00_files/disk00_defines.inc"
.endif
.if DISK=01
.include "disk01_files/disk01_defines.inc"
.endif
@ -312,6 +316,17 @@ done_setup_sound:
lda #100
jsr wait_a_bit
.if DISK=00
lda #LOAD_ATRUS
sta WHICH_LOAD ; assume ATRUS talking for now
lda #0 ; not needed...
sta LOCATION
lda #DIRECTION_N
sta DIRECTION
.endif
.if DISK=01
lda #LOAD_ARRIVAL
sta WHICH_LOAD ; assume new game (dome island)