mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-17 14:12:58 +00:00
217 lines
5.0 KiB
Plaintext
217 lines
5.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
|
|
|
|
|
|
|
|
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)
|
|
|
|
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 (roughly 22k available?) (we max at 20k on disk)
|
|
$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
|
|
$D0-$DF (Language Card BANK1) ?????
|
|
$D0-$DF (Language Card BANK2) Mockingboard music/PT3-routines
|
|
$E0-$FF (Language Card) ?????
|
|
|
|
$D0-$DF (bank2) inventory
|
|
$D0-$ED (bank1) per-levelstrings
|
|
$EE-$FF common parser code (4.5k = 4608 bytes)
|
|
|
|
Disk1 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 0 = Qboot
|
|
T 1 = QLOAD 4813 bytes 19S = 1T3S
|
|
T 3 = MUSIC 4045 bytes 16S = 1T0S
|
|
T 4 = VID_LOGO 6911 bytes 27S = 1T11S
|
|
T 6 = TITLE 9662 bytes 38S = 2T6S
|
|
T 9 = INTRO 13436 bytes 52S = 3T4S
|
|
T 14 = INVENTORY 3498 bytes = 1T0S
|
|
T 15 = PEASANT1 22501 bytes 79S = 4T15S ; 88 is max?
|
|
T 20 = PEASANT2 16995 bytes 67s = 4T3S ; 79 = 20224
|
|
T 25 = PEASANT3
|
|
T 30 = PEASANT4
|
|
|
|
Disk2 Map (disk has 35 tracks, each 4k in size)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
T 1 = COPY_CHECK 4922 bytes 20S = 1T4S
|
|
T 3 = GAME_OVER
|
|
T 19 = TROGDOR 13673 bytes
|
|
T 24 = ENDING 19690 bytes 77S = 4T13S
|
|
T 29 = CLIFF
|
|
|
|
|
|
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)
|
|
======
|
|
122 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
|