• Welcome to Final Fantasy Hacktics. Please login or sign up.
 

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.

Topics - xjamxx

1
PSX FFT Hacking / Monster Job Wheel (MJW)
May 02, 2019, 05:17:51 pm
If you are looking for a decent patch, just leave. I warned you.

After a lot of work, my final patch is ... garbage.

Description:

MJW:

Allow monsters to change their job to other monster job. This patch is not compatible with OEJ by itself, use MJW compatibility patch. No variables, so edit through xml only. Edit this label if needed (it goes across all locations):
st_unlock_mjw___Inner game stage to unlock monster wheel (35 = chapter 4 - before orbonne)

MJW - OEJ compatibility patch:

Requires 'MJW', fixes incompatibility issues with OEJ patch. No variables, so edit through xml only. Edit these labels to match with OEJ labels (they go across all locations):
oej_id_______OEJ job ID. Recommended range from 0x35 to 0x49.
oej_ma_unit__OEJ formation sprite for male. Shishi value -1?
oej_fe_unit___OEJ formation sprite for female. Shishi value -1?

MJW - BETTLE-PSX minimal workaround:

Requires 'MJW'. For some unknown reason MJW doesn't work with BETTLE-PSX, and for it is a major issue. Though I have a theory of what is going on, I could not prove it so far. The issue goes to monster_wheel routine that makes the list of jobs. It only works for 61h, 62h and 63h, all goblin jobs. It does not matter the sprite, I drawed with a choco sprite and as long as the jobs are those it works, for any other job it freezes. This patch turn MJW in a goblin job wheel for monsters, but it works with BETTLE-PSX.



"Monster Job Wheel (MJW)"
Allow monsters to change their job to other monster job. Made by xjamxx. This patch is not compatible with OEJ by itself, use MJW compatibility patch.

"MJW - Monster Level restriction"
Requires 'MJW'. The wheel will be unlocked after the moster hits a certain level. Only one restriction can be applied due space limitations. For more complex restrictions, find a code cave and write it there. No variables, so edit through xml only. Edit this eqv if needed:
   mon_lvl            Monster level needed to unlock wheel.

"MJW - Progression Byte restriction"
Requires 'MJW'. The wheel will be unlocked after progression byte reaches a certain value. Only one restriction can be applied due space limitations. For more complex restrictions, find a code cave and write it there. No variables, so edit through xml only. Edit this eqv if needed:
   prg_unlock         Inner game stage needed to unlock wheel (35h = chapter 4 - before orbonne).

"MJW - Elidibs Defeat restriction"
Requires 'MJW'. The wheel will be unlocked after Elidibs is killed. Only one restriction can be applied due space limitations. For more complex restrictions, find a code cave and write it there.

"MJW - No class change"
Requires 'MJW'. It simplifies the wheel to the 3 types of monsters per class.

"MJW - OEJ compatibility patch"
Requires 'OEJ' and after 'MJW', fixes incompatibility issues with OEJ patch. No variables, so edit through xml only. Edit these labels to match with OEJ labels (they go across all locations):
   oej_id            OEJ job ID. Recommended range from 0x35 to 0x47.
   oej_ma_unit         OEJ formation sprite for male. Shishi value -1?
   oej_fe_unit         OEJ formation sprite for female. Shishi value -1?



For future updates (if any) check in: https://github.com/xjamxx/FFTPatcher/tree/master/FFTorgASM/XmlPatches

Since people won't READ and keep downloading outdated xml files, and i made some important fixes to my patches (though i uploaded them some days ago in github), i will replace the xml files here too...

As far as i know MJW.xml, OEJ.xml and PRE.xml are complete and without any issues (they work on all emus and they should work on psx hardware).
2
PSX FFT Hacking / One Extra Job Hack (OEJ)
April 17, 2019, 10:48:46 am
"if all you have is a hammer, everything looks like a nail"

Only one drawback:
The new job will be placed after bard/dancer and before mime (it can be worked but it requires more code to move it).

How to use it:
1. All parameters (or labels) are in the first location (eqvs are not global):

    <Description>Extend jobs from 19 to 20. Based on RAD3. Made by xjamxx. No variables, so edit through xml only. Edit these labels (cuz they go across all locations):
