mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-28 09:30:41 +00:00
370 lines
12 KiB
Plaintext
370 lines
12 KiB
Plaintext
Things missing:
|
|
~~~~~~~~~~~~~~~
|
|
+ DISK05
|
|
the blue viewer should show if maglev is there or not
|
|
|
|
+ DISK38
|
|
The graphics should be different for essentially all views (more light)
|
|
when door is open
|
|
Should see maglev out the door if it's there
|
|
|
|
+ DISK39
|
|
Maglev should not be there at first, and should arrive when press button
|
|
Should be full movie of maglev arriving
|
|
Should handle case of being outside temple when door is closed
|
|
|
|
|
|
|
|
REMEMBER! QLOAD actually trashes 2 bytes above the top of the load
|
|
for most of this we re-write those bytes and it doesn't matter
|
|
but it does mean we can't load right up against $C000 as that's
|
|
I/O memory and we'll get weird corruption issues.
|
|
|
|
MEMORY MAP
|
|
$0000-$00FF = zero page
|
|
$0100-$01FF = stack
|
|
$0200-$02FF = disk stuff
|
|
$0300-$03ff = disk/interrupts
|
|
$0400-$07ff = lores graphics page1
|
|
$0800-$0bff = lores graphics page2
|
|
$800-$8ff = (qboot initial sector)
|
|
$1000-$11ff = qboot_stage2 (disk code)
|
|
$1200-$13ff = QLOAD tables (only need 1 page, but prodos load is 2)
|
|
could in theory load to $1000 instead when using HD
|
|
$1400-$15FF = HGR lookup tables
|
|
$1600-$1FFF = QLOAD = loader code (2k?)
|
|
$2000-$3FFF = HGR Page1, lores movie overlays
|
|
$4000-$BFFF = our code (up to 32k in theory)
|
|
$C000-$CFFF = I/O
|
|
$D000-$FFFF = ROM
|
|
|
|
|
|
|
|
|
|
;================================
|
|
; NOTE: for hard-disk image we use 512-byte blocks (not 256-byte sectors)
|
|
; so be careful using odd-numbered block lengths!
|
|
; This is mostly an issue for the $7F long almost-32k files
|
|
; and the 1-block level info files, otherwise we mostly are even
|
|
|
|
Disk00 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 16S = 1T00S (4096) 2k free
|
|
T 2 = CYAN 32459 bytes = 7T15S (32512) 0k free
|
|
T 10 = ATRUS 32493 bytes = 7T15S (32512) 0k free
|
|
T 18 = CAPTURED 16696 bytes = 5T (20480) 4k free
|
|
T 26 = CHO 19839 bytes = 5T (20480) 0k free
|
|
T 31 = START 4107 bytes = 4T (16384) 12k free
|
|
|
|
|
|
Disk01 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
|
T 2 = ARRIVAL 27040 bytes = 7T0S (28672) 1k free
|
|
T 9 = ARRIVAL2 15920 bytes = 4T0S (16384) 400B free
|
|
T 13 = TELESCOPE 19482 bytes = 6T0S (24576) 5k free
|
|
T 19 = ARRIVAL3 30786 bytes = 7T15S (32512) 2k free
|
|
T 27 = PATH 29647 bytes = 7T15S (32512) 3k free
|
|
|
|
Disk02 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
|
T 2 = STEPS1 23639 bytes = 6T0S (24576) 1k free
|
|
T 8 = STEPS3 15872 bytes = 6T0S (24576) 9k free
|
|
T 14 = TOP 15210 bytes = 4T0S (16384) 1k free
|
|
T 18 = BRIDGE 15021 bytes = 4T0S (16384) 1k free
|
|
T 22 = ALCOVE 21061 bytes = 6T0S (24575) 3k free
|
|
|
|
Disk03 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
|
T 2 = DOWNSTEPS 25875 bytes = 7T0S (28672) 3k free
|
|
T 9 = DOWNSTEPS3 12448 bytes = 6T0S (24576) 12k free
|
|
T 15 = OUTSIDE 27100 bytes = 7T0S (28672) 1k free
|
|
T 22 = CAVE 20269 bytes = 6T0S (24576) 4k free
|
|
T 28 = DOORWAY 11802 bytes = 6T0S (24576) 12k free
|
|
|
|
Disk04 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
|
T 2 = BRIDGE1 9027 bytes = 5T0S (20480) 11k free
|
|
T 7 = BRIDGE2 8982 bytes = 5T0S (20480) 11k free
|
|
T 12 = TUNNEL1 12654 bytes = 5T0S (20480) 8k free
|
|
T 17 = TUNNEL3 17217 bytes = 5T0S (20480) 3k free
|
|
T 22 = TUNNEL4 22176 bytes = 6T0S (24576) 2k free
|
|
T 28 = TUNNEL7 20847 bytes = 6T0S (24576) 4k free
|
|
|
|
|
|
Disk05 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
|
T 2 = CHAIR 16480 bytes = 6T0S (24576) 8k free
|
|
T 8 = CHAIR2 27064 bytes = 7T0S (28672) 1k free
|
|
T 15 = MOV_CHAIR 5414 bytes = 5T0S (20480) 15k free
|
|
|
|
|
|
Disk10 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
|
T 2 = CENTER 23133 bytes = 6T0S (28672) ?k free
|
|
T 8 = LEVEL_15 8289 bytes = 3T0S (12288) 4k free
|
|
T 11 = LEVEL_21 18289 bytes = 3T0S (12288) ?k free
|
|
T 14 = LEVEL_32 8465 bytes = 3T0S (12288) 4k free
|
|
T 17 = LEVEL_43 18289 bytes = 3T0S (12288) ?k free
|
|
T 20 = LEVEL_54 18289 bytes = 3T0S (12288) ?k free
|
|
T 23 = PILLARS 32000 bytes = 7T15S (32512) ?k free
|
|
|
|
Disk16 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
|
T 2 = BRIDGE 26859 bytes = 7T0S (28672) 2k free
|
|
T 9 = BRIDGE2 4984 bytes = 6T0S (24576) 20k free
|
|
T 15 = DOME 6813 bytes = 6T0S (24576) 18k free
|
|
|
|
Disk38 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 16S = 1T0S (4096) 2k free
|
|
T 2 = PROJECTOR 12057 bytes = 6T0S (24576) 12k free
|
|
T 8 = ENTRY 12568 bytes = 6T0S (24576) 12k free
|
|
T 14 = CLOSE 17168 bytes = 6T0S (24576) 5k free
|
|
T 20 = MID 13772 bytes = 6T0S (24576) 11k free
|
|
|
|
; NOTE: save room for creepy animation, alternate door closed code
|
|
|
|
|
|
Disk39 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 16S = 1T0S (4096) 2k free
|
|
T 2 = PROJECTOR 23707 bytes 96S = 6T0S (24576) 1k free
|
|
T 8 = OUTSIDE 26029 bytes 124S = 7T15S (32512) 6k free
|
|
T 17 = MAGSTEPS 11537 bytes 64S = 4T0S (16384) 5k free
|
|
T 21 = MAGLEV 13881 bytes 64S = 4T0S (16384) 3k free
|
|
T 25 = MOVIE_FLIP 7790 bytes 32S = 2T0S (8192) 500B free
|
|
T 27 = MOVIE_MAG 32184 bytes 128S = 7T15S (32512)300B free
|
|
|
|
Disk40 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 8S = 0T8S (2048) 300B free
|
|
T 2 = MAGLEV 30502 bytes = 8T11S (32768) 2k free
|
|
T 10 = OUTSIDE 18917 bytes = 5T (20480) 2k free
|
|
T 15 = TUNNEL 20983 bytes = 6T (24576) 4k free
|
|
T 21 = ORB 13710 bytes 54S= 3T6S (16384) 3k free
|
|
T 25 = MOVIE_FLIP 7680 bytes 32S = 2T0S (8192) 500B free
|
|
T 27 = MOVIE_MAG 32275 bytes 127S = 7T15S (32512)300B free
|
|
|
|
Disk41 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 8S = 0T8S (2048) 300B free
|
|
T 2 = TUNNEL 30669 bytes 127S= 8T (32512) 2k free
|
|
T 10 = STAIRS 25624 = 7T (28672) 3k free
|
|
T 17 = COVE 26422 = 7T (28672) 2k free
|
|
T 24 = STAIRS2 27139 = 7T (28672) 1k free
|
|
T 31 = MOVIE_COVE 8299 = 3T (12288) 4k free
|
|
|
|
Disk43 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 8S = 0T8S (2048) 300B free
|
|
T 2 = CART 23288 bytes = 6T0S (24576) 1k free
|
|
T 8 = BRIDGE 18609 bytes = 5T0S (20480) 2k free
|
|
T 13 = LOGGED 17570 bytes = 5T0S (20480) 3k free
|
|
T 18 = LOGGED3 18594 bytes = 5T0S (20480) 2k free
|
|
T 23 = LOGGED4 11845 bytes = 3T0S (12288) 1k free
|
|
T 26 = LOGGED5 16894 bytes = 5T0S (20480) 4k free
|
|
T 31 = MOVIE_CART 2k bytes 128S = 8T0S (32512)500B free
|
|
|
|
Disk44 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 8S = 0T8S (2048) 300B free
|
|
T 2 = FISH 4891 bytes = 6T0S (24576) 5k free
|
|
T 8 = PATH 18000 bytes = 6T0S (24576) 6k free
|
|
|
|
Disk50 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
|
T 1 = QLOAD 2314 bytes 8S = 0T8S (2048) 300B free
|
|
T 2 = CHIPPER 12329 bytes = 7T0S (28672) 5k free
|
|
|
|
|
|
|
|
|
|
graphics notes:
|
|
in dark areas, use the shadow tool at 80 or so?
|
|
|
|
in bright areas, pumping contrast up to 30 - 40 can help?
|
|
|
|
|
|
disk40: 80/67 in tunnel
|
|
|
|
|
|
Disk notes:
|
|
|
|
disk0: intro movies
|
|
|
|
disk1: arrival and area around telescope
|
|
|
|
disk2: steps up and path to projector?
|
|
|
|
disk39: projector and maglev, including ride
|
|
|
|
disk40: jungle island maglev station, sound puzzle clue
|
|
also maglev flip and ride back to disk39
|
|
|
|
disk41: steps up to t-intersection?
|
|
X locations
|
|
|
|
disk42: to left, including sea animal move
|
|
|
|
disk43: to right, including cart ride
|
|
; it's 11 steps (22)
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
API for loading:
|
|
|
|
+ Disk based:
|
|
returns to ????? with LOCATION (no extra action needed)
|
|
LEVEL
|
|
DISK
|
|
set
|
|
|
|
the code looks up track/sector/length based on these,
|
|
changing disk if necessary
|
|
|
|
+ Prodos/HD based
|
|
|
|
+ proboothd boots disk
|
|
+ loads QLOAD to 1600
|
|
|
|
|
|
DDDD DDDT | TTTT TSSS
|
|
|
|
((disk+1)<<9)+(T<<3)+(S>>1)
|
|
|
|
((disk*512) + (T*8) + (S/2)
|
|
|
|
256k for each 140k disk, offset from there?
|
|
up to 128 disks
|
|
|
|
|
|
only one copy of qload/title
|
|
|
|
|
|
7/33
|
|
|
|
IN_SPECIAL
|
|
IN_RIGHT
|
|
IN_LEFT
|
|
|
|
SPECIAL
|
|
FF = not special
|
|
bottom nibble = directions
|
|
1/3/4/8 direction
|
|
40 = only point
|
|
80 = split screen
|
|
|
|
|
|
SPLIT
|
|
if X>20 and forward -> dest1
|
|
if X<20 and forward -> dest2
|
|
|
|
|
|
|
|
rotating room -- rotates clockwise. B initially blocked
|
|
/ \
|
|
B / \ -- rotation 0, can get to B and E. C is blocked
|
|
/O \Q -- rotation 1, both E and C blocked
|
|
/ \ -- rotation 2, E blocked. B + C open
|
|
\ /C -- rotation 3, E and Q open
|
|
P\__O__/ -- rotation 4, C and P open (pipe)
|
|
E can flip telescope controls
|
|
can flip wall handle. also another button
|
|
flip twice to get to Q, also handle and
|
|
button (both needed to get to dome)
|
|
rotate button at B as well
|
|
|
|
|
|
|
|
image conversion
|
|
scummvm/vokoscreen capture
|
|
crop
|
|
scale to 140x201
|
|
convert
|
|
re-scale and crop to 280x192
|
|
|
|
(old) map to 12 colors and eyeball which?
|
|
(old) contrast/bright 57/3 (note: not always or even often)
|
|
|
|
dark areas, crank shadow removal to 80?
|
|
|
|
on some hard to define areas crank contrast to 50?
|
|
|
|
on atrus movie go to color levels and hit "auto" before iipix
|
|
|
|
final movie roto procedure:
|
|
scale to 40x50
|
|
crop to 40x48
|
|
add layer
|
|
paste overlay mask on top
|
|
rotoscope
|
|
copy to new image
|
|
convert to indexed apple II palette
|
|
scale to 80x48
|
|
save
|
|
|
|
|
|
settings for temple
|
|
80 (shadow)
|
|
|
|
settings for rotating toom
|
|
80 (shadow) / 81 (bright) / 66 (contrast)
|
|
|
|
stained glass:
|
|
crop to actual size
|
|
run "erode"
|
|
scale to 192 high
|
|
canvas size 280x192
|
|
grid 2x2
|
|
reduce to 16 colors
|
|
paint paint paint
|
|
draw border
|
|
|
|
chair room
|
|
shadow 72? 69/45?
|
|
or instead levels auto?
|
|
|
|
inside done:
|
|
close one. 80/69 brightness/contrast?
|
|
|