NEWGAME
Run when starting a new game. This code takes the user through the introductory images and text, presents the virtue dilemmas, and sets up the initial character stats and starting location based on them.
Additional BLOAD’d
TREE.SPK
— loaded at$6439
and$64AC
PRTL.SPK
— loaded at$6486
LOOK.SPK
— loaded at$64D2
FAIR.SPK
— loaded at$6504
WAGN.SPK
— loaded at$652A
GYPS.SPK
— loaded at$6550
TABL.SPK
— loaded at$6576
The above SPK
files are loaded into $4000
and then decoded into the hires page 1. The decoding routine starts at $6B96
.
CRDS
— loaded at$659C
The above likely contains the card images. It is loaded into $4000
and $6B3E
is the routine for drawing a particular card on the screen.
NPRT
— loaded at$6734
into$00
NLST
— loaded at$6734
into$EE00
-
NRST
— loaded at$6734
into$EC00
DISK
— loaded at$69EA
just to check what disk is in the drive
And when done, ULT4 is BRUN.
Key Data Locations
$642F
— stores the text number we’re up to in the introductory story$67E6[]
— the virtue selections during the dilemmas (00
= not seen;01
= chosen;FF
= rejected)$67EE[]
— base text numbers for the dilemmas each virtue$67F5
— top virtue / character class$67F6
— first card/virtue$67F7
— second card/virtue$67F8
— number of dilemmas / card pairs seen$67F9[]
— possible X starting location based on virtue/class$6801[]
— possibly Y starting location based on virtue/class$6809
— STR$680A
— DEX$680B
— INT$680C[]
— increase to STR based on top virtue / class$6814[]
— increase to DEX based on top virtue / class$681C[]
— increase to INT based on top virtue / class$6824[]
— initial virtue scores$6B86[]
— 16-bit values; address of card image by virtue$6CB3-
— string pool
String Pool
The data is at $6CB3
and consists of null-delimited strings. The strings are numbers by how many nulls you have to pass to get to the string you want. The text display routine at $6A77
.
0x01
thru0x1C
are the virtue dilemmas0x1D
thru0x34
are the parts of the introductory story leading to the card placement0x35–0x38
are texts when gypsy is placing cards0x39–0x40
are virtue names0x42–0x43
are final messages before main game starts