ootw: intro: allow continuing to game

This commit is contained in:
Vince Weaver 2019-03-03 14:05:00 -05:00
parent 5791937a4e
commit 484579c400
6 changed files with 78 additions and 49 deletions

View File

@ -1,35 +1,52 @@
Another / Out-of-This World Demake for Apple II+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
by Vince "Deater" Weaver (vince@deater.net)
http://www.deater.net/weave/vmwprod/ootw/
Disk and LZ4 routines by qkumba
Saw the amazing PICO-8 version of this:
+ The game "Another World" was released in 1991.
Written by Eric Chahi.
It was eventually ported to many systems (I played it on IBM PC).
It even got an Apple IIgs port (the IIgs is 16-bit with fancy
graphics and sound). However you couldn't play it on
earlier Apple II systems... until now.
+ I was inspired to do this by this amazing PICO-8 version of:
https://liquidream.itch.io/another-world-survival
and thought the lo-res pallette might be just barely enough to do
it justice.
Of course you could just play on your IIgs, but what's the fun in that.
Up to tunnel1, using RLE:
35875 INTRO
using LZ4:
and thought the Apple II lo-res palette (15 colors, 40x48 graphics)
might be just barely enough to do it justice.
==================
Game controls:
==================
Use WASD keys to move, also arrow keys where available.
This is tricky as the original Apple II keyboard is very
simplistic so it's hard to get auto-repeat or multi keypress.
Spacebar is action.
During the intro, you can press R to make it repeat forever.
Joystick support: none yet?
==================
Development notes:
==================
Memory map:
00 zero page
01 stack
02 ????
03 dos33 nibble table
03 nibble table/disk data
04-07 GR page0
08-0b GR page1
0c-0f offscreen data ($c00 = disk load buffer)
10-13 offscreen data2
14-16 loader
17-bf program/data (42.25k)
17-89 program/compressed-data (30.25k)
90-bf currently decompressed level data (12k)
c0-cf I/O
d0-ff ROM
@ -50,19 +67,8 @@ Memory squeeze!
2,053 over make elevator indicator a loop
1,347 over use LZ4 instead of RLE
4000 code
40000 data
20000 -> 12000
20000 -> 12000
24000+20000=44000
20000 -> 10000
20000 -> 10000
20000+2000=
Gave up, see if we can compress in chunks and decompress, sort of like
my chiptune player does.
Let's take a 12k region of memory = $3000
@ -70,7 +76,7 @@ Let's take a 12k region of memory = $3000
ID1 = 1461 2143\
ID2 = 1759 2687|--- togeter in 01
ID2 = 1759 2687|--- together in 01
ID3 = 1195 1879/
ID4 = 2514 8280\--- in 04
ID5 = 1947 3492/
@ -82,7 +88,3 @@ ID10 = 3397 5558/
===== ======
25890 12k

View File

@ -1,15 +1,5 @@
TODO:
intro:
+ keyboard: skip to end, r to repeat forever
+ Some bugs to fix at some point
-> closing panel at entry to scanner, one frame missing grey line
-> on building_car bg there are some grey patches that are
grey 10 instead of grey 5
general:
+ move gr_make_quake out of gr_copy
movement -- note these are hard due to limitations of the Apple II keyboard
+ ability to run
+ ability to jump

View File

@ -1,5 +1,5 @@
5 HOME
10 PRINT "OOTW PROOF-OF-CONCEPT V1.7 BY DEATER"
10 PRINT "OOTW PROOF-OF-CONCEPT V1.8 BY DEATER"
20 PRINT " DISK,LZ4 BY QKUMBA"
25 PRINT " ,"
30 PRINT "ORIGINAL BY ERIC CHAHI"

View File

@ -6,7 +6,11 @@
.include "hardware.inc"
intro:
lda #0
sta INTRO_REPEAT
bit KEYRESET
repeat_intro:
;===========================
; Enable graphics
@ -1617,11 +1621,43 @@ tunnel1:
jsr run_sequence
gone_loop:
lda KEYPRESS
bpl gone_loop
bit KEYRESET
;======================
; Pause a bit
ldx #180
jsr long_wait
;gone_loop:
; lda KEYPRESS
; bpl gone_loop
; bit KEYRESET
; see if R pressed, if so, repeat
; otherwise, return and indicate we want to start the game
lda KEYPRESS
bpl check_repeat ; if no keypress, jump ahead
and #$7f ; clear high bit
cmp #'R'
bne check_repeat
lda INTRO_REPEAT
eor #$1
sta INTRO_REPEAT
check_repeat:
bit KEYRESET ; reset keyboard strobe
lda INTRO_REPEAT
beq done_intro
jmp repeat_intro
done_intro:
lda #1 ; start game
sta WHICH_LOAD
rts

Binary file not shown.

View File

@ -70,6 +70,7 @@ BLARGH = $69
;DY_F = $6F
INTRO_REPEAT = $7E
ZPOS = $78
REGISTER_DUMP = $70