• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
March 28, 2024, 04:50:21 am

News:

Please use .png instead of .bmp when uploading unfinished sprites to the forum!


Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Miona

1
Thank you, this is very useful!
Not long until playable Llednar is complete. :D
Adding / changing new sprites and portraits is interesting, too.
2
Quote from: Leonarth on August 01, 2018, 03:09:53 pm
[...]

Party sprites and portraits use pretty weird formats which probably explains why I haven't been able to find anybody that had done much with them, I modified the routines in order to add the possibility of loading uncompressed graphics for both of those things, as well as making assigning them to jobs and characters easier.




Woah, nice!
Could you please explain, how and where you modified the routines?
With that, playable Llednar would be complete: FFTA: Llednar as playable character - Problems & questions
3
Quote from: bcrobert on June 11, 2016, 02:13:52 am
Great dialogue fix! I honestly thought that was the thing least likely to be fixed.

And frankly I still think it's stupid that the battle sprites and clan menu sprites are even "different" to begin with. They sure look the same to me. >_>

Although I suppose the issue that occurs in battles with too many units would be a cause for concern since the menu displays a full 24 units on the same page.


Thank you! I'm glad that all game breaking problems are now fixed.  :)
It would be so easy, if both sprites would be the same. But no, of course, there are some differences and I don't know, how to overwrite Mewts clan menu sprite with a Llednar clan menu sprite. Clan menu sprites and battle sprites share a lot of values, but it appears that clan menu sprites have additional data such as height, width and such. If I had the right values, Mewt would have a Llendar clan menu sprite. It should be easy, to rewrite the code, so Llednar uses Mewt's overwritten clan menu sprite, so Llednar would have his own clan menu sprite. If someone has a solution for this problem, please let me know.

Recently I found new minor problems (already fixed) with Llednar and other useful stuff:

Table of Contents

  • Llednar and water

  • Llednar and shields

  • Llednar and status defence

  • Alchemist and the hidden Item A-Ability



Llednar and water

Llednar is unable to go into the water.



The game prevents him from entering the water,
because he has no sprites for water related stuff.
There are two easy ways, to fix that problem.

1) Equip Llednar with "Feather Boots". Now he is able to walk on water.


2) With the AIO-Editor, use the Job Editor and change Biskmatar's standing style to float:

Now Llednar can walk on water (and lava!*) without the "Feather Boots".
You should use this option, if you use hacks which allows to steal boots ...

*



Llednar and shields

Llednar should be able to equip shields. His Job Biskmatar uses an Equipment-Table-ID,
which allows shield equipping, but he can't equip shields. Unlike weapons and other stuff,
shields (and ribbons) have an additional check, which determines which job can equip shields.

In the AIO-Editor you can set the possible equipment for each job:


As you can see, Llednar should be able to equip shields. But in the game, you get this:


The Biskmatar job is not included in the additional check, so Llednar is not able to equip shields.

There are some possible combinations, which determines if a job can equip shields or not:

S-Ability Shieldbearer: As long a unit has this support ability active, shields become equipable. Other related checks doesn't matter.
AIO-Editor checkbox (enabled) + not included in the second check: Shields are not equipable. <- Llednar's case
AIO-Editor checkbox (disabled) + included in the second check: Shields are not equipable.
AIO-Editor checkbox (enabled) + included in the second check: Shields are equipable.

The second check is only a hindrance, we already have the first check, which can be edited via AIO-Editor.
I found the location for the second check. Now I can include Llednar or ... how about a modification, which
includes all existing jobs in the second check?

Change the bytes at 0x080CAD5E to 73 2A 12 DD

This will include all existing jobs in the check.
In Llednar's case, this is the result:


Finally he can equip shields.
AIO-Editor: Now you can enable / disable shield equipping for all jobs like weapons, armor and such.


Llednar and status defence

Llednar's job Biskmatar has a very high status defence. A high status defence value will
automatically prevent some status effects (like Haste, Stop, Frog, ...) and
other effects (like Matra Magic, %-Damage, ...). Judgemaster Cid also has a high status defence.
Because of this, he is completely immune to Haste, a positive status effect.

If you want Cid and / or Llednar with reduced status defence values, so they can have
the haste status or for other reasons, you will probably use the AIO-Editor and set the value to 50,
which is the default value for almost all playable characters. This will not work!

Unfortunately the AIO-Editor has a slight bug. The AIO-Editor shows 100 status defence for the
Biskmatar job and 80 status defence for the Judgemaster job. But [Biskmatar] and [Judgemaster] status
defence value is way higher than 100 and 80.

Now let's look into a clean ROM via Hex-Editor and see, which values these jobs have:


Job ID  |  Job name    | Status DEF offset | Value (Hex) | Value (Dec) | AIO-Editor (Dec)
               
56         Biskmatar         0x08522BA2          E4           228            100
73         Judgemaster       0x08523186          D0           208            80


Woah, [Biskmatar] and [Judgemaster] have very high status defence values! For some reason,
the AIO-Editor shows wrong values here. But if you check the status defence value of the Paladin job, you will see this:


Job ID  |  Job name    | Status DEF offset | Value (Hex) | Value (Dec) | AIO-Editor (Dec)
               
03         Paladin           0x08521AC6          32           50            50


Correct values. I think I know, why the AIO-Editor shows wrong values. The highest possible value
for status defence in the AIO-Editor is 127. [Biskmatar] and [Judgemaster] status defence values are over this limit.
So perhaps this is why the AIO-Editor shows wrong status defence values for [Biskmatar] and [Judgemaster].

