Beginning at 01F6B1 there seems to be hitbox data. The enemy type is stored at an offset of 0x1B from the beginning of the enemy data structure. Bosses and NPCs do not use this table. This seems to be regular enemies only. I have not confirmed what each of these four values mean yet. But I think it might be hurtbox delta x, hurtbox delta y, hitbox delta x, hitbox delta y?
.01:F6B1 Hitbox $11, $A, $22, $14 ; 0 - Cril
.01:F6B9 Hitbox $14, $A, $28, $14 ; 1 - Dro
.01:F6C1 Hitbox $11, $C, $22, $18 ; 2 - Chiphon
.01:F6C9 Hitbox $14, $A, $28, $14 ; 3 - Tick
.01:F6D1 Hitbox $10, $A, $20, $14 ; 4 - Bune
.01:F6D9 Hitbox $18, $B, $30, $16 ; 5 - Savage
.01:F6E1 Hitbox $10, $A, $20, $14 ; 6 - Gregory
.01:F6E9 Hitbox $13, $A, $26, $14 ; 7 - Revie
.01:F6F1 Hitbox $10, $A, $20, $14 ; 8 - Roputo
.01:F6F9 Hitbox $10, $A, $20, $14 ; 9 - Crud
.01:F701 Hitbox $12, $A, $24, $14 ; 10 - Hauru
.01:F709 Hitbox $12, 9, $24, $12 ; 11 - Rock
.01:F711 Hitbox $11, $A, $22, $10 ; 12 - Hunter Wolf
.01:F719 Hitbox $14, $A, $28, $14 ; 13 - Magie
.01:F721 Hitbox $14, $A, $28, $14 ; 14 - Bizarl
.01:F729 Hitbox $14, $A, $28, $14 ; 15 - Nondietto
.01:F731 Hitbox $14, $D, $28, $1A ; 16 - Zudabvou
.01:F739 Hitbox $12, $A, $24, $14 ; 17 - Gustavu
.01:F741 Hitbox $12, $D, $24, $1A ; 18 - Elumerutergie
.01:F749 Hitbox $14, $A, $28, $14 ; 19 - Mikky
.01:F751 Hitbox $14, $A, $28, $14 ; 20 - Angelassu
.01:F759 Hitbox $14, $A, $28, $14 ; 21 - Revock
.01:F761 Hitbox $14, $D, $28, $14 ; 22 - Kiezer
.01:F769 Hitbox $10, $A, $20, $14 ; 23 - Helliones
.01:F771 Hitbox $D, $A, $1A, $10 ; 24 - Oruton
.01:F779 Hitbox $14, $A, $28, $14 ; 25 - Sagiterl
.01:F781 Hitbox $10, $A, $20, $14 ; 26 - Nuter
.01:F789 Hitbox $14, $A, $28, $14 ; 27 - D-Cline
.01:F791 Hitbox $14, $A, $28, $14 ; 28 - Killerknight Dame
.01:F799 Hitbox $13, $C, $26, $14 ; 29 - Edoger
.01:F7A1 Hitbox $12, $A, $24, $14 ; 30 - Sadowiee
.01:F7A9 Hitbox $10, $A, $20, $14 ; 31 - Flyokuto
.01:F7B1 Hitbox $12, $A, $24, $14 ; 32 - Brol
.01:F7B9 Hitbox $14, $A, $28, $14 ; 33 - Foolisharukan
.01:F7C1 Hitbox $16, $D, $2C, $1A ; 34 - Bishamon
.01:F7C9 Hitbox $14, $A, $28, $14 ; 35 - Exellian
.01:F7D1 Hitbox $18, $C, $30, $18 ; 36 - Thimale's Guardians
.01:F7D9 Hitbox $28, $24, $50, $2C ; 37 - Evil Spirit Shell
.01:F7E1 Hitbox $18, $18, $30, $18 ; 38 - Beast Zerah
Names are taken
from the x68000 version, as the names never appear in the SNES game.
The last three appear during boss battles; however, seem to use this table. I haven't figured out yet how the game decides whether to use this or the (yet to be found) boss table.
(To think it took me 7 years to get this shit moving... Jesus I'm slow.)
RNG state seems to be located in memory at 3B4 and 3B5. There's what looks to be a uniform distribution subroutine from 0 to Acc at 9800, which outputs to BF. The next state of the RNG from current is simply:
acc = $3B5 + 1;
$3B4 = acc;
$3B5 = 5 * acc;
$3B4 = $3B5 * 16 | $3B5 / 16; // nibble swap
Additionally, one is added to $3B5 every frame.
The damage formula in code is (4*Atk - 2*Def)/10 (which is equivalent to the damage formula posted on page two). And there's an RNG component that is calculated by taking the result of that and generating a random number between 0 and one tenth of the result and adding it.
So if you do between 0 and 9 damage, you just do that damage. But if you do between 10 and 19 damage, you have a 1/2 chance to do 11 to 20 instead. For 20 to 29 damage, you have a 1/3 chance of doing 21 to 30, and another 1/3 chance of doing 22 to 31. And so on.