mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-02 16:29:33 +00:00
256 lines
6.0 KiB
Plaintext
256 lines
6.0 KiB
Plaintext
Dialog issues:
|
|
Uncompressed LZSA
|
|
DIALOG_PEASANT1 7394 4002
|
|
DIALOG_PEASANT2 6857 3943
|
|
DIALOG_PEASANT3 5809 3411
|
|
DIALOG_PEASANT4 6900 3851
|
|
DIALOG_CLIFF 4768 2825
|
|
DIALOG_INSIDE 10832 5741
|
|
|
|
|
|
Inventory:
|
|
3CEE - 4a5f = D71 = 3441 bytes
|
|
Common parser:
|
|
4ac - 11af = D03 3331 bytes
|
|
4c2 - 156e = 10ac 4268 bytes
|
|
|
|
|
|
peasant3 18554 -> 22442
|
|
|
|
peasant2 18302
|
|
18043 (decompress fast moved)
|
|
15899 (much of hgr code moved to qload)
|
|
16653 (work on load/save support)
|
|
17191 (more work on priorities)
|
|
19326 (include common text)
|
|
19577 -- at release 0.75
|
|
19944 -- after all priorities added
|
|
20050 -- parse lookup table
|
|
20493 -- more parse code (release 0.76)
|
|
16995 -- move inventory to language card
|
|
17122 -- add all verbs in (+), optimize text box drawing (-)
|
|
17918 -- text parsing nearing completion
|
|
18208 -- mountain pass parsing working
|
|
18780 -- most dialog hooked up
|
|
17394 -- move loadsave to qload.inc
|
|
17100 -- move parse_input high and move p2 strings back in
|
|
17368 -- use lookup table for next room (and other changes)
|
|
17780 -- size as of the switch to dictionary word lookup
|
|
18012 -- hook up more of archery
|
|
18120 -- finish hooking up archery
|
|
17941 -- after most of text hooked up (more code was moved to qload)
|
|
17929 -- after redoing so background is always in PAGE1
|
|
18132 -- add in river animation code
|
|
18181 -- forgot the "climb fence" message
|
|
17497 -- use ZX02 compression instead of LZSA
|
|
|
|
|
|
partial save, can we fit in 4k?
|
|
102 lines ; inventory was 115?
|
|
only 2-38 36 => 113 lines
|
|
|
|
|
|
sprite routines:
|
|
14x14 sprite mask -> for drawing baby in ending
|
|
1x5 sprite -> intro, lake bubbles
|
|
1x8 sprite -> draw font
|
|
2x16 sprite -> inventory
|
|
7x28 sprite -> unused
|
|
7x28 sprite mask -> draw peasant
|
|
hgr_sprite -> generic
|
|
|
|
Notes
|
|
~~~~~
|
|
Some people would like actual S.A.M. support like the original game,
|
|
but that takes 9kB! Is there room in TROGDOR for that?
|
|
|
|
|
|
Memory Map
|
|
~~~~~~~~~~
|
|
|
|
; notes -- VID_LOGO loads title at $9000 - $AFFF
|
|
|
|
$00 Zero Page
|
|
$01 Stack
|
|
$02 Disk Lookup
|
|
$03 Disk Lookup, IRQ vectors
|
|
$04-$07 Text/GR page 1 (priority map)
|
|
$08-$0B Text/GR page 2. $08=boot, $09-$0A = qboot stage2
|
|
$0B-$1F QLOAD disk routines and HGR drawing routines (5120 bytes)
|
|
$20-$3F HGR Page 1
|
|
$40-$5f HGR Page 2
|
|
$60-$AF Programs (we limit to 20k, 20480 bytes, $50 pages)
|
|
$B0-$??
|
|
$B8-$BB Hi-res lookup tables
|
|
$BC temp area for load/save files
|
|
$BD-$BE temp area when saving game
|
|
$BF verb table
|
|
$C0-$CF I/O
|
|
|
|
Language card (high 16k)
|
|
|
|
$D0-$ED (bank1) per-levelstrings
|
|
$D0-$DF (bank2) inventory (3122 bytes)
|
|
$EE-$FF common parser code (4.5k = 4608 bytes [4332 currently])
|
|
|
|
Disk1 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 1 = QLOAD 5286 bytes 21S = 1T5S
|
|
T 3 = MUSIC 4045 bytes 16S = 1T0S
|
|
T 4 = VID_LOGO 7574 bytes 30S = 1T14S
|
|
T 6 = TITLE 8950 bytes 35S = 2T3S
|
|
T 9 = INTRO 13467 bytes 52S = 3T4S
|
|
T 14 = INVENTORY 3121 bytes 13S = 0T13S
|
|
T 15 = PEASANT1 17007 bytes 67S = 4T3S ; 80 is max
|
|
T 20 = PEASANT2 17941 bytes 71S = 4T7S ; 79 = 20224
|
|
T 25 = PEASANT3 18154 bytes 71S = 4T7S
|
|
T 30 = PEASANT4 15806 bytes 62S = 3T14S
|
|
|
|
Disk2 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = WBOOT
|
|
T 1 = COPY_CHECK 2942 bytes 12S = 0T12S
|
|
T 3 = GAME_OVER 2111 bytes 9S = 0T9S
|
|
T 4 = MAP 2703 bytes 11S = 0T11S
|
|
T 6 = ARCHERY 2112 bytes 11S = 0T11S
|
|
T 9 = INSIDE 14178 bytes 56s = 3T8S
|
|
T 14 = INN 6906 bytes 27S = 1T11S
|
|
T 19 = TROGDOR 11468 bytes 45S = 2T13S
|
|
T 24 = ENDING 17619 bytes 69S = 4T5S
|
|
T 29 = CLIFF 13024 bytes 51S = 3T3S
|
|
|
|
|
|
238, to 280 (6)
|
|
50 to 135 (85) 6*85=510
|
|
|
|
280x192
|
|
*4
|
|
1120x768
|
|
|
|
Our capture: 300x142 roughly
|
|
292x142 to center it
|
|
|
|
Odd is Orange
|
|
Even is blue
|
|
|
|
EO EO EO EO EO if draw black at odd, nothing
|
|
blue 10 10 10 10 10 if draw black at even, two-wide(?) black
|
|
|
|
|
|
|
|
10 10 10 10 10 blue
|
|
01 01 01 01 01 orange
|
|
|
|
EO EO
|
|
10 01 blue->orange has black gap
|
|
|
|
01 10 orange->blue has white gap
|
|
|
|
|
|
|
|
10 10 01 01 = blue
|
|
|
|
|
|
|
|
6|----c>>>-----------c------c-------|
|
|
5|-aaa----aaab>>>aaa---a-b-a---------|
|
|
|
|
|
|
|
|
46, XRUN=2
|
|
|
|
46/7= 6R4 ; RUN of 0=1 wide, run of 1=2 wide
|
|
|
|
start at 4, end at 5
|
|
|
|
start at 4 (left) = $F0 1111 0000
|
|
end at 5 (Right) = $BF 1011 1111
|
|
=========
|
|
x011 0000
|
|
OR them!!!!
|
|
|
|
left_masks:
|
|
.byte $FF,$FE,$FC,$F8, $F0,$E0,$C0
|
|
|
|
right_masks:
|
|
.byte $81,$83,$87, $8F,$9F,$BF,$FF
|
|
|
|
|
|
|
|
POINTS IMPLEMENTED: (in order of implementation)
|
|
+ 10 (Talk Trogdor)
|
|
+ 1 (talk to archer)
|
|
+ 1 (talked to archer after trinket/mask)
|
|
+ 2 (move rock)
|
|
+ 1 (get pebbles)
|
|
+ 1 (get feed)
|
|
+ 5 (give riches)
|
|
+ 5 (give baby) [inn]
|
|
+ 3 (get room)
|
|
+ 2 (feed fish)
|
|
+ 2 (put pebbles in bucket)
|
|
+ 3 (put baby in bucket)
|
|
+ 2 (turn crank [baby in bucket])
|
|
+ 2 (scare gary)
|
|
+ 2 (get arrow)
|
|
+ 3 (say haldo to dongolev)
|
|
+ 3 (jump in hay)
|
|
+ 2 (fall in mud puddle)
|
|
+ 2 (give trinket to brothers)
|
|
+ 2 (get super trinket)
|
|
+ 3 (win archery game)
|
|
+ 10 (get belt)
|
|
+ 5 (kill kerrek)
|
|
+ 7 (talk to knight once have belt, robe, and on fire)
|
|
+ 7 (get riches from jhonka)
|
|
+ 5 (throw baby)
|
|
+ 5 (deploy baby)
|
|
+ 1 (close drawer)
|
|
+ 10 (get robe)
|
|
+ 3 (wear robe)
|
|
+ 2 (get grease)
|
|
+ 10 (catch on fire)
|
|
+ 7 (throw sword at trogdor)
|
|
======
|
|
129 points
|
|
|
|
|
|
deaths/endings implemented
|
|
==================
|
|
+1 Typing "die"
|
|
+2 Beating the game
|
|
+3 Cutting off arms, legs, and head
|
|
+4 kick/punch/kill Old Gary
|
|
+5 get arrow (while Dongolev shooting)
|
|
+6 walk on range (while Dongolev shooting)
|
|
+7 walk too close to Kerrek
|
|
+8 say "yes" when Jhonka asks if you stole riches
|
|
|
|
|
|
|
|
v0.84 sizes: lzsa zx02
|
|
============= ====== =====
|
|
QLOAD 5239 5122
|
|
MUSIC 4045 4045
|
|
VID_LOGO 7678 7370
|
|
TITLE 8950 8466
|
|
INTRO 13583 12871
|
|
PARSE_INPUT 3510 3249
|
|
INVENTORY 3122 3122
|
|
PEASANT1 19150 18208
|
|
PEASANT2 18254 17497
|
|
PEASANT3 18880 17927
|
|
PEASANT4 17610 16701
|
|
|
|
COPY_CHECK 2942 2834
|
|
GAME_OVER 2113 2074
|
|
MAP 2703 2556
|
|
ARCHERY 2112 2016
|
|
INSIDE 14157 13460
|
|
INN 9342 8938
|
|
TROGDOR 15657 14774
|
|
ENDING 17642 17038
|
|
CLIFF 13418 12648
|
|
|