• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
December 06, 2024, 06:38:33 am

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


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 - Choto

1
The Lounge / Simpsons intro pixel art
February 02, 2015, 10:55:04 pm
holy freakin crap the finale of this is ridiculous.

2
Spam / For Dome
September 01, 2014, 04:31:25 pm
I ventured all the way to SPAM to place this hack. It seems like the rightful place where it should rest. Now ima GTFO of here before I get slapped with processed meat...

<Patch name="Disable Select getting terrain data">
<Location file="BATTLE_BIN" offset="dc50">
1CD30108
</Location>
</Patch>


You asked for this a long time ago, and I happen to have just taken apart that routine so here you go
3
PSX FFT Hacking / Timutil replacement?
March 01, 2014, 03:27:28 pm
I found this program reading about playstation stuff. It looks way more complicated than we need it to be, but since timutil is borked for windows 7, this may be a substitute. I didn't take a good look at it but it claims: "Timtool allows easy conversion and Manipulation of Tim files."
4
The Lounge / Happy Turkey Day
November 28, 2013, 11:43:28 am
to all FFH regulars and creepers! Hope everybody has the chance to have a good meal, drink some alcohol, and enjoy some good company.
5
Hacking/Patching Tools / Choto's Tools
July 27, 2013, 08:51:48 pm
MassTextFormatter