Let's say, we reduce the status defence values from [Biskmatar] and [Judgemaster] to 50 via
AIO-Editor, now we have these values:


Job ID  |  Job name    | Status DEF offset | Value (Hex) | Value (Dec) | AIO-Editor (Dec)
               
56         Biskmatar         0x08522BA2          B2           178            50
73         Judgemaster       0x08523186          B2           178            50


Well ... interesting results. But as you can see, via AIO-Editor you can't make [Biskmatar] and [Judgemaster] like
the other playable jobs. To fix that, you need to edit the status defence values via Hex-Editor!

For Biskmatar: Change the byte at 0x08522BA2 to ?? (? = your desired value).
For Judgemaster: Change the byte at 0x08523186 to ?? (? = your desired value).

Default value for most playable characters is 32.
Set the value to 00 for no status defence.
Set the value to FF for max status defence. This should prevent all positive and negative status effects!


Alchemist and the hidden Item A-Ability

The Alchemist job has a hidden Item A-Ability.
This allows the Alchemist to use three A-Abilities.

Lets see what differences the Alchemist job because of the hidden A-Ability has:


As you can see, the Item A-Ability is not in the ability list and thus can't set as the second A-Ability.
Alchemists don't need Item as the second A-Ability, because they already have the Item A-Ability as thrid
A-Ablility. In battle, you can see the hidden Item A-Ability:


Via RAM-View, you can find the hidden Item A-Ability next to the first and second A-Ability.
If you have another job active, set Item as the second A-Ability and then change the job to Alchemist,
the second A-Ability gets removed. This prevents redundancy, as the change to the Alchemist job
will set Item as the third hidden A-Ability.

No other job can have the hidden Item A-Ability! Until now ...

Change the byte at 0x080C8232 to ?? (?? = Job ID).

You can find all Job IDs here:
http://datacrystal.romhacking.net/wiki/Final_Fantasy_Tactics_Advance:Jobs#Default_List_of_Jobs

This will give your chosen job the hidden Item A-Ability, but the
Alchemist job will lose the hidden Item A-Ability (but can now set Item A-Abiliy
as the second A-Ability)!

Default value is 18 (Alchemist).

Example: Let's change the byte at 0x080C8232 to 56.
56 = Biskmatar. Llednar has now permanently the hidden Item A-Ability!


If you want all jobs with the hidden Item A-Ability, use this:

Change the bytes at 0x080C8232 to 73 28 00 DC

If you want only playable and changeable jobs with the hidden Item A-Ability, use this:

Change the bytes at 0x080C8232 to 2B 28 00 DC

Keep in mind, the effects of the change activates only, if the unit data in the RAM gets an update.
In the US version, this is only (I guess) the case, if the unit is created or the job changes.
Special jobs, which can't change jobs, have a problem. In Llednar's case, this worked,
because I started a new game and Llednar is in the default party formation, therefore created.
For already existing units in the save file with non changeable jobs, you need most likely RAM-Editing.

You can even edit the hidden Item A-Ability to units via RAM-Editing, without altering the ROM.
But after a unit data update (job changes), the hidden Item A-Ability vanishes and changing back
to the old job doesn't regain the hidden Item A-Ability. But this is perfect, if you want the Item A-Ability
on a non changeable job.


RAM values:


Clan slot |    RAM-Address      |   Change byte to

1 (Marche)      0x020000B7                01
2      0x020001BF                01
3      0x020002C7                01
4      0x020003CF                01
5      0x020004D7                01
6      0x020005DF                01
7      0x020006E7                01
8      0x020007EF                01
9      0x020008F7                01
10      0x020009FF                01
11      0x02000B07                01
12      0x02000C0F                01
13      0x02000D17                01
14      0x02000E1F                01
15      0x02000F27                01
16      0x0200102F                01
17      0x02001137                01
18      0x0200123F                01
19      0x02001347                01
20      0x0200144F                01
21      0x02001557                01
22      0x0200165F                01
23      0x02001767                01
24      0x0200186F                01



Note:

If you want Llednar with the hidden Item A-Ability, I recommend to use the second Icon-Fix (76 byte change)
posted here http://ffhacktics.com/smf/index.php?topic=10685.msg211974#msg211974 . This fixes Llednar's
Icons in battle and the Item A-Ability don't appear in the ability list. But in battle, Llednar has access to the
hidden Item A-Ability! If you use the 2 byte Icon-Fix, you need to use another fix, posted here: http://ffhacktics.com/smf/index.php?topic=10685.msg213521#msg213521 . But in this case, Llednar has the Item-Ability visible in the
list and you can set the Item A-Ability as second A-Ability, while the hidden Item A-Ability is already set.
4
Big News!

Llednar is now fully playable!
You can use Llednar in Missions and Clan Battles and the game will not crash.
Llednar uses now the same dialogues as Marche. This should prevent awkward reports.
For example, if I use Cids dialogue, Llednar would sometimes refer himself as Cid.

Interesting fact: We need four fixes, not only two. I have changed Darthatron's fix,
so Llednar uses Marche's dialogues. Only 1 byte was changed.

I wrote the other 3 fixes yesterday and tested all fixes today. It should work. :)

Information, where the functions starts:
All four functions start with checking Marche.

Mission-Dialouge (for successful Missions) function starts at 0x08047952.
Clan-Battle-Dialouge (Battle won) function starts at 0x08047BBA.
Clan-Battle-Dialouge (Battle lost) function starts at 0x08047D00.
Mission-Dialouge (for failed Missions) function starts at 0x0804814A.

