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) 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]) ====== 38 points deaths implemented ================== +1 Typing "die" +2 Cutting off arms, legs, and head