This is a really quick small application that will make handling text a little bit easier. It's got two textboxes in which you can manipulate text different ways. If you're building patches it will insert the xml tags for you. It can add a space before each line of whatever is in the box to make uploading to the wiki a breeze. It can also add MassHexASM style comments (#) before any text that has a tab in front of it.

Jal Finder

This is an ASM research tool that will scan a routine and report all the 'jal' commands in a column list in notepad. I'm hoping it will come in handy in telling what a routine does without having to document ALL THE COMMANDS. I had a thought to make them scan larger amounts of routines and even linking the hex addresses of the routines to the wiki to report the name of the routine. I also had a thought to write a program that will auto-notate routines by filling in knowledge that we know. So for example

if r4 is unit data and theres a lbu r2, 0x0001(r4), edit the line with the annotation

lbu r2, 0x0001(r4)                  Load Unit ID

Bonus.Bin Editor

This utility will let you import a Bonus.Bin imagine in .TIM form without having to do any math or tedious copy/paste. I'll probably merge it with another program down the road.

Conflict Checker

f you put this program in your FFTorgASM directory, on startup it will load all patches from all xml files in the folder (much like orgASM does). You can then select a file (like BATTLE.BIN) and it will list every patch that writes to that file.

When it does this, it also checks each patch against every other patch for overlap conflicts and highlights the patch red if a conflict is found. You can then click on a patch and the program will tell you: which xml file the patch is in, the number of the patch that it conflicts with, and both "offset" blocks that cause the conflict.

In addition, if there is a formatting error with your xml files it will display a message when it tries to load on startup telling you which file is failing. It will also spit out a bunch of programming junk that may give you a hint of where in the file the issue happens.

I have hopes to make this thing also able to move hacks by analyzing their code and changing jump commands appropriately, but as for now this should be immediately useful. May crash or have bugs cause it's still new.

FFTEE - Effects Editor

This effects editor will read in a .bin effect file and allow you to change some things. Most of it is highly experimental but you can do some things like change frame dimensions, particle density, motion of emitters, timing, sound effects, tinting. Unfortunately since the effect files are so complicated it only went so far. At the very least, one can mess with random things and then test their effects to see what changes occurred and hopefully come up with something cool. I plan to rewrite this at some point down the road since I've learned a ton since I started the project.
6
I think we have enough of the map targeting routines to expand upon the original Range/AoE system. The question though, is if it will be enough benefit for the effort. I'd like some input, especially from patchmakers to determine if it will be a big enough benefit to go through with.

If done, I was thinking of each 0x0f (16) values corresponding to a certain pattern. Since most maps have 16 tiles, each section should be able reach all ends of the map. In order to make different designs it's simply a matter of writing an algorithm that sets the correct data for each panel. So more routines would take up more space, which is why i'd like to keep it from getting convoluted.

The AI is likely to have some issues with our tinkering too.. but if so, we'll cross that bridge when we get to it.

Post your thoughts!
8
PSX FFT Hacking / ASM Starter kit
April 07, 2013, 07:38:57 pm

ASM Notes most useful files:
This file tells where in RAM data and tables are located when BATTLE.BIN is loaded into RAM

This file has all of the routines that I've documented, but haven't been uploaded to the Wiki

This is all the research I've done into how Effect.bin files work. Most of the data therein is related to E0001.bin, or cure


The rest is a mix of miscellaneous files I've acquired over time, from various different people. I will try to keep a collective list of all routines that are currently documented in the respective file routine locations on the Wiki. Meaning, if you see routines without notes in these files, it may already be documented and you should check the wiki before doing needless work.
**Disclaimer: I may forget to update this stuff so additional information may be collected over time.

HxD - This is a hex editor which you can open .bin files with to view and edit the hex within.

MassHexASM - An essential tool for writing code into hex values. More information can be found here: http://ffhacktics.com/smf/index.php?topic=7130.0

Psxrel - This is a debugger, essential for testing things in game. Pokeytax gives a short tutorial on using it here: http://ffhacktics.com/smf/index.php?topic=7937.0

If you are just starting out, it is highly suggested that you visit the tutorials section and read all of the ASM tutorials: http://ffhacktics.com/smf/index.php?topic=9204.0

Things may seem overwhelming at first, but with time and effort anybody can learn to ASM hack and truly make FFT do what they want. Re-reading things every once in awhile definitely helps as well. Sometimes it takes a couple swings of a hammer to break through a wall.

@ the other ASM guys:
Let me know if there's any other important stuff you guys think would be useful to beginners.
9
Spam / Morbid
January 14, 2013, 11:01:10 pm
Written on the tombstone of a girl who was buried alive

Beware my friends
As you pass by
As you are now
So once was I
As I am now
So you must be
Prepare my friends
To follow me
10
The Lounge / Torchlight 2 bug - farmspot
September 24, 2012, 03:58:11 pm
Hey any Torchlight 2 players, i found a nice little bug. When you're in the desert part and you have the questline from the Djinn dude, you take a portal to a dungeon in which you have to stay inside a circle of light as you move through the level. You wind up fighting a bunch of monsters and getting tons of loot, including a couple giant chests, unique items, and a secret spot. After you're done, you can re-enter the zone and do the whole thing over again.

The zone is called the luminous arena or something. Also, when you reach the end of the follow-the-light part, wait around before walking into the portal and a lever will spawn, leading to a secret room with 2 more chests.

Have fun!
11
Spriting / Even longer overdue Flan sprite
March 12, 2012, 04:18:44 pm
 Credit to Ryu for the original base sprite that was awesome to start with, and Smash for a recolored version.

Current Progress:

12
This seems extremely useful. This guy talks about all kinds of different things about PSX hacking and how things work. Alot of it was above my head, but some of you more talented ASMer's may find this very enlightening... or not so much, idk. Either way, I strongly urge you to take a look

This is a link to a small document a guy named Klarth wrote about .TIM files. Again, it may shed some light on things... or maybe not.

http://mrclick.zophar.net/TilEd/download/timgfx.txt
13
PSX FFT Hacking / Choto's ASM Hacks and Effects
February 27, 2012, 06:05:00 pm
Mighty Sword Hack:

This makes it so that the mighty swordskills have a % chance to break equipment, but always function as normal damage swordskills. Maintenance prevents item breakage, but not damage. Change "XX" to whatever chance to break you want. I also changed the damage formula to (WP+Y)*PA like the other swordskills, and divided the damage by 2 to prevent roflstomping. If you don't want this, change the bolded line to "00000000".


Battle.bin
0x122b94
E8FFBD27
1000BFAF
8E1D060C
00000000
0C004014
64000434
B63B060C
XX000534
08004014
00000000
721E060C
00000000
1E004014
1980033C
902D638C
04000234
100062A0
01000234
020060A0
4421060C
000062A0
9717060C
00000000
E917060C
00000000
A921060C
00000000
1980033C
902D638C
42100200
040062A4
1980043C
DC388290
2A0062A0
00000000
00000000
00000000
00000000
00000000
F41B060C
00000000
3F1C060C
00000000
1000BF8F
1800BD27
0800E003
00000000


Giving FFM's suggestion a shot and making the break chance be whatever the ability X in FFTPatcher is. If anybody gives this one a shot please let me know if it works correctly as I didn't test it yet.


<Patch name="Mighty sword uses X as % to break">
  <Location file="BATTLE_BIN" offset="00122B94">
E8FFBD27
1000BFAF
8E1D060C
1980053C
0C004014
64000434
B63B060C
F938A590
08004014
00000000
721E060C
00000000
1E004014
1980033C
902D638C
04000234
100062A0
01000234
020060A0
4421060C
000062A0
15004014
00000000
9717060C
00000000
E917060C
00000000
A921060C
00000000
1980033C
902D638C
42100200
040062A4
1980043C
DC388290
2A0062A0
00000000
00000000
00000000
F41B060C
00000000
3F1C060C
00000000
1000BF8F
1800BD27
0800E003
00000000
</Location>
</Patch>


Spells can Crit Hack (Needs fixing, does not work)

Here is a Beta "Spells can crit" hack. This trades compatibility for critical hits in formulas 08, 1a, 1f, 21. Its only a quick and dirty version but with an initial test it seemed to work. Oh, It also cancels the knockback routine for critical hits because last time we tried this it seemed to mess things up. I'd like to expand this hack to make a couple other formulas able to crit.


<?xml version="1.0" encoding="utf-8" ?>
<Patches>

<Patch name="Spells can Crit v.1">
<description> Affects formulas 08, 1A, 1F, 21</description>
  <Location file="BATTLE_BIN" offset="121764">
3E19060C

</Location>
<Location file="BATTLE_BIN" offset="11f550">
00000000
</Location>
</Patch>
</Patches>


No Zodiac Compatibility Calculation:

Finally fixed, thanks Pride and Glain!


-<Patch name="No Zodiac Compatibility">
<Description> This removes zodiac compatibility damage calculations </Description>
<Location offset="11D964" file="BATTLE_BIN"> 00000000 0800E003 00000000    </Location> </Patch>


Blank Support ability Hacks:
FFM's originals fixed for load delay

Blank support below Non-Charge increases damage and healing by X%. Blank support 2 under Non-Charge reduces damage/healing by 20%. Note: X value is hexadecimal. Default is 0x14, or 20%.


<Patch name="Supports under non-charge hack">
    <Description>
      Blank support below Non-Charge increases damage and healing by X%. Blank support 2 under Non-Charge reduces damage/healing by 20%.
    </Description>
<Location file="BATTLE_BIN" offset="11F580">
        ba600508
   00000000
       </Location>

       <Location file="BATTLE_BIN" offset="F12E8">
64000324
1980043C
942D848C
00000000
92008490
00000000
02008430
02000410
00000000
   </Location>
    <Variable file="BATTLE_BIN" offset="f130c" default="14" name="X"/>
   <Location file="BATTLE_BIN" offset="F130d">
006324   
1980043C
982D848C
00000000
92008490
00000000
01008430
02000410
14000234
23186200
12200000
00000000
00000000
18006400
12180000
00000000
64000424
1A006400
1980033C
902D638C
62190608
00000000



    </Location>
  </Patch>


Addend: This removes the decrease in healing for the 2nd blank support under Non-Charge.


<Patch name="Supports under non-charge hack Healing Addend">
<Description>
       This removes the decrease in healing for the 2nd blank support under Non-Charge.
    </Description>
<Location file="BATTLE_BIN" offset="1203bc">
        DF470508
   00000000
       </Location>

       <Location file="BATTLE_BIN" offset="EAF7C">
1980033C
982D638C
00000000
92006390
00000000
01006330
12000310
00000000
1980033C
D8386390
00000000
04006010
00000000
F0006328
0A006010
00000000
64000324
19006324
18004300
12100000
00000000
64000324
1A004300
12100000
00000000
060082A4
25008290
F11C0608
00000000



    </Location>
  </Patch>


@ Raven: Revised these to work with Item and fixed the decrease to be 20% for simplicity.

Blank support Accuracy Hack:

Edit: Apparently the second hack doesn't work correctly. I'm leaving it up just for record, but the first hack after this description will null 20% of the targets evade. This is the one used in JOT5 and should work fine. Thanks to Grond for the tip-off


<Patch name="Support under Equip Change removes 20% Evade">
<Description>
What's a description. It tells you what the hack does. Evades are removed in this order:
A-Ev, W/S Ev, C-Ev
</Description>
<Location file="BATTLE_BIN" offset="11e828">   
00000000
1000B0AF
1980023C
F6384290
1980013C
942D308C
02004230
92001092
8E004010
00000000
10001032
05000012
14001024
FC470508
21280000
00000000
00000000
DC382890
E1382790
DE382390
DF382490
E0382690
21280001
00000000
00000000
00000000
00000000
00000000
2B106800
04004010
2B108800
02004010
2B10C800
00004010
2B10E800
06004014
23100301
902D428C
00000000
000040A0
74160608
2A0040A4
</Location>
<Location file="BATTLE_BIN" offset="EAFF0">
DE382424
00008390
00000000
2B107000
04004014
00000000
23187000
0B480508
000083A0
23800302
000080A0
0300A22C
0100A524
F3FF4014
01008424
1B160608
00000000
</Location>
</Patch>


Combined this with an altered version of Xif's hack that should add % hit to all abilities. This is not thoroughly tested so please report any abilities that are not affected by it.


<Patch name="Support under Equip Change adds XX% Hit (with Xif's Hack)">
<Description>
        Set YY and XX to be the same value
    </Description>
<Location file="BATTLE_BIN" offset="11e9cc">
        FC470508
   00000000
       </Location>

       <Location file="BATTLE_BIN" offset="EAFF0">

1980043C
942D848C
00000000
92008490
10000334
06006414
00000000
   </Location>
<Variable file="BATTLE_BIN" offset="EB00c" default="14" name="XX"/>
   <Location file="BATTLE_BIN" offset="EB00d">
004224
64004328
02006014
00000000
64000224
2A00A2A4
21800001
75160608
00000000

    </Location>
<Location file="BATTLE_BIN" offset="11f5d8">
1980013C
CE382294
CE3830A4
D03822A4
D0382394
CE382294
92006492
10008430
03000410
21104300
</Location>
<Variable file="BATTLE_BIN" offset="11f600" default="14" name="YY"/>
   <Location file="BATTLE_BIN" offset="11f601">
004324
21106200
902D248C

       </Location>
  </Patch>


Weapon Guard innate all v2:

Fixed a bug with Xif's Weapon guard innate all hack


The Patch:


<Patch name="Weapon Guard Innate All fixed">
<Description>
       Untested
    </Description>
<Location file="BATTLE_BIN" offset="11e0c8">
10400008
00000000
   00000000
       </Location>

       <Location file="BATTLE_BIN" offset="11e178">

   00000000

    </Location>
  </Patch>


Sprite ID causes Game Over when crystallized/treasured:

You can put up to 5 different sprites that will cause game over. If you need less, just make the excess ones duplicates and it should work fine.
Special thanks to Glain for basically figuring everything out for me and explaining it.


<Patch name="Sprite ID Causes Gameover when crystal">
  <Location file="BATTLE_BIN" offset="EB048">
FDFF1424
  </Location>
<Variable file="BATTLE_BIN" offset="EB04c" default="01" name="Sprite 1"/>
   <Location file="BATTLE_BIN" offset="EB04D">
000434
CB02060C
21800400
17005410
00000000
</Location>
<Variable file="BATTLE_BIN" offset="EB060" default="02" name="Sprite 2"/>
   <Location file="BATTLE_BIN" offset="EB061">
000434
CB02060C
21800400
12005410
00000000
</Location>
<Variable file="BATTLE_BIN" offset="EB074" default="03" name="Sprite 3"/>
   <Location file="BATTLE_BIN" offset="EB075">
000434
CB02060C
21800400
0D005410
00000000
</Location>
<Variable file="BATTLE_BIN" offset="EB088" default="03" name="Sprite 4"/>
   <Location file="BATTLE_BIN" offset="EB089">
000434
CB02060C
21800400
08005410
00000000
</Location>
<Variable file="BATTLE_BIN" offset="EB09c" default="03" name="Sprite 5"/>
   <Location file="BATTLE_BIN" offset="EB09d">
000434
CB02060C
21800400
03005410
00000000
12070508
21900000
12070508
01001224

</Location>
<Location file="BATTLE_BIN" offset="DAc1c">
12480508
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

</Location>

</Patch>


Sprite ID cannot be dismissed:


<Patch name="Unit Dismissal Hack">
<Description>
        You can have up to 12 units that are not dismissable. Enter their Sprite ID and it will be so. Default: 01, 02, 03.
    </Description>


    <Location file="WORLD_WORLD_BIN" offset="B9918">
7B480508
00000000


</Location>
<Location file="WORLD_WORLD_BIN" offset="5d454">
00000134
00000434
1580043C
21202400
24228890
00000000
05004810
0C00292C
F9FF2015
01002124
49820408
00000000
4A820408
00000234



</Location>
<Variable file="WORLD_WORLD_BIN" offset="5d48c" default="01" name="Unit 1"/>
<Variable file="WORLD_WORLD_BIN" offset="5d48d" default="02" name="Unit 2"/>
<Variable file="WORLD_WORLD_BIN" offset="5d48e" default="03" name="Unit 3"/>
<Variable file="WORLD_WORLD_BIN" offset="5d48f" default="00" name="Unit 4"/>
<Variable file="WORLD_WORLD_BIN" offset="5d490" default="00" name="Unit 5"/>
<Variable file="WORLD_WORLD_BIN" offset="5d491" default="00" name="Unit 6"/>
<Variable file="WORLD_WORLD_BIN" offset="5d492" default="00" name="Unit 7"/>
<Variable file="WORLD_WORLD_BIN" offset="5d493" default="00" name="Unit 8"/>
<Variable file="WORLD_WORLD_BIN" offset="5d494" default="00" name="Unit 9"/>
<Variable file="WORLD_WORLD_BIN" offset="5d495" default="00" name="Unit 10"/>
<Variable file="WORLD_WORLD_BIN" offset="5d496" default="00" name="Unit 11"/>
<Variable file="WORLD_WORLD_BIN" offset="5d497" default="00" name="Unit 12"/>
</Patch>


Jump Hacks:

This will change the time it takes for a jump to land. The default formula is 50/speed. Right now you can only change the constant and the stat chosen. I'd like to expand it a bit and put it in Raven's spreadsheets.


<Patch name="Jump CT formula hack">
<Description>
        Formula is CONST/STAT. STAT corresponds to offsets in Unit Data.
    </Description>

<Variable file="BATTLE_BIN" offset="115740" default="32" name="CONST"/>
    <Location file="BATTLE_BIN" offset="115741">
  000334
</Location>
<Variable file="BATTLE_BIN" offset="115744" default="38" name="STAT"/>


</Patch>


*This hack breaks the added damage for having a spear atm. I'll fix this later
<Patch name="Jump Formula Hack">
<Variable file="BATTLE_BIN" offset="1247e0" default="64" name="Formula #"/>
</Patch>


Break skills miss if break does not occur

This will keep formula 25 from defaulting to a regular attack if no equipment is present. Good for using break skills as a proc-effect and preventing a double-attack. Cheer to Raven for the idea.


<Patch name="Break skills don't default to weapon strike">
<Description>
     
    </Description>
    <Location file="BATTLE_BIN" offset="122700">
00000000
961d060c
00000000
e1250608
00000000
00000000
00000000

</Location>

</Patch>


Formulas 43, 45, 4F damage divided in half:

This divides all of the health-difference formulas damage by 2, not including self-destruct. Also credit to Raven for the idea.


<Patch name="Formulas 43,45,4f damage cut in half">
<Description>
     
    </Description>
    <Location file="BATTLE_BIN" offset="11fe28">
1980013C
942D228C
902D258C
2A004394
28004494
80000234
2500A2A0
23186400
42180300
0800E003
0400A3A4


</Location>
  <Location file="BATTLE_BIN" offset="11fe78">
1980013C
982D228C
902D258C
2A004394
28004494
80000234
2500A2A0
23186400
42180300
0800E003
0400A3A4


</Location>

</Patch>


Ninja Ball Effect Hack:

This hack is a little strange, but it allows you to change which ability effect is used for the thrown bombs. It uses the Evade and Unkown bytes together as the EFFECT ID. Edit these values in FFTPatcher and apply the ASM. Fingers crossed for no bugs :)     (It's the unknown byte to the right of "Range" in the Items tab)

Ex: to make Fire ball use Choco Ball:
Unknown = 0x01
Evade = 0x3d
Total ability = 0x013d


<Patch name="Thrown Ball Effect Hack">
  <Location file="BATTLE_BIN" offset="146fac">
1980013C
AE382490
0680023C
C0200400
21104400
BB3A4490
001A0400
BD3A4290
25104300
00000000
00000000
00000000
00000000
0800E003
00000000


</Location>
<Location file="BATTLE_BIN" offset="13a5f8">
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
95850608
00000000
</Location>

</Patch>


Item Effect Hack:

Ok, bear with me. The effects ID's are stored in reverse order. Also, instead of ability ID's over 0xff being 0x0100, they have 0x0900. This simply means that there's an 0x0800 flag active for some reason. In order to not break anything you may need to keep that flag. Edit as follows:

X potion is currently 0x0a09, which is really 0x010a (09 turns into 01 and is placed in front)
To change this to 0x0001 (cure), turn the 9 into an 8, and place it in front again: 0x0801

It's a bit strange for the time being, but these will be assimilated into Raven's workbooks where they will be much more intuitive.


<Patch name="Item Effect Hack">
<Location file="BATTLE_BIN" offset="14f6d0">
04090709
0a090d09
10091109
05090609
09090f09
0b090e09
08090c09
</Location>
</Patch>


Short Charge affects Charge Skillset

FFM did this hack originally, but it didn't work for JoT5 for whatever reason. I guess just posting it for fun lol.


<Patch name="Short Charge affects Charge Skillset FIX">
<Location file="BATTLE_BIN" offset="1157e4">
16f20508
</Location>
<Location file="BATTLE_BIN" offset="11AAc8">
37610508
1000A627
</Location>
<Location file="BATTLE_BIN" offset="F14DC">
0680013C
21082200
180D3090
F000A18F
00000000
03002010
00000000
01001026
42801000
B6060608
00000000

</Location>
</Patch>


Weapon Strike Fix

This allows you to keep striking with your equipped weapon on multi-strike/weapon strike abilities. If two weapons are equipped, it will alternate between right hand and left hand weapons.


<Patch name="Weapon strike rewrite">
<Location file="BATTLE_BIN" offset="124274">
1980013C
C4382594
02120500
FF000334
02004314
FF00A230
01000534
02004314
03000334
0200A534
0300A314
01000334
D02C0608
25280000
05006510
0300A52C
0500A010
00000000
BD2C0608
C5382590
BD2C0608
C4382590
C3382290
02000334
1A004300
00000000
00000000
10100000
F5FF4010
00000000
B12C0608
00000000
08008290
00000000
03004010
00000000
D12C0608
D83822A0
01008290
0680013C
21082200
B45C2390
1980013C
09000234
02004314
0A000234
D83820A0
03004310
00000000
C1D00508
02008484
D83825A0
0800E003
00000000

</Location>
<Location file="BATTLE_BIN" offset="10d304">
0D008010
70018228
00004010
C0100400
23104400
40100200
0680013C
21082200
F3FB2290
00000000
24004230
02004014
00000000
21280000
D02C0608
00000000
</Location>

</Patch>


Two hands affects abilities with weapon strike/ranged weapon

This hack doubles WP for any ability using weapon strike/ranged weapon flags. If WP is not in the abilities formula it will have no effect. It also has no effect if the weapon is forced two hands just like vanilla. Brought to you by Limited Testing LLCâ„¢.


<Patch name="Two hands affects weapon strike abilities">
<Location file="BATTLE_BIN" offset="124744">
35004014
</Location>
<Location file="BATTLE_BIN" offset="124818">
02003092
1980023C
FF384290
</Location>
<Location file="BATTLE_BIN" offset="124830">
1980013C
942D238C
</Location>
<Location file="BATTLE_BIN" offset="124854">
02392590
09008214
40280500
</Location>
<Location file="BATTLE_BIN" offset="124874">
023925A0
</Location>
<Location file="BATTLE_BIN" offset="1248ac">
023925A0
</Location>
</Patch>


Equip Change only allows weapon switching

Just putting this here for now. I need to add a portion that prevents act from being disabled along with this.


<Patch name="Equip Change only allows Weapon changes">
<Description>
</Description>
<Location file="EVENT_EQUIP_OUT" offset="5580">
02000434
</Location>
</Patch>


Multi Hit Editor v1.2


V1.2
Fixed a problem with doublecast
Fixed a bug that broke all other sprite animations


This has 2 parts. The Multi-Hit editor allows you to designate how many hits each ability will have, if it is a random or set number, and if having two swords will allow 2 hits (attack, break skills, etc.).

The Weapon Effect editor will allow you to give a weapon an effect when used with ATTACK. It mimics an ability, so the designated ability ID must have the effect that you want to set. In other words, this will make a weapon function like a Magic Gun, but adhere to its own weapon formula.

Multi-Target Effect Files

These effect files should allow effects like Wave Fist to display on all targets hit by the ability instead of just a single target. This was done using my effects editor, so there might be some that don't work. Having things like too many particle effects at once, or the camera switching too quickly will cause a crash too. Please post if you find one that doesn't work and I'll fix it up. Just import these via CDMage in the Effect folder. These effects are in the Effects.rar attachment.


E317 - Choco Ball


R/S/M Freedom Hack
This hack allows you to designate which R/S/M adhere to reaction slots, support slots, and movement slots. In FFTPatcher if you click on one of the RSM abilities, you'll notice a textbox called "Ability ID". To use this hack, change those numbers to the following:

Reaction - 1
Support - 2
Movement - 3

From what I could tell this byte had no effect in vanilla. Hopefully it won't break anything.


<Patch name="R/S/M freedom hack">
<Location file="WORLD_WORLD_BIN" offset="0429a8">
8E69010C
0F000534
21304002
21804000
01000334
21200002
00F50408
00000000
848A0408
A5010234
0680013C
5C102224
00008394
00000000
0AF50408
5AFE6324
0000A590
00000000
0200C510
01005226
000080A4
1800412A
F5FF2014
02008424
908A0408
00000000
00008684
00000000
2A28C300
0300A014
2A284600
0200A010
00000000
000080A4
01005226
1800452A
F5FFA014
02008424
</Location>
<Location file="WORLD_WORLD_BIN" offset="05D400">
05004012
0400522E
05004016
FD010234
848A0408
21900000
728A0408
21900000
748A0408
21900000
</Location>
<Location file="WORLD_WORLD_BIN" offset="05D428">
02006018
21286200
7A8A0408
00000000
7D8A0408
00000000
</Location>
<Location file="SCUS_942_21" offset="04db24">
00000000
</Location>
</Patch>
</Patches>


Hamedo Fix and chosen ability hack

This will allow the original attacker to hit after the unit with hamedo equipped hits.


<Patch name="Original attacker hits after hamedo">
<Location file="BATTLE_BIN" offset="1095c">
00000000
</Location>
<Location file="BATTLE_BIN" offset="117114">
00000000
</Location>
</Patch>


This one will let you choose what ability Hamedo performs. You have to input Skillset number and Ability ID. The Ability Id bytes are swapped, so if I want ability 0x01FF, I need to put in 0xFF01.


<Patch name="Hamedo attack/skillset">
<Description>
Ability ID bytes are reversed. For example if I want Stasis Sword (009B)
I would enter 9B00 for Ability ID and 21 for Skillset
    </Description>
<Variable file="BATTLE_BIN" offset="1170b8" default="14" name="Skillset"/>
<Location file="BATTLE_BIN" offset="1170b9">
000534
</Location>
<Variable file="BATTLE_BIN" offset="1170c0" bytes="2" default="FF01" name="Ability ID"/>
<Location file="BATTLE_BIN" offset="1170c2">
0634
</Location>
</Patch>


Chocobo and Unit move independently

This hack will allow both the chocobo and unit riding it a movement per turn. That means you can move from unit to mount, and then move with the mount. Or if you start the turn mounted you can move with the mount and then move off the mount with the unit.

** This hack has bugs, but I can't recreate them. If anybody uses this hack and notices that they can move multiple times, try to get a savestate before the unit moves so I can fix it =)


<Patch name="Chocobo Movement Hack">
<Location file="BATTLE_BIN" offset="D9a88 "><!--functionality jump-->
004B0508
1680013C
</Location>
<Location file="BATTLE_BIN" offset="EBbfc"><!--menu functionality-->
10000000
845F2890
00000000
D2FF0225
0600422C
18004010
C0100400
23104400
80110200
21104300
00090800
23082800
80400100
1680013C
106B2124
21402800
38000891
1580013C
08000015
FC2B28AC
82014290
00000000
1F004230
C0080200
23082200
80090100
21102300
87014290
1680033C
04004010
1680033C
845F638C
A4020508
00000000
B5020508
845F638C
</Location>
<Location file="BATTLE_BIN" offset="E45e8"><!--menu display jump-->
404B0508
00004592
8C5F25AC
</Location>
<Location file="BATTLE_BIN" offset="EBd00"><!--menu display-->
1680013C
845F2390
1980013C
D2FF6224
0600422C
25004010
20F5218C
00000000
C0100100
23104100
80110200
10006130
1980033C
CC086324
21104300
03002014
1680013C
544B0508
DF372124
41382124
09003210
00000000
07002124
13003214
87014290
00000000
10004014
00000000
6b4B0508
00000534
82014190
00000000
1F002130
C0100100
23104100
80110200
21104300
87014290
00000000
03004014
00000000
00000534
00000000
7C2D0508
1680013C
</Location>
<Location file="BATTLE_BIN" offset="11a1c8">
2f000434
</Location>
<Location file="BATTLE_BIN" offset="11a1d8">
31000434
</Location>
<Location file="BATTLE_BIN" offset="11bb64">
704B0508
</Location>
<Location file="BATTLE_BIN" offset="ebdc0"><!--Clear mount movement-->
870120A2
82012292
00000000
80004130
07002010
1F004230
C0080200
23082200
80090100
1980033C
CC086324
21086100
870120A0
DB0A0608
00000000
</Location>
<Location file="BATTLE_BIN" offset="EBE00"><!--Store movement taken-->
80004330
0F006010
01000134
1F004230
1580053C
FC2BA38C
01000134
0A006014
FC2BA1AC
C0080200
23082200
80090100
1980033C
CC086324
21086100
01000234
934B0508
870122A0
870181A0
0300C010
00000000
0F0F0608
01000234
100F0608
00000000
</Location>
<Location file="BATTLE_BIN" offset="11cc30"><!--Store movement taken-->
804B0508
82018290
</Location>
<Location file="BATTLE_BIN" offset="EBE80"><!--End of turn-->
1980013C
CC082124
80008330
0C006010
FF00C330
1F008330
C0200300
23208300
80210400
21202400
87018490
FF00C330
03008014
00000000
570F0608
00000000
03006014
00000000
570F0608
00000000
560F0608
00000000
</Location>
<Location file="BATTLE_BIN" offset="11cd50"><!--End of turn-->
A04B0508
82010492
</Location>
</Patch>


Status removed by hp damage

Makes these status effects behave like sleep and charm in that they're removed when hit by HP damage ability


<Patch name="Status removed on HP damage">
<Location file="BATTLE_BIN" offset="125438">
22006294
</Location>
<Location file="BATTLE_BIN" offset="125444">
220062a4
</Location>
<Location file="BATTLE_BIN" offset="125454">
20006294
</Location>
<Location file="BATTLE_BIN" offset="125460">
200062a4
</Location>

<Variable name="Status 1" file="BATTLE_BIN" default="00" offset="12545c"/>
<Variable name="Status 2" file="BATTLE_BIN" default="10" offset="12545d"/>
<Variable name="Status 3" file="BATTLE_BIN" default="10" offset="125440"/>
<Variable name="Status 4" file="BATTLE_BIN" default="00" offset="125441"/>
<Variable name="Status 5" file="BATTLE_BIN" default="30" offset="125424"/>
</Patch>


Chicken is not applied when brave is low

Removes the application of chicken status when brave is low; useful if replacing chicken with a different status


<Patch name="Chicken status not set when brave low">
<Location file="BATTLE_BIN" offset="1253dc">
00000000
</Location>
</Patch>


Equip change uses Move instead of Act


<Patch name="Equip Change Uses Move instead of Act">
<Location file="BATTLE_BIN" offset="E1C0">
40490508
05000192
</Location>
<Location file="BATTLE_BIN" offset="EB500">
03000534
05002514
00000000
F30E060C
00000000
72D40108
00000000
EA0E060C
00000000
72D40108
00000000
</Location>
<Location file="BATTLE_BIN" offset="11a6fc">
50490508
FF00C230
</Location>
<Location file="BATTLE_BIN" offset="11a5b4">
21882000
</Location>
<Location file="BATTLE_BIN" offset="EB540">
0C001034
06005014
01000234
530A3192
00000000
02002012
00000000
25100000
C1050608
00000000
</Location>
        </Patch>


Disable unit leaving because of brave/faith


<Patch name="Disable Br/Fa leaving/warning">
<Location file="EVENT_REQUIRE_OUT" offset="50f4">
A0000010
00000000
</Location>
<Location file="EVENT_REQUIRE_OUT" offset="5488">
A0000010
00000000
</Location>
</Patch>


Mime Redesign v2.0

All Mimes start with 0 abilities in their mimic skillset. Whenever an ability flagged "mimicable" is used, it gets put into their skillset. In this manner they learn abilities over the course of the battle. Original Mimic functionality is deactivated.

Caveats/to be fixed:
-Max number of 16 abilities
-Item, charge, jump, throw, etc. cannot be mimic'd yet
-Katana abilities are usable regardless of inventory (I think). Katanas may not break
-Additional miscellaneous bugs that are bound to exist

<Patch name ="Choto's Mime Redesign v2.0 - Mime learns abilities used in battle">
<Description>
All Mimes in battle start with 0 abilities learned. When an ability set "mimicable" in FFTP is used, it is added to the

mimic skillset for all units.
Max number of skills is currently hardcoded to 16 regardless of variable setting.
</Description>
<Location file="BATTLE_BIN" offset="11a4a8"> <!-- Allows mimic to show up as a skillset -->
00000000
</Location>
<Location file="BATTLE_BIN" offset="11a8ec"> <!-- Set all mimic abilities learned -->
FBFF2225
13000334
80470508
00000000
</Location>
<Location file="BATTLE_BIN" offset="EAE00"> <!-- Set all mimic abilities learned -->
07004310
1300422C
03004010
00000000
40060608
00000000
43060608
00000000
51060608
00000000
</Location>
<Location file="SCUS_942_21" offset="4ad7c"> <!-- load learned abilities -->
90470508
18000334
</Location>
<Location file="BATTLE_BIN" offset="EAE40"> <!-- load learned abilities -->
08006414
00000000
1580033C
00206324
21186500
21186500
00006294
89690108
00000334
0680033C
61690108
944A6324
</Location>
<Location file="BATTLE_BIN" offset="5ec"><!--Mimic behaves as default skillset-->
d8510780
</Location>
<Location file="BATTLE_BIN" offset="128030"><!--Store learned ability in mimic skillset-->
A4470508
</Location>
<Location file="BATTLE_BIN" offset="EAE90"><!--Store learned ability in mimic skillset-->
1980013C
FCF5228C
00000000
1F004014
A8382124
00002394
0680013C
1B006010
C0100300
23104300
40100200
F0FB2124
21204100
05008290
1580013C
10004230
12004014
FC1F2290
00000000
2000462C
0E00C010
00000634
21282600
0020A494
00000000
09006410
2000C42C
FAFF8014
0200C624
00000000
40300200
2120C100
02004224
FC1F22A0
002083A4
0800E003
00000000
</Location>
<Location file="BATTLE_BIN" offset="eAFFC"><!--Store learned ability in mimic skillset-->
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
</Location>
<Location file="BATTLE_BIN" offset="00116BD8"><!--Mimic functionality-->
FFFF0234
</Location>
<Location file="BATTLE_BIN" offset="113980"><!--Item Throw range-->
ffff0334
</Location>
<Location file="BATTLE_BIN" offset="116b50"><!-- MP Usage-->
00000000
</Location>
<Location file="BATTLE_BIN" offset="127f4c"><!--Ability data setting-->
00000000
</Location>
<Location file="BATTLE_BIN" offset="11bf64"><!--Mimic Ability storing-->
06004014
</Location>
<Location file="BATTLE_BIN" offset="DA84c"><!--Spell Quote-->
00000000
</Location>
</Patch>
14
Help! / How does the game access auxilary files?
February 03, 2012, 05:43:29 pm
This is one topic I haven't been able to find any kind of info about.

Battle.bin and SCUS are accessed during battle right? How does the game load or initialize other files like effect files? The graphics for the battle menus, status effects, etc. are contained in Frame.bin, so wouldn't they have to be accessed as well? Do these files hold addresses in RAM like SCUS and Battle.bin?
15
Help! / How do ASM Tables work?
November 30, 2011, 02:10:23 pm
Ok, so i've noticed various hacks use tables, and I know square has its own tables in the game, but i'm wondering how they work. I was looking at Xifanie's compressed table proposal thread which shed a little bit of light on things, but they seem like they range from simple to potentially mindboggling.

It seems as though they store static data to be referenced throughout the game (Weapon Proc/Crit chance). Or, In the ARH's case, they store different conditions to be checked against the current conditions of the unit and allow X ability to be used if the conditions are the same. I guess i'll list my questions

1. Can they store dynamic data, or have their data changed in game without overwriting the values that are initially entered?

2. What exactly is the pointer table? I'm assuming it functions like unit data pointers?

3. Do the categories vary in length based on the number of subcategories (Parameters?) held therein?

4. Are the rows simply the number of offset rows taken up by the table?

5. Is this also how the game stores all of the data of each job, skillset, item stats, etc.?

Now would initializing the table in game look something like this? I'm using a situation where one unit is attacking another, and how the game would load the new chance for a critical hit. This is just how I see it in my head...

...
Load item ID
Load item WP
etc.
...
Jump to table (Weapon crit chance hack)
Look up crit chance based on Item ID, store in some register
// Return from table with weapon Crit chance
...
Jump to critical hit routine
// Use weapon crit instead of game's default crit chance
....

Any clarification would be much appreciated. Thanks!
16
PSX FFT Hacking / Equip Change question/idea
October 02, 2011, 10:16:11 am
Would it be possible to let equip change give a set amount of CT back? My thinking is that you could set it to give 100 CT back, allowing you to not use your turn whipping out a new sword
17
Help! / FFTPatcher ENTD box question
September 14, 2011, 09:37:57 am
I'm assuming this box has something to do with how many abilities the unit knows, but does anybody know exactly how it works?
18
Spriting / Choto's maybe sprites
September 12, 2011, 09:12:40 pm
Current Projects in order of priority:

Project for Elric - about 50% complete

Flan Sprite

1 Headed Dragon

new panther animation
19
Old Project Ideas / Choto's Unnamed Patch
August 26, 2011, 07:41:18 pm
Well this stale thread has been up for quite awhile and no updates. It's been many moons since my original post and my project is taking somewhat of a different direction, so i figured I'd document where my effort is going.

School has been taking up much of my time, so I haven't had the time to devote to making things happen yet, so I am instead focusing on things like plot, ability ideas, class ideas, etc.

One of my favorite things about FFT (and with most games I play) was the ability to build something from weak and pathetic to super-badass. So having the ability to reach god-like status will be a goal for my patch. I'm going to use Pride's job defense hack to real damage back quite a bit, and if I can figure out how to modify defense values through equipment/passives/etc. Hopefully we'll be able to make defensive roles. This will also allow you to stack offensive boosts to become as hard-hitting as you want without OHKO'ing everything you aim at. I certainly will be enhancing the enemy as well. In a nutshell, I want to be able to build different roles in order to systematically defeat the enemy (as may be required in certain fights) instead of brute-forcing your way by equipping 1 power wrist.

One of my favorite games has always been diablo 2, I think for the fact that the random drop system is exciting. I want to try to bring in that concept (if I can) by assigning multiple items to drop with a certain amount of chance, say, when you get a treasure chest. I will also be looking into making traps spawn in random places on the map, so that instead of farmable locations, they'll be random bonuses. Yes, they are theoretically still farmable, but hopefully by putting the chance for a useful item lower, it'll take more time to find. IDK, just brainstormin ^_^.

For jobs, I'd like to make each class 1. exciting 2. have a certain specialty. 3. have a "conditional" ability, so that you strive to create certain conditions throughout battle 4. mix well with other classes.

Again, I don't have time to post much else, but I will give an updated job list of those that i'm considering. I was just bothered by having an old topic with irrelevant information. When summer comes, I hope to have much more time to solidify the structure of the patch.


Tier 1
Soldier - Weapons master, uses Greatswords, equip x's become innate also gains a different ability based on weapon equipped

Chemist - Some offensive items, Maybe some retro noiseblaster/bioblastars

Archer - Overhauled abilities. Toying with expendable "arrow" items to enable abilities

Knight - defensive unit, overhauled abilities

Priest - semi-overhauled abilities. added "Exorcism" a much needed offensive spell. Also a
self-cast "faith" ability for better healing.

Wizard - semi-overhauled abilities. Retains Flare and gains Flare 2. High MA unit

Monk - adding a  "Buildup" mechanic. Can obtain dual wield as a passive (2 fists).

Dimension mage - Time mage with some cool new spells

Thief - trying to make steals a little more conditional to avoid overuse. Also added some cool offensive abilities. May make some kind of monetary gain from using a thief.

Elementalist - Kind of a gray unit atm. I made all elementals accessible all the time, they just seem bland though.

Berserker - Axe or mace+shield wielder. Gained some divine knight ability effects. Will be berserkable with increased stats, so you'd trade control for stat boost.

Mystic Knight - Abilities will be unlocked by learning mage abilities. Class will be unlocked by knight job-level. So you'd have to put in some work to unlock it, but they have some natural-seeming abilities. I know, they're kinda getting overdone, but I totally want one.

Valkyrie (Lancer/Dragoner) - Breath attacks get status effect procs, some other cool spear-abilities, and a limited range jump!

Samurai ( Abilities overhauled).... No freakin clue yet. Been trying to come up with ideas for sam's. I know they're going to 2 hand katanas, and katanas will have some great weapon-evade.

Archon - Will be given buff/debuff manipulation. Hopefully a buff steal ability. Thinking about a spell-steal ability that allows you to cast whatever the enemy is charging.

Warlock - Has an ability that adds: Undead/Oil/Sleep, and has abilities that require undead/oil/and sleep respectively. Again here i'm trying to let conditions dictate best choice of ability instead of "CAST NIGHT SWORD AGAIN".

(Hat tip to who made the patch with the "Dimensionalist" class, Raven I think?)


The rest of the concepts are mostly in disarray, with some organized topics here and there. I'll post more when I can, and as I settle on final decisions.
20
Help! / Proposition reward effects
August 26, 2011, 04:12:01 pm
I feel like this is kind of a long shot, but is there a way to make proposition rewards have an effect on your units or something like that? IE: Treasure X adds extra Y amount of bonus gil from battles... Treasure Z adds +1 PA to all units?
21
Help! / Game crashing during battle - opcode error
August 08, 2011, 08:27:56 am
Hello, I've been messing around with patches and FFTorgasm trying to make whatever changes my heart desires, but i keep getting an opcode error at different points, usually during battle. It is the same opcode error that Dome was getting when boco was attacking that i found in another thread. I tried to upload the screenshot but i'm not sure how to. the message says: COP0 Opcode 11 UNK.

Is this an error that's usually related to ASM hacks or FFTpatcher? A couple times I made changes to an existing 1.3 patch or easytype patch (The random unit gear goes with story progression hack in particular) and i remember hearing that modding existing patches often causes problems. If this is the problem, would there be a secure way to use these patches as a framework and still make my own changes to them?