[PC] Enemy editor - IFRIT (0.11C)

  • Thread starter Thread starter gjoerulv
  • Start date Start date
Status
Not open for further replies.
Thank you so much Gjoerulv XD help me aloooot.
I don´t know if will help some one, but here is the list that you can use:

__________________________
Kernel = Magic
Ability = Magic Number
Anim = always "11"
__________________________
1-fire
2-fira
3-firaga
4-blizzard
5-blizzara
6-blizzaga
7-thunder
8-thundara
9-thundaga
10-water
11-aero
12-bio
13-demi
14-holy
15-flare
16-meteor
17-quake
18-tornado
19-ultima
20-apocalypse
21-cure
22-cura
23-curaga
24-life
25-full-life
26-regen
27-esuna
28-dispel
29-protect
30-shell
31-reflect
32-aura
33-double
34-triple
35-haste
36-slow
37-stop
38-blind
39-confuse
40-sleep
41-silence
42-break
43-death
44-drain
45-pain
46-berserk
47-float
48-zombie
49-meltdown
50-scan
51-full-cure
52-wall
53-rapture
54-percent
55-catastrophe
-------------------------
Kernel = CUSTOM
Anim = still "11"

124- LV5 Death
242- thunder summon (its a anim that´s look like Thunder Storm, but works like magic)
257/309- gravija
262/295- Mighty Guard
263- Doom
276- White Wind
338/365- Maelstrom
358- Hell´s Judgment
__________________________
I´m still testing some magics, like a enemie use Mighty Guard, White Wind, Haste, Double, Triple, Cure etc. In them self not in your party XD. And some magics that cause damage in the whole party, dealing damage only to 1 of them, ex: Ultima.

But i hope this help ^_^
 
Some times ago someone sent me the japanese site where I found all enemy scripts dumped and formatted with all magic IDs and texts inside files. Grab it here:

http://www.geocities.jp/agnesboulangerchan/psff8/research/psff8-enemy-ai.zip

For example you can clearly see that 117 (Sorceress 3) is casting magic 327 and 074 on herself at the init. It has all variables named (local and globals) and rich AI documentation with HEX codes, but all in Japanese.
 
Omg is this real or i am dreaming for over a 10 years i am searching for this data, thank you so very much maki you can't imagine my happiness
 
MonsterAI+CA:   (Where MonsterAI is 0x487DE0 in 2000PC)
Code: [Select]
Code:
mov     al, [esi]:
[ESI] - pointer to current operation to parse
al - will hold AI code opcode