Here the four fixes:

Mission-Dialouge (for successful Missions) fix
(This is Darthatron's fix. Now it uses Marche's dialouge.)

Change the bytes at 0x08047978 to:

5E 20 31 79 81 42 01 D1 50 24 29 E0 09 29 01 D1
38 24 25 E0 0A 29 01 D1 30 24 21 E0 0D 29 0A D1
00 24 1D E0


Clan-Battle-Dialouge (Battle won) fix

Change the bytes at 0x08047BE4 to:

5E 20 31 79 81 42 01 D1 53 21 2B E0 09 29 01 D1
3B 21 27 E0 0A 29 01 D1 33 21 23 E0 0D 29 0A D1
03 21 1F E0


Clan-Battle-Dialouge (Battle lost) fix

Change the bytes at 0x08047D2C to:

5E 20 31 79 81 42 01 D1 57 21 5A E2 09 29 01 D1
3F 21 56 E2 0A 29 01 D1 37 21 52 E2 0D 29 0A D1
07 21 4E E2


Mission-Dialouge (for failed Missions) fix

Change the bytes at 0x08048174 to:

5E 20 31 79 81 42 01 D1 54 24 2B E0 09 29 01 D1
3C 24 27 E0 0A 29 01 D1 34 24 23 E0 0D 29 0A D1
04 24 1F E0


Now I need only find a solution for Llednar's party menu sprite.
But all game breaking problems should be fixed now. :D
5
Sorry for the double post, but I found the reason, why the clan battle dialogues with Llednar
still crashes. Darthatron's fix is not the problem. After some testing I came to the conclusion,
that the Mission-Complete-Text can't involve the Clan-Battle-Complete-Text. So it can't be fixed
with Darthatron's fix, because it is at a different location. I found the location. :)

The Mission-Complete-Text-Function starts at 0x08047952. For more information: http://ffhacktics.com/smf/index.php?topic=10685.msg212006#msg212006

The Clan-Battle-Complete-Text-Function starts at 0x08047BBA.

Both functions start with checking Marche. I did a successful test, I changed the byte 02 at 0x08047BBC to 0D.
02 = ID for Marche. 0D = ID for Llednar. Now Llednar has Clan-Battle-Complete-Text! Of course, this is only
a test and you can't use that effectively, because now the game will crash, if Marche ends a clan battle.



So we need a second fix, this time for the Clan-Battle-Complete-Text. I tried to create a fix, but i failed several times.
I think, I have the right location, but some values need to change. Here are the locations:



Has someone an idea, how to create the fix for the Clan-Battle-Complete-Text?
6
Quote from: sniper_zero on January 11, 2016, 07:38:56 am
Does anyone have any ideas why clan battles freeze even with the ASM work?

EDIT: Perhaps it would also help if Llednar's race is given Human dialogues. That way, there'd be more insurance that a dialogue will happen after random battles?


Maybe the fix has some errors. A part of the fix works.

Quote from: sniper_zero on January 19, 2016, 09:44:08 am
I am sorry for posting again but I would like to add something to Darthatron's fix for the expert icons. The next few bytes after that is also a check. It checks which characters can set the Item ability. If you use the 2 byte fix, then no one can set the Item Abiltiy so you also need to set the first two bytes at 080C8F1E to 1E E0 to fix this problem.


Oh nice, thanks. I use the 76 byte fix. With your fix for the 2 byte version, Llednar can use the Item ability as well. Normally he can't do that. :D
EDIT: This works even with the 76 byte fix. Llednar can set and use the Item ability, if you set the first two bytes at 080C8F1E to 1E E0.

- - - - - - - -

Now I can edit Mewt's party menu sprite via ROM editing.
But unfortunately, it's not so easy. Mewt's party menu sprite address start at 083B7EBD.



I can edit the green values without problem, but what should I do with the red ones? Some posts above this one, I posted a picture about the RAM values of Mewt's party menu sprite. In the ROM, a lot of the RAM values appears again, but not all of them. You can find all the green values in the RAM:





Result:



The sprite is incomplete. I need to know, how the red values are working.
Has someone an idea?
7
Quote from: Darthatron on November 13, 2015, 12:43:16 am
Hahahahaha
Okay I will look into it better. :P


Thank you. :)

Llednar has now a temporary menu sprite. Unfortunately, it's currently only VRAM editing.
I edited Mewt's party menu sprite:



That's Llednar's status screen sprite (standing).
First, I searched Mewt's party menu & status screen sprites with the tile viewer.
Then I compared the values of both sprites in the memory viewer:



Same values, but different order.

With Llednar's status screen sprite values I can now edit Mewt's / slot 4
party menu sprite:






I tested a little bit and just as I thought, editing the Soldier party menu sprite will
change both: Ally and enemy Soldier party menu sprites.
8
Thank you, this fixed one error:



But if I fail a mission, I get this:



Clan fights will still freeze the game.
9
Thank you very much.
I have changed the bytes at 0x08047978, but there are some errors.

If I complete a mission, the mission report shows the text for failing the mission:


If I fail a mission, I get this:


After a clan fight (with Llednar alone), the game will freeze:



This looks good:
10
Again, many thanks for your efforts!
I have tested both versions and both are working. :)
This game has some strange checks.

Llednar as a playable character is nearly complete.
There are two problems left, but they have no higher priority.
Probably these problems are hard or (currently) impossible to fix.

