btw do you know anything about:
D07800-D079FF : Monster encounter (fixed)
D07A00-D07FFF : Monster encounter map
D08000-D083FF : Monster encounter map (Dungeon)
D08400-D084BF : En count increase in the number of settings (field * 3) (* 1)
D084C0-D085BF : En count increase in the number of settings (sub-map * 1024) (* 1)
The monster encounter map, or as I called in my editor, zone formation contains the data of which enemy group you can encounter. The outworld map has 4 groups which are: Plains, Forest, Desert/Swamp, Sea. Each one will throw you a Group formation (which you can also see on my program & in the algorithm FAQ).
Here's the code of my editor:
Private Sub LoadWorldMonsterGroup(pfile As String, w, z, x, y)
' -----------------------------------------------------------------------------
'
' -----------------------------------------------------------------------------
Dim World As Integer, Zone As Integer, CoordX As Integer, CoordY As Integer
' The variable FF is equal to the next available file number
FF = freefile
Open pfile For Binary As #FF
World = w * &H200
Zone = z * &H2
CoordX = x * &H8
CoordY = y * &H40
' ==================================================
' Load the World Map Enemy Group
' ==================================================
Get #FF, &H107A00 + 1 + World + Zone + CoordX + CoordY + Header, CurVal
cbGroup.ListIndex = CurVal
Close #FF
End SubThe dungeon encounter is the group formation in all rooms, hence why it has many 0's. I used the dungeon encounter in my Lua script when TASing the game:
--------------------------------------------------------------------------------
local function battle_LUT() -- Retrieve the LUT located @ C0/FEC0
--------------------------------------------------------------------------------
memory.usememorydomain("CARTROM") -- Read from ROM
for i=0, 255 do
battle_lut[i] = memory.read_u8( 0x00FEC0 + i) -- Look Up Table for RNG
end
memory.usememorydomain("WRAM") -- Change back to RAM
end
--------------------------------------------------------------------------------
local function predictRNGBattle() -- Predicts random battle stuff
--------------------------------------------------------------------------------
...
local rBattle = memory.read_u8( 0x0B50 ) -- Random Battle index
local rBattlesSeed = memory.read_u8( 0x0B5F ) -- random battle seed
local NextEncounter = (battle_lut[(rBattle+1) % 256] + rBattlesSeed ) % 256
if NextEncounter < 90 then -- Common 1 (90/256)
encounterID = 0
elseif within( 90, NextEncounter, 179) then -- Common 2 (90/256)
encounterID = 1
elseif within(180, NextEncounter, 239) then -- Uncommon (60/256)
encounterID = 2
else -- Rare (16/256)
encounterID = 3
end
memory.usememorydomain("CARTROM") -- Read from ROM
local GroupFormation = memory.read_u16_le( 0x108000 + map*2 ) -- Dungeon
local EnemyFormation = memory.read_u16_le( 0x106800 + (8 * GroupFormation) + (2 * encounterID) )
memory.usememorydomain("WRAM") -- Change back to RAMI don't know about the other 3...
FF5r has new enemies
Great, any chance you know a link where patch is applied? TBH I never apply .ips because usually the emulators include them automatically :(
You can use Lunar IPS to patch:
http://www.romhacking.net/utilities/240/I tried it out and while some images did load, some others where garbled. And also, the program crashed too in other occasions (when it just couldn't load the image, I guess)...