| Each of the 81 monsters, from the Brownie to the Dark King, has a 14-byte record at $02:C275 (HP as a word, then four stats, which terriblesecret names strength, defense, speed and magic, then eight more bytes), a 3-byte record at $02:C17C (its level, then its experience and gold, each stored as a third), and a 16-byte name at $0C:CBA0. When a battle loads a monster, the game copies its name, sets its level, sets current and maximum HP to the HP word, copies the four stats, copies bytes 6-7 to two places, bytes 8-11 to four, and bytes 12 and 13 to one place each, and and sets offset $2F to $80 for monster $42 (Behemoth) and every monster after it, $00 before it. HP runs from 50 (Brownie) to 40,000 (Dark King), levels from 1 to 40 (Dark King), and experience up to 762 (Stone Golem). | tables/tables_list.txttables/monster_table.txtrandomizer.py L272–274 | Code |
| The 15 weapons, items $20-$2E from the Steel Sword to the Ninja Star, have 8-byte records at $02:BC00. When a weapon's action is set up, the game takes bytes 0-1 as a word, bytes 2-5 into four places (keeping the low six bits of bytes 3 and 4, and folding their top two bits into a derived byte), byte 6 into one place, and byte 7 split into its two nibbles. terriblesecret names byte 0 the element, byte 1 the status, byte 2 the power and byte 7 a stat boost. | tables/weapon_table.txt | Code |
| The 157 monster attacks, numbers $40-$DC from Sword to an unnamed last entry, have 7-byte records at $02:BC78. The game takes bytes 0-1 as a word, bytes 2-5 into four places (byte 3's low six bits are the effect routine its battle code dispatches on, and its top two bits and byte 4's go into a derived byte), and byte 6 split into nibbles. terriblesecret names byte 0 the element, 1 the status, 2 the power, 3 the effect and 5 the targeting. | tables/tables_list.txttables/attack_table.txt | Code |
| The 17 pieces of armor, items $2F-$3F (helmets, armor, shields, and the Charm, Magic Ring and Cupid Locket), have 5-byte records at $02:C127. The game takes bytes 0-1 as a word, then splits each of bytes 2, 3 and 4 into its two nibbles. Byte 2 runs in blocks: 0x80 for 3 (Steel Helm, Moon Helm, Apollo Helm); 0x00 for 6 (Steel Armor, Noble Armor, Gaia's Armor, Relica Armor, Mystic Robe, Flame Armor); 0x20 for 5 (Black Robe, Steel Shield, Venus Shield, Aegis Shield, Ether Shield); 0x10 for 3 (Charm, Magic Ring, Cupid Locket). terriblesecret names byte 0 the element and byte 1 the status. | tables/armor_table.txt | Code |
| The 9 character records at $0C:D0B0, 80 bytes each, are Benjamin's starting record and two for each companion, Kaeli, Tristam, Phoebe and Reuben, the second at a higher level. A new game copies record 0 to Benjamin's place at $1000; a script command copies the record it names, whole, to the companion's place at $1080 (ffmq/companion-records). By terriblesecret's field names, which the copies and the level-up fit, each holds the level ($10), current and maximum HP ($14, $16), the three kinds of magic points ($18-$1A, with maxima at $1B-$1D), the four stats as level gives them ($4C-$4F) and with equipment ($22-$25), and accuracy ($40), which Benjamin's level-up sets to 75 plus half the level. | tables/char_table.txt L1–16tables/char_table.txt L21–26 | Code |