oej_id OEJ job ID (should be less than 0x8F).
oej_ss OEJ skillset. The one that the job ID has. id(0x34)=ss(0x21) unless chagned via hacks.
oej_ma_unit OEJ formation sprite for male. Shishi value -1?
oej_ma_unit_p1 OEJ formation sprite for male. Shishi value?
oej_fe_unit OEJ formation sprite for female. Shishi value -1?
oej_fe_unit_p1 OEJ formation sprite for female. Shishi value?
oej_ma_face OEJ formation portrait for male. Shishi value -1?
oej_fe_face OEJ formation portrait for female. Shishi value -1?
oej_m_ss OEJ spritesheet for male. Shishi value?
oej_f_ss OEJ spritesheet for female. Shishi value?</Description>
    <Location file="SCUS_942_21" offset="5DC14" mode="ASM" offsetMode="RAM">
    .label  @oej_id, 0x43
    .label  @oej_ss, 0x73
    .label  @oej_ma_unit, 0x08
    .label  @oej_ma_unit_p1, 0x09
    .label  @oej_fe_unit, 0x09
    .label  @oej_fe_unit_p1, 0x0A
    .label  @oej_ma_face, 0x08
    .label  @oej_fe_face, 0x09
    .label  @oej_m_ss, 0x3C
    .label  @oej_f_ss, 0x3E

2. For job requirements use the second location, and edit:

    <Location file="SCUS_942_21" offset="5dce8" offsetMode="RAM">
       50000000 <!--Jobs levels requirement for OEJ -->
       00000000 <!--From Squire to Mime every one hexa digits-->
       0000 <!--Example 5000 0000 0000 0000 0000 = Squire level 5-->
    </Location>


Whatever:
1. It would be nice if others test it, but i doubt it.
2. Use it as you like.
3. Thanks pokeytax (though i never spoke to you, i know u are still there).
4. If some1 needs help on how to use it, ask it here.
5. This is my last week here, i won't be back for a long time (could be months, could be years).



Final Update:
-Cleaned a bit more the code, removed that battle.bin inner jump call and skip (had to rewrite the entire routine), free more space so any can add more jobs req (there is an example in a second patch). Fixed some undetected load delays, added a require.out location just in case. (more details in https://github.com/xjamxx/FFTPatcher)

Since people won't READ and keep downloading outdated xml files, and i made some important fixes to my patches (though i uploaded them some days ago in github), i will replace the xml files here too...

As far as i know MJW.xml, OEJ.xml and PRE.xml are complete and without any issues (they work on all emus and they should work on psx hardware).
3
Non-FFT Modding / Final Fantasy VIII ASM hacks
November 14, 2018, 09:00:18 am
Since I am done with my FFT modding, I went back to another PSX title I modded a couple of years ago. Yes it is Final Fantasy VIII.

Unlike FFT, this game has a pc port (it is also on Steam) and most of the modding stuff around is for the pc version. Sadly the psx version (though it is moddable with pc tools, most of the data files are inside the big file) lacks of mods.

This is going nowhere, lets go to the point. I always wanted to change the maximum amount magic (9) you can draw from a foe per turn, but this would require an ASM hack and no data tool could help you here.

Well after a couple of hours I did it:


This is the first ASM hack for FF8-SLUS (AFAIK, if this doesn't count https://gamefaqs.gamespot.com/boards/197343-final-fantasy-viii/47719827), and you saw it here at ffhacktics.com.

The patch is attached below, its written in a xml file to apply it with FFTorgASM.
I also attach my notes to show how I did this.

Cya.

Current ASM hacks
Battle Draw Amount:
Changes max and min magic draw amount for battles. Also adds a draw multipier. Edit these eqvs if needed:
mx_draw   Maximum draw amount, range 0-100. Vanilla value is 9.
mn_draw   Minimum draw amount, range 0-100. Vanilla value is 0.
dw_mult   Draw multiplier. Vanilla value should be around 26 (26/128 = 1/5).

Rare-item all slots:
Now fourth slot items can be obtained if rare-item is equipped.

Re apply status effect:
Vanilla will always miss to apply any status effect if already applied. This patch address that, while not messing with auto abilities nor permanent effects.

Junction linked to Level:
Magic junction will be multiplied by level instead of stock as long as you have one.

Gil Multiplier for Junk Shop:
Changes the gil multiplier for Junk Shop. Edit this eqv if needed:
gl_mult   Gil Multiplier, suggested range 1-10000. Vanilla value is 10.

Level Caps:
Rewrites what lvl 251, 252, 253, and 254 do on scene.out. Edit these eqv if needed:
   st_lv1   Static level for 251, range 1-100.
   mx_lv2   Max level for 252, range 101-199.
   mx_lv3   Max level for 253, range 101-199.
   mx_lv4   Max level for 254, range 101-199.
   mn_lv2   Min level for 252, range 1-100.
   mn_lv3   Min level for 253, range 1-100.
   mn_lv4   Min level for 254, range 1-100.

Current Importable Inner Files
init.out
kernel.bin
scene.out
'..enemy..'.dat


If you have issues with FFTorgASM use this:
UPDATE (Nov 2018): finished all tweaks in ff8 too So no more updates for a long time.
4
Spam / CONGLATURATION!!!
October 25, 2018, 01:42:34 pm


to Xifanie and all who help her with this site, for hitting a new record at 220 online users.



Yeah my IQ fall to 0. :more: