• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
April 18, 2024, 08:28:13 pm

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.

Messages - Emmy

21
PSX FFT Hacking / Re: ASM Requests
July 19, 2017, 12:26:05 pm
Any of those status effect ones that need a settable CT, you will need to use Wall's slot for it if it's currently on a slot that doesn't use a CT.  The reason is that only the slots from Poison through Death sentence accept a CT, and changing this is a trickier problem than what I can currently do.  (anyone who can do this who wants to, feel free to figure it out)

Oil -> trouble can probably be done by modifying the elemental routines to no longer remove oil, and coded similarly to my "Tying it all Together 2" group (affects XA * YA routine).  Innocent reduces faith by a % could be done by rewriting my Faith/Innocent handling routine to set it to a % instead of to 0.  Neither of these particularly interests me enough to do myself, but if you know basic asm I could help you with these if you have any questions.  The rest of these look either impossible or outside of what I know how to do.

Quick/Ct 0 no longer use faith are both covered by this formula I wrote.  No reason to write multiple formulas for these, or any other stat affecting formulas that aren't using faith.


  <Patch name="Formula 18 = universal stat change at MA+X%">
    <Description>Directions for use: MA+X% is accuracy. Y is the stat that you want to affect.  Use Y= 16 for level up, 17 for level down, 18 for speed, 19 for CT, 20 for PA, 21 for MA, 22 for Brave, 23 for Faith. DO NOT USE OTHER VALUES FOR Y OR BAD THINGS WILL HAPPEN!  Use the status effect field as what you want for the bonus/penalty amount in hex.  Add +0x80 for bonus amounts (example: 81 = +1), otherwise numbers up to 0x7f are penalty amounts.  If changing CT, you can use FF for Quick and 7F for CT = 0.  Level up requires 80, and level down requires 1.  Do not use other values in combination with 16/17 for the status byte or bad things will happen!</Description>
    <Location file="BATTLE_BIN" offset="12229c">
59770508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f6d64">
E8FFBD27
1000BFAF
A122060C
00000000
0A004014
00000000
1980083C
FA380291
902D038D
FB380491
21084300
000024A0
01000534
000065A0
250065A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch> 
22
FF = default.  If you want to change it to something else, do for example 05 to turn it into a normal skillset.  Keep in mind too that some skillsets have additional hardcoding, such as Math skill (you want to remove slowdown and make it not ignore reflect) and Charge (if you change this, you need to remove the hardcoding that makes characters cancel their own spells upon moving).
23
You have to disable wall's vanilla effect.

Quote

0x124AE2
change 40 to 00

0x137F56
change 80 to 00

This makes the status itself blank, but allows the CT to be used elsewhere, or you can code your own status effect if you really wanted to.

24
If you don't have Excel, the old version of that hack still works for that purpose.  You can find it in Raven's Spreadsheets: http://ffhacktics.com/smf/index.php?topic=7271.0  These can open with other spreadsheet programs.
26
PSX FFT Hacking / Re: Rebalancing Jobs
June 27, 2017, 01:55:11 pm
First things first, just singling out a few classes with no context of what you want to do with the rest of the classes/game in general is meaningless.  Something can be "balanced" on paper and completely useless in practice.  For example, a skillset like vanilla's Oracle becomes balanced on paper but useless in practice if regular enemies die too easily to make status effects worthwhile and bosses are given blanket immunities.  So your first step if you're going to try to balance vanilla's classes (or any mod's classes, if you want the game to be more than just "punch shit") would be to scale the game such that non-damaging moves are worth the action to use. Assuming this has been done:

Calculator - Most mods (including my own) outright replace the class.  However, if you want to attempt to balance it, your best bet will take a bit of asm work.  Make the game choose skills for Math Skill from a single skillset instead of everything flagged with "math skill."  This will improve the ai's processing speed when using math skill and make it easier to balance what can be used.  If you can also attach a CT or MP cost to calculating, this'll be even better.

Bard/Dancer - The main draw to these classes and uniqueness comes from being able to sit in the corner and target the whole map.  While you personally might not like that playstyle, be careful of making their playstyle too functionally similar to more standard classes like Priest or Knight.  Getting rid of speed and CT affecting songs is recommended if you want to balance it better. 
27
Help! / Re: Two monsters using the same sprite!?
June 14, 2017, 05:55:51 pm
Did you change any of the portrait/palette/graphic under jobs?
28
Help! / Re: Forcing Item as secondary skillset
June 12, 2017, 06:07:58 pm
This is actually not too hard to do.  However, you need to think of the consequences of what this'll do (particularly with the ai) and how you want to restrict it.   AI has unlimited amounts of items.  So if you give item secondary to everyone or even to all humans, you will create a *very* sandbaggy ai, especially if you're keeping Phoenix Down and/or restorative items like Elixirs.  If any boss you have has access to Item and you still have Elixirs that can make for a very annoying fight. Also some monsters have soft locked the game if given item access (specifically, ones that don't have humanoid sprite sheets).

What I'd suggest as a solution that will reduce these kinds of issues and allow for free item usage among your players is to let a support skill (Throw Item, perhaps; or a blank if you think that would be too powerful) grant access to Item as well.  You can even give that support innately to all playable characters if you'd like, but that'll extend to the ai too so keep that in mind. :)
29
PSX FFT Hacking / Re: ASM Requests
June 06, 2017, 06:34:21 pm
I might be able to do it but there's no guarantees. :(

**Edit** I can't test this easily because it's incompatible with MT, but you can try this out and if it works, you're in luck! :)


  <Patch name="Charge CT = CT - Speed">
    <Description>Charge speed scales with unit speed. Original code Made by TFM, modified by Emmy.</Description>
    <Location file="BATTLE_BIN" offset="e937c">
      0C004390
      05004290
      38007292 <!-- Change stat used here -->
      40005730
      0500E012
      00000000
      22187200
      02006104
      00000000
      21180000
      14F20508
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e93d0">
      05008390
      0C008290
      40006430
      0E008010
      00000000
      B000A48F
      C0011034
      18009000
      12200000
      1980103C
      CC081036
      21209000
      38008490 <!-- Change stat used here -->
      00000000
      22104400
      02004104
      00000000
      21100000
      94060608
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="115848">
      df400508
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11aa48">
      f4400508
      00000000
    </Location>
  </Patch>
30
Help! / Re: Fort Zeakden Visual Bug
June 05, 2017, 06:18:34 pm
When you changed the units that were on the map, did you change Golagros to the calculator/wizard sprite?  That's probably where the sprite limit glitch is happening if you did not.  Alternately, if any units that are hidden exceed the limit.
31
Most of the animations in MT use 01, 2c, 00 on the animations tab.  This is the spell charging animation.
32
Very easy if you don't care about animations.  Just click "learn on hit" and unclick "learn with jp" for each relevant skill, and make a skillset of them.  Note that if you do care about animations, humanoids using monster skills and vice versa can look kinda funny.
33
I don't think such a thing has been made, however Xifanie's hack might help you.  Will make button mashing through these scenes MUCH faster:


  <Patch name="Cross Skip v3">
    <Description>Holding X (Cross button), will fly you through dialog text as if you were mashing the button.</Description>
    <Location file="BATTLE_BIN" offset="CA6C4">
      1780023C
      D097428C
      004C0508
      0480033C
    </Location>
    <Location file="BATTLE_BIN" offset="CA33C">
      054C0508
    </Location>
    <Location file="BATTLE_BIN" offset="C8BC8">
      1E4C0508
      0480023C
    </Location>
    <Location file="BATTLE_BIN" offset="CB6F0">
      0E4C0508
      032C0500
      40000831
      02000015
      25400000
      A800A897
      1780013C
      D4DA37A4
      D6DA3EA4
      D8DA30A4
      E0DA22A4
      E2DA23A4
    </Location>
    <Location file="EVENT_ETC_OUT" offset="210">
      124C050C
      1780013C
    </Location>
    <Location file="EVENT_ETC_OUT" offset="258">
      124C050C
      1780013C
    </Location>
    <Location file="EVENT_ETC_OUT" offset="2A0">
      124C050C
      1780013C
    </Location>
    <Location file="EVENT_ETC_OUT" offset="2E4">
      124C050C
      1780013C
    </Location>
    <Location file="EVENT_ETC_OUT" offset="320">
      124C050C
      1780013C
    </Location>
    <Location file="BATTLE_BIN" offset="EC000">
      4459638C
      20014230
      40006330
      B5C50408
      25104300
      0480023C
      4459428C
      6400278D
      40004230
      02004010
      FC00E230
      03004734
      D1C40408
      00000000
      0480083C
      4459088D
      BEC90408
      00000000
      54E4238C
      00000000
      07006014
      0480023C
      4459428C
      00000000
      40004230
      02004010
      00000000
      FF7F1026
      0800E003
      3840228C
      4459428C
      00000000
      40004230
      04004010
      1680023C
      25A80000
      1780013C
      04A420A4
      F4BE0408
      885F428C
    </Location>
  </Patch>
34
Help! / Re: Any newbie dictionary?
May 16, 2017, 07:54:40 pm
ASM = Assembly language.  If you want to make FFT do more than just what could be done with Patcher, and what you want to see done hasn't been done yet, you're going to have to learn this. 

ENTD = the tab in Patcher that allows you to edit the formation of any given battle or event.
35
Help! / Re: Monsters and Equipment? Possible?
April 25, 2017, 05:45:01 pm
This is an issue of superfluous checks for monster littered about the code.  I found over a dozen instances of these checks, and removing the code was still not enough, which tells me that there's more out there. :(  Sorry :(
36
Help! / Re: Modifying damage formulas for abilities
April 25, 2017, 05:42:42 pm
If you are willing to switch to psx version, this should work:

  <Patch name="Formula 64 = 2x damage if using spear">
    <Description>Only works on PSX version!</Description>
    <Location file="BATTLE_BIN" offset="11eee0">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11eee8">
      00000000
    </Location>
  </Patch>

Test it just to make sure.  And as Elric said, no one writes asm for Wotl.  Formula changes can't be done in patcher, they require asm.
37
By request, posting here the Monster Tactics hack folder.  :)  This includes many updated versions of my hacks, new hacks, and modified versions of others' hacks. :)  It also includes other people's hacks, since it is what is used in MT and not just my own stuff.
38
Suggestion: Any chance that you can make Patcher more consistent with its use of hex and decimal values?  Ideal: an option to toggle between use of hex/decimal values for all boxes under "file" (where the program will convert between them if you click the other option).  If that's not possible, make it only use hex?
39
I know this is kind of late to the discussion, but I managed to edit this code to not require a r/s/m slot.  This is useful if you want to turn 0x12 into an actual skillset, still have jump, and not tie up a blank r/s/m slot for its use. Posting it here in case of a new user searching for this info.


<Patch name="Action menu expansion">
    <Description>Grants access to jump (0x34) if unit has skillset 0x12.  Original code by Pride.</Description>
    <Location file="BATTLE_BIN" offset="e9994">
      12000934
      0300A910
      34000234
      0300E914
      00000000
      000002A2
      01001026
      FF000234
      000002A2
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e99c0">
      E8FFBD27
      1000BFAF
      12004392
      13004592
      12000934
      03006910
      00000000
      0500A914
      00000000
      21302002
      7E69060C
      34000534
      12004392
      1000BF8F
      1800BD27
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11a4f0">
      6542050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="13347c">
      7042050C
      00000000
    </Location>
  </Patch>


Also managed to change Geomancy to do what I was asking about in this topic a while ago (using a single formula instead of multiple ability slots/a skillset).  I included both the standard (calculated from attacker slot) and reverse (calculated from target slot) versions, along with all other required code.  This code is long/can use some improvement, but here we go:


  <Patch name="Formula 19 = Reverse Geomancy">
    <Description>Requires Gimmick elemental routine. Requires Elemental Tables. Requires Tile Location calculation.  Will calculate which element and status effect based on the tile that the target is standing on.</Description>
    <Location file="BATTLE_BIN" offset="1222a4">
AA790508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f76a8">
E8FFBD27
1000BFAF
5017060C
00000000
7E21060C
00000000
3E19060C
00000000
5A19060C
00000000
19800A3C
982D448D
9717060C
00000000
1680013C
21082200
18E62490
EC56050C
00000000
3F1C060C
00000000
3021060C
00000000
16004014
00000000
19800A3C
902D498D
982D448D
00002291
00000000
0F004010
00000000
9717060C
00000000
1680053C
40100200
2128A200
48E6A390
49E6A690
06006010
00000000
25002291
21082301
000026A0
08004234
250022A1
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

  <Patch name="Formula 57 = Geomancy">
    <Description>Requires Gimmick elemental routine. Requires Elemental Tables. Requires Tile Location calculation.  Will calculate which element and status effect based on the tile that the attacker is standing on.</Description>
    <Location file="BATTLE_BIN" offset="123758">
E8FFBD27
1000BFAF
5017060C
00000000
D121060C
00000000
3E19060C
00000000
5A19060C
00000000
19800A3C
942D448D
9717060C
00000000
1680013C
21082200
18E62490
EC56050C
00000000
3F1C060C
00000000
3021060C
00000000
16004014
00000000
19800A3C
902D498D
942D448D
00002291
00000000
0F004010
00000000
9717060C
00000000
1680053C
40100200
2128A200
48E6A390
49E6A690
06006010
00000000
25002291
21082301
000026A0
08004234
250022A1
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

  <Patch name="Gimmick Elemental ability routine">
    <Description>Requires Oil/Undead. Requires r4 = new element of ability</Description>
    <Location file="BATTLE_BIN" offset="eebb0">