However, if your time allows it, could you please look into it?
There's no hurry.


Problem 1 + my idea for a fix

Quote from: _Sephiran_ on November 01, 2014, 06:25:12 pm
The party menu shows the enemy Soldier sprite, instead Llednar's sprite. Is it somehow possible, to change the sprite into Llednar's sprite? I assume the game has a matching / useable Llednar sprite for the party menu (standing, not animated). Llednar's sprite appears in battle and his status screen, but not in the party menu.




Quote from: Darthatron on November 02, 2014, 09:17:24 pm
1) He doesn't have a menu sprite. It's stored differently to the animated sprites for walking and such. Only playable units have these (and also Mewt, if I recall correctly, implying that he was probably going to be playable at some point in development.)


Llednar hasn't a menu sprite. Because of this the enemy Soldier menu sprite appears. I planned to edit
the "enemy" Soldier menu sprite, but ... that's probably not a good idea. If I edit the enemy Soldier menu sprite,
then this will probably affect the normal Soldier menu sprite as well. I have a better idea. Mewt has a menu sprite.
He doesn't need it*. My plan: Repoint the menu sprite so Llednar has Mewt's menu sprite (is this possible?).
Then edit the menu sprite. This way nothing should go wrong, because Mewt's menu sprite is never used.
I found the sprite animations for walking, attacking and such. But where are the party menu sprites located?


* Some offtopic: Mewt as playable / enemy character:

Changing jobs has some bugs. You can't change
his job. Well, the option is there and useable but
his job won't change at all.

Unfortunately Mewt's missing sprites causes
the game to freeze. He has no cast animation and
even unarmed attacks are not possible.



Problem 2 + my idea for a fix

Quote from: bcrobert on November 02, 2014, 01:21:31 am

And you didn't note one of the biggest hurdles. If Llednar gets the dialogue for a mission report, it comes out as gibberish because it points to a part of the ROM that doesn't have dialogue.



bcrobert is right. If Llednar gets the dialogue for a mission report, the game shows some
unrelated text or even freezes. Is repointing an option? For example: Llednar finishes a mission
and the game uses the mission report from another character (for example Hume / Moogle / Cid's mission report).

EDIT:
Maybe this is helpful:

If you change the race of a unit, then this will also change the mission report.
Special characters have a special race. Llednar's race value: 13

For testing: The address for changing the race of the 3rd unit in your clan: RAM: 0x02000296

ID values:

01 = Hume
02 = Bangaa
03 = Numou
04 = Viera
05 = Moogle
-----------
06 = Ezel
07 = Babus
08 = Ritz
09 = Shara
0A = Cid
...
13 = Llednar
11
Quote from: Darthatron on November 10, 2015, 09:20:55 am
ROM:0812F3E6                 CMP     R0, #0x16
ROM:0812F3E8                 BEQ     CheckLlednar
ROM:0812F3EA                 CMP     R0, #0x1A
ROM:0812F3EC                 BNE     Return0

change those 8 bytes to 00 and it will work fine all the time. You'll just need to change those 4 bytes to their original values. Then you can make that byte (0D for Llednar) any index you like.


Thank you very much!
It works!  :D

Quote from: Darthatron on November 10, 2015, 09:20:55 am
As for the icon thing, I will look into it tomorrow morning and I am totally exhausted.


Thank you.
Take your time. There's no hurry.
12
I've sent you a PM with the .sav file. :)

I have two questions. Changing the 4 bytes at 08130870 to 01 20 00 00
gives all units complete invulnerability in battle. Can this be changed?
Only one unit should be affected ...

Alternatively, can I bypass the vulnerability / invulnerability check like I can bypass the
EXP-Check for special characters? I managed to give Ezel invulnerability (ROM:0812F3F6 - Byte 0D to 0A),
but it lasts only for 2 Missions ([Quiet Sands] Part 1 and [Present Day] Part 2). I need the invulnerability
permanently on for a fixed character. I'm sure ROM:0812F3F6 - Byte 0D to 0A is not a clean edit,
what else should be changed?
13
Thank you :D

Quote from: Darthatron on November 09, 2015, 10:25:41 am

EDIT 2: I think this will work... Change the 4 bytes at 08130870 to 00 20 00 00

This will make Llednar always killable.



Yes, Llednar is now always killable. Perfect :)

Quote from: Darthatron on November 09, 2015, 10:25:41 am

Change the first byte to 01 to make him never killable.



If I change the 4 bytes at 08130870 to 01 20 00 00, everyone (not only Llednar) on the field will be invincible.  :o
No damage possible.  :shock:


Quote from: _Sephiran_ on November 01, 2014, 06:25:12 pm

3)
Llednar's abilities are not listed as Expert-Abilities. The Special-Flag for Llednar's Job "Biskmatar" in the AOI-Editor is activated. This works for Cid, Babus and Ezel, but Llednar is different. When I change Llednar to an enemy or even an NPC, his movesets change back to normal. But as playable character, his movesets look like this:



Is there a way to fix this?



I haven't found a solution for that problem.
Maybe that's because Llednar hasn't the A-Ability "Item". Every other playable Unit has this A-Ability.

@ Darthatron
If you have time, could you please look for a fix?


EDIT:
Some notes:

Invincible Ezel

ROM:0812F3F6                 CMP     R0, #0xD
Change
ROM:0812F3F6 - Byte 0D to 0A

0D = ID Llednar
0A = ID Ezel

