mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-18 21:06:31 +00:00
448f16e947
a bit more awkward, but something that will actually work on a II+
129 lines
3.3 KiB
Plaintext
129 lines
3.3 KiB
Plaintext
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
|
|
|
|
+ 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 Apple II lo-res palette (15 colors, 40x48 graphics)
|
|
might be just barely enough to do it justice.
|
|
|
|
==================
|
|
Game controls:
|
|
==================
|
|
Keyboard:
|
|
Note, Apple II has simplistic keyboard support.
|
|
In general it's not possible to read more than one key at a time.
|
|
Additionally, on older models there's no auto-repeat unless you
|
|
hold down the REPT key, which makes running difficult.
|
|
This means it's really not possible to use the keyboard the
|
|
same way as the original game.
|
|
|
|
D -> - move right (twice to run)
|
|
A <- - move left (twice to run)
|
|
W up - jump
|
|
S down - crouch / pickup
|
|
space - kick / gun
|
|
|
|
During the intro, you can press R to make it repeat forever.
|
|
|
|
Joystick support: none yet?
|
|
|
|
|
|
==================
|
|
Development notes:
|
|
==================
|
|
|
|
Ootw Memory map:
|
|
00 zero page
|
|
01 stack
|
|
02 ????
|
|
03 nibble table/disk data
|
|
04-07 GR page0
|
|
08-0b GR page1
|
|
0c-0f background ($c00 = disk load buffer)
|
|
10-13 background overlay
|
|
14-16 loader
|
|
17-bf program-data (41.25k)
|
|
bc-bf earthquake background (shifted)
|
|
c0-cf I/O
|
|
d0-ff ROM
|
|
|
|
|
|
Intro Memory map:
|
|
00 zero page
|
|
01 stack
|
|
02 ????
|
|
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-89 program/compressed-data (30.25k)
|
|
90-bf currently decompressed level data (12k)
|
|
c0-cf I/O
|
|
d0-ff ROM
|
|
|
|
|
|
Intro Memory squeeze!
|
|
|
|
10,748 over all graphics in
|
|
10,734 over remove extraneous blank bg image
|
|
8,658 over re-arrange memory map, 42k avail now
|
|
8,562 over move gr_make_quake out of common code
|
|
8,374 over remove extraneous code (mostly put_sprite_flipped)
|
|
5,469 over allow changing bg on fly in sequence
|
|
4,122 over modify cyan frames to be on fly
|
|
2,749 over do same for zappo routines
|
|
2,493 over squish disk loader vars to page 3
|
|
2,165 over horrible hack to auto-go to next image in sequence
|
|
2,114 over move bg loading into seq
|
|
2,053 over make elevator indicator a loop
|
|
1,347 over use LZ4 instead of RLE
|
|
|
|
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
|
|
$C000 - $3000 = starting at $9000
|
|
|
|
|
|
ID1 = 1461 2143\
|
|
ID2 = 1759 2687|--- together in 01
|
|
ID3 = 1195 1879/
|
|
ID4 = 2514 8280\--- in 04
|
|
ID5 = 1947 3492/
|
|
ID6 = 2584 3610\ --- in 06
|
|
ID7 = 2834 3606/
|
|
ID8 = 3705 4918 | -- in 08
|
|
ID9 = 4494 5901\ -- in 09
|
|
ID10 = 3397 5558/
|
|
===== ======
|
|
25890 12k
|
|
|
|
|
|
ootw memory squeeze:
|
|
after full rope sequence in: 23065
|
|
make transparent overlays: 13971
|
|
add end-of-l1 cutscene: 26464
|
|
make transparent overlays: 17821
|
|
add in rest of end cutscene 23906
|
|
make those transparent 21236
|
|
|
|
|
|
ootw2 memory squeeze:
|
|
before intro 3872
|
|
after intro 9234
|