Example:
MonsterAI+62E  AI_TALK (opcode 0x1A)
mov dl, [esi] - ESI holds textID (as said in documentation it's byte text_index)
gets saved to local at var_14

MonsterAI+661 now EAX holds absolute address to text to display- here: "5 ?Rm kmpc."- deciphered as "NO MORE!"

So... Yeah, I might be able to make something like real-time AI interpreter I think...

Opcode 0x05 is some sort of PUSH

Isn't it?
isit.jpg

Pardon that 'A', I just used ROT-23 for text conversion
 
Last edited:
you mean you will make a stand alone tool to change monsters AI or make some upgrades to ifrit ? either way i am looking forward to it finally the long wait is over and we can make ff8 great again  :cry: ;D
 
Some one could tell if Ifrit tool was recently updated? I was have some problems in the old one, messing if the graphics in the game after you change something in the AI
 
I believe the majority of the corruption is a problem that I fixed on July 25th, you can get the updated version here.
The issue was that variables in if statements weren't being compiled properly and ended up missing 2 bytes.
2018 update... is this still the latest version...
attempting to do some AI changes...
so far Texture Corrupt when i do... i guess i must be using the older version?
 
Afaik, there haven't been any updates on the ai editor in a while. I'm not sure if the creator is working on it still.
 
Hi, i was trying to edit ultimecia last form lower part (the one from you draw Apoc), yet I didn't found it...

 Still my log from battle.fs report this:
Code: [Select]
Code:
File found at offset 0E632800-0E67624C  name: UltimeciaFile found at offset 0E676000-0E676008, parts: 0File found at offset 0E676800-0E6769CC, parts: 2
Are those 'parts' the code that helds the lower part??

EDIT: yes they do.
 
Last edited:
I tried extract files from battle.fs but it says.
"Value cannot be null"
"Parameter name: Items."
Please help.

I tried deleting MMHIQ and then extracted it. Nothing worked properly.

SOLVED: Used to delete reg entry of Ifrit editor in REGEDIT.
 
Last edited:
Yes, that bug is kinda embarrassing. At some point I thought it was fixed but apparently it's still there.
EDIT:
What version are you using? I didn't think it was still possible in 11B.
 
Last edited:
Hey guys, I was just playing around with AI editing for some monsters, when I tried to save my changes and then received this error message in Cerberus' AI:

"Syntax error on line 30: no viable alternative at input 'if(unknown)'".


Whatever the mistake is, it must be present in the vanilla AI already, as I get this error message even when I didn't edit anything. Does anyone know what to do in this case? I'm hoping there's a way to get around this, because this error message prevents me from saving any changes I'd like to make. It's the same for a few other enemies as well (the Propagators, Sorceress No.1, and Granaldo). If anyone could point me in the right direction, that'd be great.
 
Last edited:
Yes, that bug is kinda embarrassing. At some point I thought it was fixed but apparently it's still there.
EDIT:
What version are you using? I didn't think it was still possible in 11B.
ideas for future updates...
adding Ability Slot #0, #1 etc next to each one... will make things a bit faster...
also still need the enemy list updated to help differentiate between some of the enemies that appear more then once...
along with that, i've also noticed a few enemies where AI edit meant having to change code to get it to save...
also curious about death animations options, as giving certain bosses a simple death, means we can free up an extra ability slot... or give them a death move etc... pretty fun, but more documentation on us making these edits would be great...
even just changing things like "target" 204 / 201 etc... planning to continue my own testing regardless but thx for your time reading this...
 
Hey,

First i would like grab the opportunity and thank you for making such a cool tool.  :D

I would like to share a short info on the texture corruption:
few weeks ago i received a small know-how from @SegaChief how to fix manually (editing the AI bytes) the texture corruption problem that occurs randomly after using the AI editor (in enemy groups),
however after a little bit testing, it turns out the AI editor / compiler works perfectly, (if we don't take into account the unknown variables) the problem lies in section 10.
It contains some unexplored data (AKAO) and also can be empty for some monster files. The important thing is that the offset to this section in the file header must be divisible by 4 (/ zero), or it occurs texture bugs (even if the section empty it's offset should be divisible by 4 or should be zero - (e.g - x90F0 - > or 4/8/C)

Deleting the section in some cases makes the character textures color to some weird green, in some cases nothing happens.
Adding some padding values before section 10 (extra 00 bytes) can fix this quite easily to comply with this offset "requirement".

KR  :-)
 
Last edited:
Hey,

First i would like grab the opportunity and thank you for making such a cool tool.  :D

I would like to share a short info on the texture corruption:
few weeks ago i received a small know-how from @SegaChief how to fix manually (editing the AI bytes) the texture corruption problem that occurs randomly after using the AI editor (in enemy groups),
however after a little bit testing, it turns out the AI editor / compiler works perfectly, (if we don't take into account the unknown variables) the problem lies in section 10.
It contains some unexplored data (AKAO) and also can be empty for some monster files. The important thing is that the offset to this section in the file header must be divisible by 4 (/ zero), or it occurs texture bugs (even if the section empty it's offset should be divisible by 4 or should be zero - (e.g - x90F0 - > or 4/8/C)

Deleting the section in some cases makes the character textures color to some weird green, in some cases nothing happens.
Adding some padding values before section 10 (extra 00 bytes) can fix this quite easily to comply with this offset "requirement".

KR  :-)
Sorry for the stupid question:
So after you edit the AI in IFRIT, you open the hex editor with the monster file, and "find" the line 10, and "find" the number divisible by 4 to put 00?
 
Sorry for the stupid question:
So after you edit the AI in IFRIT, you open the hex editor with the monster file, and "find" the line 10, and "find" the number divisible by 4 to put 00?
Hi Divatox,

I don't really understand what you mean by line 10,  but find a detailed explanation below:
This is how the start of the dat file (header) looks like:

Name                          Hex
Number of Sections   0b000000
Section 1 - Offset      34000000
Section 2 - Offset      a4000000
Section 3 - Offset      cc070000
Section 4 - Offset      3c240000
Section 5 - Offset      80250000
Section 6 - Offset      90260000
Section 7 - Offset      98270000
Section 8 - Offset      14290000 - Contains AI
Section 9 - Offset      482a0000 - If you change the AI, theese offsets are adjusted by Ifrit automatically
Section 10 - Offset    842a0000 - If you change the AI, this offsets are adjusted by Ifrit automatically
Section 11 - Offset    644f0000 - If you change the AI, this offsets are adjusted by Ifrit automatically
End of File - Offset    90910000


Ifrit editor adjust theese offsets because you might extended the AI or make it more simple, but the point is you changed the size of the data which is fine. The important thing is you have to check the offsets to section 10.

Section 10 - Offset    842a0000
The byte i pointed out should be 0/4/8/C

If it's not then what you should do is jump to section 10 offset, in this case x2A84.
Add some "padding" bytes. For example it it would be x2A83 - you insert 1 byte to make the section start az x2A84 (so it's  then go back to the start of the file and add this 1 byte to the section 10 offset, and the offsets after section 10.

Section 10 - Offset    842a0000
Section 11 - Offset    644f0000
End of File - Offset    90910000
 
Last edited:
ok i think im starting to understand  ::)
the number in section 10 MUST be divisible by 4 (or 0/4/8/C) or else will bug the visual of the enemy. So if in this case the number is not you need to input +1 to make him divisible.

"If it's not then what you should do is jump to section 10 offset, in this case x2A84.
Add some "padding" bytes. For example it it would be x2A83 - you insert 1 byte to make the section start az x2A84 (so it's  then go back to the start of the file and add this 1 byte to the section 10 offset, and the offsets after section 10.

Section 10 - Offset    842a0000
Section 11 - Offset    644f0000
End of File - Offset    90910000"

In this part why you right the number backward?? 842A and you wrote 2A84? or doesnt matter and im just complicating things XD
 
Status
Not open for further replies.
Back
Top