I took the entry from Dark Domain Level 1, Kobolds, and used that as a sort of template.
After much playtesting and SPBI-casting and killing and whatnot, I've made the following determinations:
Code: Select all
DATA RECORD #1 - SAMPLED FROM DARK DOMAIN LEVEL 1
37ea 21 ora $21,x K
37eb 05 o
37ec 08 ora $08 b
37ed 05 o
37ee 06 ora $06 l
37ef 0e d
37f0 45 [Unknown]
37f1 36 asl $3645 [EOT]
37f2 19 s
37f3 36 [EOT]
37f4 15 ora $1536,y >
37f5 15 >
37f6 15 ora $15,x >
37f7 15 >
37f8 15 ora $15,x >
37f9 15 >
37fa ed ora $ed,x 07 Data byte 0: Max random HP added to low byte 2 (high byte)
37fb ea nop 00 Data byte 1: Max random HP added to byte 3 (high byte)
37fc eb ??? 01 Data byte 2: Base HP low byte
37fd ea nop 00 Data byte 3: Base HP high byte
37fe eb ??? 01 Data byte 4: Maximum group size
37ff eb ??? 01 Data byte 5: Advance speed (i.e. how many feet this monster advances in 1 round)
3800 ea nop 00 Data byte 6: AC; also base to-hit
3801 ea nop 00 Data byte 7: # attacks per round (1 + this decimal value?)
3802 ea nop 00 Data byte 8: Attack type (0 = melee attack, 0xff = No attack, etc)
3803 ea nop 00 Data byte 9: Attack type (0 = melee attack, 0xff = No attack, etc)
3804 ea nop 00 Data byte 10: Attack type (0 = melee attack, 0xff = No attack, etc)
3805 ea nop 00 Data byte 11: Attack type (0 = melee attack, 0xff = No attack, etc)
3806 ea nop 00 Data byte 12: Bitfield; high 4 bits are the melee attack type (swings at, slashes at, etc), low 4 bits are special attack type
3807 eb ??? 01 Data byte 13: Minimum damage this monster deals in combat; max damage is 4x this value (in this case 1-4)
3808 c0 2a Data byte 14: Picture file to load
3809 fb cpy #$fb 11 Data byte 15: Bitfield; 0: 0 = "Him", 1 = "It" (e.g. "for XXXX damage, killing [him][it]!")
1: Unused?
2: Unused?
3: Unused?
4-7: Staring distance (10' to 90')
It seems I was wrong about some of this information; drifting has kindly offered insight into some of the more mysterious bytes. Between the two of us we would appear to have the beastiary code figured out.
---------------------------------------------------------------------------------------------------------------------------
Each beastiary entry is 32 bytes. The first 16 are for the name, including the pluralization convention. The unused bytes are padded with ff (represented by ">", as in text strings).
The 16 bytes after that represent the monster's stats.
What eludes me so far is the XP value, the gold value, the treasure range, the treasure chance, what spells (if any) it casts, and some other variables that are probably not strictly listed here.
What's kind of interesting is that you can fight the same monster many times, and while the XP value remains constant, you will get varying amounts of GP.
It occurs to me that perhap the XP, gold, treasure chance, treasure range, and whatnot might be tied to the dungeon's difficulty flag. Worth investigating.