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?