E8FFBD27
1000BFAF
19800A3C
942D4B8D
982D4C8D
71006291
902D4D8D
24104400
07004010
00000000
0400A395
00000000
80100300
21104300
82100200
0400A3A5
5A008591
00000000
8000A330
09006010
80008230
07004010
00000000
2200A291
2500A391
80004234
08006334
2200A2A1
2500A3A1
4000A330
07006010
08008230
05004010
00000000
9013060C
00000000
03000010
00000000
3361050C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


  <Patch name="Map location/tile calculation">
    <Description>Requires r4 = data pointer of character whose tile you're calculating.  Returns r2 = tile type ID that unit is on. Replaces Store PA and WP+Y (Move this to free space if you are still using these formulas!)</Description>
    <Location file="BATTLE_BIN" offset="11ee5c">
E8FFBD27
1000BFAF
2804060C
00000000
C0100200
1980013C
21082200
CCF82290
00000000
3F004230
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

<Patch name="Elemental tables">
    <Description>First table is the element used by the attack:
0x80 = Fire, 0x40 = Lightning, 0x20 = Ice, 0x10 = Wind, 0x08 = Earth, 0x04 = Water, 0x02 = Holy, 0x01 = Dark
Second table is a double table.  First byte is the status group byte and second byte is the status inflicted (0x1b - 0x1f, current action data pointer).  Multiple statuses/elements are possible but must be on same byte! :)  Use 0000 for no status.
</Description>
    <Location file="BATTLE_BIN" offset="f7618">
02100240
40200808
02040404
80200404
04048002
01081008
00000220
01010801
10100840
40011040
02808010
080410
    </Location>
    <Location file="BATTLE_BIN" offset="f7648">
1c10
1d08
1d08
1e04
1e02
1c08
1c10
1c80
1f40
1f08
1c20
1e80
1c10
1f02
1c04
1c08
1f01
1d02
1d80
2009
1f40
1c80
1f20
1c08
0000
0000
1b80
1f80
1b20
1c02
1e20
1d02
1f04
1d90
1e04
1c80
1c08
1f20
1c08
1f0c
1c02
1b20
1f04
2260
1b10
1b80
1b10
    </Location>
  </Patch>

  <Patch name="Oil/Undead">
    <Description>Oil = Weak fire, Undead = Absorb Dark/Weak Holy.  Expansion of FFMaster's Oil Hack.  Credit also goes to Glain for fixing it. :)</Description>
    <Location file="BATTLE_BIN" offset="11ffe0">
3361050C
    </Location>
    <Location file="BATTLE_BIN" offset="1200e0">
3361050C
    </Location>
    <Location file="BATTLE_BIN" offset="f14cc">
1980023C
982D428C
E8FFBD27
5A004590
1000BFAF
8000A130
6D004590
58004690
02002010
9C014194
7F00A530
1000C330
03006010
00000000
0100A534
FD00A530
24188500
02006010
00042334
9C0143A4
5A004190
6E004590
80002130
02002010
00000000
7F00A530
1000C130
02002010
00000000
FC00A530
24188500
05006010
00000000
9013060C
00000000
72610508
00000000
6F004590
02002010
90014194
0300A530
24188500
02006010
43080100
900141A4
5A004190
70004590
80002130
02002010
90014194
8000A534
1000C330
03006010
00000000
FE00A530
0200A534
24188500
05006010
40080100
9C014394
900141A4
00086334
9C0143A4
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


  <Patch name="Counter Flood uses Flood Ball">
    <Description>This allows for Counter Flood to work by using an ability instead of vanilla geomancy.  If you changed geomancy with my other codes, this is required to make Counter Flood work.</Description>
    <Location file="SCUS_942_21" offset="4f3df">
      29
    </Location>
    <Location file="BATTLE_BIN" offset="11731c">
      21202002
      0B000534
      F7F80508
      7E000634
    </Location>
  </Patch>
40
Help! / Re: Making jobs
March 31, 2017, 04:05:30 pm
Assuming that you haven't edited events yet, and that you're modding the PSX version, put your special characters in ENTD entry 0x188 (Military Academy).  Here you can change their names, classes, sprite used, level, etc.