dos33fsprogs/games/peasant/NOTES
2024-08-22 14:39:24 -04:00

257 lines
6.0 KiB
Plaintext

Dialog issues:
Uncompressed LZSA ZX02
DIALOG_PEASANT1 7394 4002 3804
DIALOG_PEASANT2 6857 3943 3736
DIALOG_PEASANT3 5809 3411 3201
DIALOG_PEASANT4 6900 3851 3508
DIALOG_CLIFF 4768 2825 2644
DIALOG_INSIDE 10832 5741 3594
DIALOG_INN 1840
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