01 = Normal Unit (all non-special units & monster are now invincible)
02 = Marche
03 = Mewt
04 = Ritz
05 = Queen Remedi
06 = Cid
07 = Doned
08 = Montblanc
09 = Babus
0A = Ezel
...
0D = Llednar

Same rules: Only in [Quiet Sands] Part 1 and [Present Day] Part 2 active.
14
WRAM only goes up to 0x203FFFF ?
I thought it goes up to 0x2FFFFFF :



I'll post some screenshots with the addresses:

[Snowball Fight] Mission: 0x2402190 - 01


Before I start the [Desert Patrol] Mission: 0x2402190 -15


Before I start the [Quiet Sands] Mission: 0x2402190 -16 (Part 1)
If 0x2402190 = 16 (and later 1A) then Llednar gains his immunity.


I was only searching for Llednar's immunity address but i found some other stuff, too.

Address for Gold:


Overworld Map-Addresses:


Change the addresses for Cyril, Sprohm and Giza Plains to 0 and you get this:
15
Hello :)

I found something about Llednar's invincibility.
Unfortunately, it is only RAM-Editing and maybe useless information:

0x02402190 - 16 and 1A

Codebreaker-Codes (use only one code at the same time and don't save):

32402190 0016
32402190 001A

If the value in 0x02402190 (RAM) is 16 or 1A then Llednar will be invincible.
Other values make Llednar vulnerable. Problem: That address is probably
a "special" Story-Mission-Counter. 16 shows up, when [Quiet Sands] Mission is
available, 1A shows up on the [Present Day] Mission.

After each Story-Mission and / or cutscene the value increases at 1:

01 = [Snowball Fight] <- Llednar is vulnerable
02 = [Herb Picking] <- Llednar is vulnerable
...
15 = [Desert Patrol]  <- Llednar is vulnerable
16 = [Quiet Sands] Part 1 (vs. Llednar) <- Llednar is invincible
17 = [Quiet Sands] Part 2 (vs. Totema) <- Llednar is vulnerable again
...
1A = [Present Day] Part 2 (vs. Llednar) <- Llednar is invincible

It appears that adding Llednar's immunity to other characters via ROM-Editing is not an easy task.
16
Quote from: bcrobert on November 02, 2014, 01:21:31 am
Well...these are all fixable via hex editor, technically. And they would probably be minor tweaks if you knew exactly where to edit each of these values. Unfortunately Llednar's many missing pieces have never been fully documented to my knowledge. And you didn't note one of the biggest hurdles. If Llednar gets the dialogue for a mission report, it comes out as gibberish because it points to a part of the ROM that doesn't have dialogue.

Tl;dr: It is absolutely feasible, but I do not know how to do it.


Yes, the missing dialogue for mission report is another problem. :(

Quote from: Darthatron on November 02, 2014, 09:17:24 pm
1) He doesn't have a menu sprite. It's stored differently to the animated sprites for walking and such. Only playable units have these (and also Mewt, if I recall correctly, implying that he was probably going to be playable at some point in development.)


So the only way is switch the enemy soldier sprite with a (custom) Llednar sprite?

Quote from: Darthatron on November 02, 2014, 09:17:24 pm
2) I will look into this for you when I get a chance. I've been very busy with a new job and moving house over the past couple of months.


Thank you!

Quote from: Darthatron on November 02, 2014, 09:17:24 pm
3) This is very strange... I can't imagine why. There must be some specific check. I'll see what I can find.


This is even the case with original Llednar in his storybattles, after I changed him to a playable character.

Quote from: Darthatron on November 02, 2014, 09:17:24 pm
4) Yeah. There's a check for this. It makes it so characters you can't have or haven't got through normal methods (GameShark or something) don't gain exp. Change the byte at 12E5C3 from D9 to E0 in a hex editor. This will bypass all of the checks.


This works even with Llednar? Nice! Thank you!

Quote from: Darthatron on November 03, 2014, 06:22:44 am
I swear I've posted that somewhere. I looked through all my PMs and posts to find it and I couldn't. So odd. I've known about it for a loooooooong time.

And yes it is strange. High hopes I suppose.


I found this: http://ffhacktics.com/smf/index.php?topic=9705.msg188684#msg188684
17
Hello :)

I have some questions about adding Llednar in my clan via AIO-Editor and Hex-Editor.
Unfortunately there are some problems with Llednar:

1)
The party menu shows the enemy Soldier sprite, instead Llednar's sprite. Is it somehow possible, to change the sprite into Llednar's sprite? I assume the game has a matching / useable Llednar sprite for the party menu (standing, not animated). Llednar's sprite appears in battle and his status screen, but not in the party menu.



2)
How can I disable / enable Llednar's invincibility? In the first two Storybattles, he is immune to damage. Unfortunately this immunity stays until the third Storybattle against Llednar starts. This is boring, because even as playable character, his invincibility stays.

And for some special Missions, I would like add this immunity to some other enemy characters. Is this even possible? Llednar's invincibility has some advantages over the standard physical/elemental (Job-)Immunity: Geomancy can't bypass it.

3)
Llednar's abilities are not listed as Expert-Abilities. The Special-Flag for Llednar's Job "Biskmatar" in the AOI-Editor is activated. This works for Cid, Babus and Ezel, but Llednar is different. When I change Llednar to an enemy or even an NPC, his movesets change back to normal. But as playable character, his movesets look like this:



Is there a way to fix this?

4)
Llednar receives no EXP. Is this changeable?

Can some of the problems fixed via hex-editor?
I appreciate your help and sorry for my English.
18
Quote from: Eternal248 on March 08, 2012, 06:03:41 pm
Ah, sorry about the misunderstanding then. :P

Yeah, editing the actual status itself would be amazing.


My status addresses and codes affect only the data in the RAM and they only affect the current battle. If you want to edit the actual status effect itself, you can do this via editing the ROM section. I checked some ability bytes for status duration in the ROM section, but I found only things like:

Name ID
Range
MP cost
Element
AP requirements
Power
Add an additional status effect on the ability (For example: Cure heals HP an add Shell status)
Add another effect on the ability (For example: Cure reduces Speed)
Change the ability animation (For example: Cure looks like Fire)
Effect ID (Contains targetable units (ally, enemy, all), status effects, determinate heal or damage HP / MP, etc., for example: Effect ID for Cure: Healing HP. Switch this with effect ID for Cupid, Cure will cause Charm status and only enemy are targetable.)
Reflectable or not (For example: Cure ignores Reflect status)

and such things. But I couldn't find any status duration modifier. I'm not good in ROM editing, but I'll check some more ability bytes, perhaps I find some bytes, they allow change the status duration time. Maybe status effect duration changing is only possible via editing the status effect section in the ROM, but I don't know, where this section is.


Quote from: Pickle Girl Fanboy on March 08, 2012, 08:41:42 pm
If there's any info on ability bytes, please post it here:
http://ffhacktics.com/smf/index.php?topic=7956.0


Okay, if I find some interesting ability bytes, then I'll post my results in your topic.
19
Quote from: Eternal248 on March 08, 2012, 05:03:47 pm
Unless I'm misunderstanding, you can just go to that value in a hex editor and change it.


That's right, you can go to the value and change it. If you change the value, the new value becomes the new number of remaining turns for the active status effect. If you changed the turn value for Doom higher than 3, the status bubble will disappear, because the game has only Doom-bubble-sprites with the numbers 1, 2 and 3. But the Doom status effect will work normal and if the turn value reaches 03, then the Doom bubble will reappear.
20
Quote from: Darthatron on March 07, 2012, 07:40:28 pm
Hello. Very nice work. I think I may be able to help a little bit...

0x02000168
0x02000169
0x0200016A
0x0200016B
0x0200016C
0x0200016D


Each bit in these bytes set certain statuses. I don't have a complete list, but I think you can work some stuff out from this data. For example...

32000168 0002
This code sets Marche to have the "Quick" status. I will post (some) more details when I have some free time.


Thank you. :)

I use the Quick-Status code always for testing some stuff, this makes testing a lot easier and it is more comfortable than these battlefield coordination codes. I have some old lists about status codes, for clan units and enemy units. Maybe these lists are useful for you. :)

I renamed some status effects, because "Quick"-Status sounds better than "Infinite movement" (infinite movement is wrong, because "Quick" is a status effect and only infinite, when a code is permanently activated). I added some countdown addresses, some status effects use these: For each turn, the countdown is reduced by 1. If the countdown reach 00, then the status effect will disappear (Shell, Charm) or the status effect will activate a second effect (Doom).


Here my old list for status effects and their digits. Some of them are not fully tested:


0x02000168

01 = Unknown [Items and abilities can't hit the unit (Hit chance always 0%), only normal attacks will hit.]
02 = "Quick"-Status
04 = Auto-Life
08 = Regena
10 = Astra
20 = Reflect
40 = Petrify
80 = Berserk


0x02000169

01 = Frog
02 = Poison
04 = Blind
08 = Zombie
10 = Unknown (battle sprite blinks, effects not tested)
20 = Raises DEF + RES for 1 turn (Defense- / Mog-Guard ability )
40 = Boost (Archer ability)
80 = Deep Sleep (?) 


0x0200016A

01 = ?
02 = ?
04 = "Morph"
08 = Cover (Takes damage for target) 0x02000166 = targeted unit battle ID
10 = Doom (0x02000159 = countdown for Doom)
20 = Haste (0x0200015A = countdown for Haste)
40 = Slow (0x0200015B = countdown for Slow)
80 = Stop (0x0200015C = countdown for Stop)


0x0200016B

01 = Shell (0x0200015D = countdown for Shell)
02 = Protect (0x0200015E = countdown for Protect)
04 = Sleep (0x0200015F = countdown for Sleep)
08 = Silence (0x02000160 = countdown for Silence)
10 = Confuse (0x02000161 = countdown for Confuse)
20 = Charm (0x02000162 = countdown for Charm)
40 = Immobilize (0x02000163 = countdown for Immobilize)
80 = Disable (0x02000164 = countdown for Disable )


0x0200016C

01 = Addle (0x02000165 = countdown for Addle)
02 = Prevents all HP and MP damage for 1 turn (Expert Guard)
04 = Decreased Speed
08 = Increased Weapon Atk
10 = Decreased Weapon Atk
20 = Increased Magic Pow
40 = Decreased Magic Pow
80 = Increased Weapon Def


0x0200016D

01 = Decreased Weapon Def
02 = Increased Magic Res
04 = Decreased Magic Res
08 = Control
10 = ?
20 = ?
40 = Not targetable / Ignored
80 = ?


You can combine two or more status effects from the same address. For example, if you want the Auto-Life status, Regena status and Berserk status, then add the digits together. In this case, the result is: 04 + 08 + 80 = 8C

Put this digit in 0x02000168 or use the code 32000168 008C and Marche has Auto-Life-, Regena- and Berserk status in battle.

Here my lists about status addresses and codes for clan units and enemy units.


Status addresses and codes (Part 1)



Digits:

01 = Unknown [Items and abilities can't hit the unit (Hit chance always 0%), only normal attacks will hit.]
02 = "Quick"-Status
04 = Auto-Life
08 = Regena
10 = Astra
20 = Reflect
40 = Petrify
80 = Berserk


Clan slot Address Codebreaker-Code

1. (Marche) 0x02000168 32000168 00xx
2. 0x02000270 32000270 00xx
3. 0x02000378 32000378 00xx
4. 0x02000480 32000480 00xx
5. 0x02000588 32000588 00xx
6. 0x02000690 32000690 00xx
7. 0x02000798 32000798 00xx
8. 0x020008A0 320008A0 00xx
9. 0x020009A8 320009A8 00xx
10. 0x02000AB0 32000AB0 00xx
11. 0x02000BB8 32000BB8 00xx
12. 0x02000CC0 32000CC0 00xx
13. 0x02000DC8 32000DC8 00xx
14. 0x02000ED0 32000ED0 00xx
15. 0x02000FD8 32000FD8 00xx
16. 0x020010E0 320010E0 00xx
17. 0x020011E8 320011E8 00xx
18. 0x020012F0 320012F0 00xx
19. 0x020013F8 320013F8 00xx
20. 0x02001500 32001500 00xx


Enemy slot Address Codebreaker-Code

1. 0x020030AC 320030AC 00xx
2. 0x020031B4 320031B4 00xx
3. 0x020032BC 320032BC 00xx
4. 0x020033C4 320033C4 00xx
5. 0x020034CC 320034CC 00xx
6. 0x020035D4 320035D4 00xx
7. 0x020036DC 320036DC 00xx
8. 0x020037E4 320037E4 00xx




Status addresses and codes (Part 2)



Digits:

01 = Frog
02 = Poison
04 = Blind
08 = Zombie
10 = Unknown (battle sprite blinks, effects not tested)
20 = Raises DEF + RES for 1 turn (Defense- / Mog-Guard ability )
40 = Boost (Archer ability)
80 = Deep Sleep (?)


Clan slot Address Codebreaker-Code

1. (Marche) 0x02000169 32000169 00xx
2. 0x02000271 32000271 00xx
3. 0x02000379 32000379 00xx
4. 0x02000481 32000481 00xx
5. 0x02000589 32000589 00xx
6. 0x02000691 32000691 00xx
7. 0x02000799 32000799 00xx
8. 0x020008A1 320008A1 00xx
9. 0x020009A9 320009A9 00xx
10. 0x02000AB1 32000AB1 00xx
11. 0x02000BB9 32000BB9 00xx
12. 0x02000CC1 32000CC1 00xx
13. 0x02000DC9 32000DC9 00xx
14. 0x02000ED1 32000ED1 00xx
15. 0x02000FD9 32000FD9 00xx
16. 0x020010E1 320010E1 00xx
17. 0x020011E9 320011E9 00xx
18. 0x020012F1 320012F1 00xx
19. 0x020013F9 320013F9 00xx
20. 0x02001501 32001501 00xx


Enemy slot Address Codebreaker-Code

1. 0x020030AD 320030AD 00xx
2. 0x020031B5 320031B5 00xx
3. 0x020032BD 320032BD 00xx
4. 0x020033C5 320033C5 00xx
5. 0x020034CD 320034CD 00xx
6. 0x020035D5 320035D5 00xx
7. 0x020036DD 320036DD 00xx
8. 0x020037E5 320037E5 00xx




Status addresses and codes (Part 3)



Digits:

01 = ?
02 = ?
04 = "Morph"
08 = Cover (Takes damage for target) 0x02000166 = targeted unit battle ID
10 = Doom (0x02000159 = countdown for Doom)
20 = Haste (0x0200015A = countdown for Haste)
40 = Slow (0x0200015B = countdown for Slow)
80 = Stop (0x0200015C = countdown for Stop)


Clan slot Address Codebreaker-Code

1. (Marche) 0x0200016A 3200016A 00xx
2. 0x02000272 32000272 00xx
3. 0x0200037A 3200037A 00xx
4. 0x02000482 32000482 00xx
5. 0x0200058A 3200058A 00xx
6. 0x02000692 32000692 00xx
7. 0x0200079A 3200079A 00xx
8. 0x020008A2 320008A2 00xx
9. 0x020009AA 320009AA 00xx
10. 0x02000AB2 32000AB2 00xx
11. 0x02000BBA 32000BBA 00xx
12. 0x02000CC2 32000CC2 00xx
13. 0x02000DCA 32000DCA 00xx
14. 0x02000ED2 32000ED2 00xx
15. 0x02000FDA 32000FDA 00xx
16. 0x020010E2 320010E2 00xx
17. 0x020011EA 320011EA 00xx
18. 0x020012F2 320012F2 00xx
19. 0x020013FA 320013FA 00xx
20. 0x02001502 32001502 00xx


Enemy slot Address Codebreaker-Code

1. 0x020030AE 320030AE 00xx
2. 0x020031B6 320031B6 00xx
3. 0x020032BE 320032BE 00xx
4. 0x020033C6 320033C6 00xx
5. 0x020034CE 320034CE 00xx
6. 0x020035D6 320035D6 00xx
7. 0x020036DE 320036DE 00xx
8. 0x020037E6 320037E6 00xx




Status addresses and codes (Part 4)



Digits:

01 = Shell (0x0200015D = countdown for Shell)
02 = Protect (0x0200015E = countdown for Protect)
04 = Sleep (0x0200015F = countdown for Sleep)
08 = Silence (0x02000160 = countdown for Silence)
10 = Confuse (0x02000161 = countdown for Confuse)
20 = Charm (0x02000162 = countdown for Charm)
40 = Immobilize (0x02000163 = countdown for Immobilize)
80 = Disable (0x02000164 = countdown for Disable )


Clan slot Address Codebreaker-Code

1. (Marche) 0x0200016B 3200016B 00xx
2. 0x02000273 32000273 00xx
3. 0x0200037B 3200037B 00xx
4. 0x02000483 32000483 00xx
5. 0x0200058B 3200058B 00xx
6. 0x02000693 32000693 00xx
7. 0x0200079B 3200079B 00xx
8. 0x020008A3 320008A3 00xx
9. 0x020009AB 320009AB 00xx
10. 0x02000AB3 32000AB3 00xx
11. 0x02000BBB 32000BBB 00xx
12. 0x02000CC3 32000CC3 00xx
13. 0x02000DCB 32000DCB 00xx
14. 0x02000ED3 32000ED3 00xx
15. 0x02000FDB 32000FDB 00xx
16. 0x020010E3 320010E3 00xx
17. 0x020011EB 320011EB 00xx
18. 0x020012F3 320012F3 00xx
19. 0x020013FB 320013FB 00xx
20. 0x02001503 32001503 00xx


Enemy slot Address Codebreaker-Code

1. 0x020030AF 320030AF 00xx
2. 0x020031B7 320031B7 00xx
3. 0x020032BF 320032BF 00xx
4. 0x020033C7 320033C7 00xx
5. 0x020034CF 320034CF 00xx
6. 0x020035D7 320035D7 00xx
7. 0x020036DF 320036DF 00xx
8. 0x020037E7 320037E7 00xx




Status addresses and codes (Part 5)



Digits:

01 = Addle (0x02000165 = countdown for Addle)
02 = Prevents all HP and MP damage for 1 turn (Expert Guard)
04 = Decreased Speed
08 = Increased Weapon Atk
10 = Decreased Weapon Atk
20 = Increased Magic Pow
40 = Decreased Magic Pow
80 = Increased Weapon Def


Clan slot Address Codebreaker-Code

1. (Marche) 0x0200016C 3200016C 00xx
2. 0x02000274 32000274 00xx
3. 0x0200037C 3200037C 00xx
4. 0x02000484 32000484 00xx
5. 0x0200058C 3200058C 00xx
6. 0x02000694 32000694 00xx
7. 0x0200079C 3200079C 00xx
8. 0x020008A4 320008A4 00xx
9. 0x020009AC 320009AC 00xx
10. 0x02000AB4 32000AB4 00xx
11. 0x02000BBC 32000BBC 00xx
12. 0x02000CC4 32000CC4 00xx
13. 0x02000DCC 32000DCC 00xx
14. 0x02000ED4 32000ED4 00xx
15. 0x02000FDC 32000FDC 00xx
16. 0x020010E4 320010E4 00xx
17. 0x020011EC 320011EC 00xx
18. 0x020012F4 320012F4 00xx
19. 0x020013FC 320013FC 00xx
20. 0x02001504 32001504 00xx


Enemy slot Address Codebreaker-Code

1. 0x020030B0 320030B0 00xx
2. 0x020031B8 320031B8 00xx
3. 0x020032C0 320032C0 00xx
4. 0x020033C8 320033C8 00xx
5. 0x020034D0 320034D0 00xx
6. 0x020035D8 320035D8 00xx
7. 0x020036E0 320036E0 00xx
8. 0x020037E8 320037E8 00xx




Status addresses and codes (Part 6)



Digits:

01 = Decreased Weapon Def
02 = Increased Magic Res
04 = Decreased Magic Res
08 = Control
10 = ?
20 = ?
40 = Not targetable / Ignored
80 = ?


Clan slot Address Codebreaker-Code

1. (Marche) 0x0200016D 3200016D 00xx
2. 0x02000275 32000275 00xx
3. 0x0200037D 3200037D 00xx
4. 0x02000485 32000485 00xx
5. 0x0200058D 3200058D 00xx
6. 0x02000695 32000695 00xx
7. 0x0200079D 3200079D 00xx
8. 0x020008A5 320008A5 00xx
9. 0x020009AD 320009AD 00xx
10. 0x02000AB5 32000AB5 00xx
11. 0x02000BBD 32000BBD 00xx
12. 0x02000CC5 32000CC5 00xx
13. 0x02000DCD 32000DCD 00xx
14. 0x02000ED5 32000ED5 00xx
15. 0x02000FDD 32000FDD 00xx
16. 0x020010E5 320010E5 00xx
17. 0x020011ED 320011ED 00xx
18. 0x020012F5 320012F5 00xx
19. 0x020013FD 320013FD 00xx
20. 0x02001505 32001505 00xx


Enemy slot Address Codebreaker-Code

1. 0x020030B1 320030B1 00xx
2. 0x020031B9 320031B9 00xx
3. 0x020032C1 320032C1 00xx
4. 0x020033C9 320033C9 00xx
5. 0x020034D1 320034D1 00xx
6. 0x020035D9 320035D9 00xx
7. 0x020036E1 320036E1 00xx
8. 0x020037E9 320037E9 00xx