• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
November 10, 2024, 02:24:25 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.


Total Request ASM: All armor replaced by shoes

Started by pokeytax, January 02, 2011, 10:16:01 am

pokeytax

Quote from: Dome on October 24, 2011, 04:06:43 am
Is there any way to "Fix" this?


Yes, but it's a formula hack so not top of the stack.

Quote
1) Make certain skills require percentages of MP instead of a straight value of MP.
2) Immolation Status: deals fire damage to self and those around the immolated.
3) Minimum range editing for skills and weapons alike.


1) Percentages of current MP? Max MP? Can't deny I do want this one myself and it doesn't sound undoable.
2) a lot of work for something specific to a single patch
3) not sure what you mean

Quote
I wanted to remove the Dragon Target requirement of her skills (also nerfing and putting some costs to them).


This is a formula edit so again it's low priority. I know having rigid formulas is tough but if I ever touch this stuff it's going to be by doing a flexible editor, every single patch needs its own one-offs.

Quote
when you choose "New Game" it skips all the introduction stuff (text overlay intro, name insert, birthdate, opening movie)


I really want this but it involves wading through a lot of system calls and other Complicated Stuff. I'm not giving up, though - I would like to learn about the kernel anyway.

Quote*Base Raw Stat/Zodiac selection on something other than gender and species.


That is interesting, since as you note they seem pointless at present, especially monster preraw. But stuff even the requester isn't interested in using isn't a high priority.
  • Modding version: PSX

formerdeathcorps

October 25, 2011, 12:49:52 am #301 Last Edit: October 25, 2011, 01:03:44 am by formerdeathcorps
Quote
I know having rigid formulas is tough but if I ever touch this stuff it's going to be by doing a flexible editor, every single patch needs its own one-offs.


As efficient a system as Raven and I managed to design, I will tell you this:
1) For virtually every generalized patch, you'll create far more features than needed.
2) The more basic mechanical aspects (XA modification) are always easier to code than the smaller things (proc status/knockback).
3) Other people always generate crazier ideas than you do.
4) If you want a flexible editor not in ASM, you need a scripting language and those eat up large amounts of space.

In my own patches, I only code what I need, rather than code extra material.  If it weren't for the fact MIPS is not anyone's native language, I'd rather abandon the idea of a generalized hack altogether, and make specific ASMs for specific patches.  If I really wanted to make it custom, I'd do what I did for weapons, put all the possible XA variants used in FFT in one routine and branch accordingly within the routine (while using the free space to create novel XA).  My hack would set the branches to vanilla's default, but that would be editable by spreadsheet (think of my weapon formula editor).  That's always better than a scripting language, I think.

3) brings up another point.  You'll never be done, and too often your brainstorming sessions will yield features of increasingly little use, but you then stumble across a gem that forces you to remake your implementation.  The result is an ever larger hack with increasingly less organization.  Personally, if I had to use massive table space because I exceeded all the known free bytes in ability and weapon data space, then I'd know that my hack went too far.  In such a case, it would be better to make a weapon formula hack-style spreadsheet with X features out of Y total, done in mix-and-match style.  The addresses for branches should be calculated by the spreadsheet.
For example, we could have DEX/STR/CON/INT/CHA/DEF, but I think it's reasonable to assume if someone wanted a hack like that, they wouldn't need PA/MA/SP, so instead of branching out to free space, I'd just modify the existing stats that become redundant under such a model.  Thus, there should be no reason for such a hack to have its own "dedicated" spot in Kanji space; instead, it would override any other mutually exclusive features, leaving it up to the user to pick which collection of hacks he wants.  (Yes, I'm aware this means you can't have lots of extra numbers on your screen and you can't be as "specific", but usually it's only the ASMers and hardcore D&D players who even want such systems; most people get really confused trying to remember what 10 different numbers do, especially if some of them have only tangential relevance).
The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

MysticKnightFF5

1) Max MP
2) Just an idea, thought someone might like it.
3) It would be nice to apply minimum range from bows/guns/crossbows to skills, as well as being given the ability to change what the minimum range value is.


FFMaster

Monkey Grip will likely bug out in Equip Change if I recall my notes correctly. There is a section in BATTLE.BIN you will need to edit as well, similar to the parts in WORLD.BIN. An easy check would be to equip someone with Monkey Grip and no offhand, and see what happens in battle.
  • Modding version: Other/Unknown
☢ CAUTION CAUTION ☢ CAUTION CAUTION ☢

pokeytax

Quote from: FFMaster on October 26, 2011, 06:28:47 pm
Monkey Grip will likely bug out in Equip Change if I recall my notes correctly. There is a section in BATTLE.BIN you will need to edit as well, similar to the parts in WORLD.BIN. An easy check would be to equip someone with Monkey Grip and no offhand, and see what happens in battle.


Yeah, you are 100% correct Equip Change will screw up. I neglected that because I hate Equip Change but at some point it needs doing.
  • Modding version: PSX

Pickle Girl Fanboy

October 27, 2011, 02:24:12 pm #306 Last Edit: October 27, 2011, 02:27:24 pm by Pickle Girl Fanboy
Ideas for hacks:
*Every time Blade Grasp triggers, reduce Brave by (n).
*Every time any Reaction dependent on Brave triggers, reduce Brave by (n).
*A new reaction: Every time you take HP damage from a faith-based ability, or you are dealt a negative status by a faith based ability, reduce faith by (n).

FYI, the only reason I'm "not interested" in seeing the hacks I previously mentioned (the pre-raw stats are random ones, as well as attaching things to zodiac signs) is because I have no time to use them.  Had I time, I would totally use the shit out of them.  So, while they are back-burner material for sure, please don't dismiss them entirely.

Atma

I'm curious... with the hack to edit the failure rate of Teleport past the unit's move... is there a way to display the range of Teleport?  What i'm thinking is only allowing 100% chance in range and 0% beyond.  Essentially using it much like Fly, but with the Teleport animation.  I don't want the entire screen covered with selectable spaces, when i can only go so far.  Possible?
My name is Atma... I am pure energy... and as ancient as the cosmos.

Pickle Girl Fanboy

Random Thought: I was just talking with BP, and he said that TO - LUCT for the PSP has the the feature I'm gonna mention.

Currently, how far you move has no bearing on the amount of the CT penalty movement has.  That is, if you move, you won't get the +20 CT bonus.  But what if how far you move, in relation to the total range in which you can move, somehow influences the amount of bonus CT you get?

Like, if you have 10 move, and you move 1 square, then you have only used 10% of your total movement range, and, as such, you should get 90% of the Movement CT Bonus, which means you'd get 18 bonus CT.

I'm not sure it'd be a good idea, since the AI is already stupid enough, and it would give the player another exploit, but still, it sounds awesome.  What do you think of it?

RandMuadDib

I will show you the power of SARDIIIIINES!!!!

Austin

I'm using your inherent rsm hack right now and I noticed a (really) minor inconsistency. With vanilla's inherent abilities like item throw on chemist if you have item throw equipped and swap your job over to chemist, the game automatically unequips item throw. With any of the ones you do using this they'll stay equipped though. Figured I might as well let you know since I'm using it lol.

Thanks for working on these btw, I'm using a few of your other asms and they all work great.
  • Modding version: PSX

Pickle Girl Fanboy

About previewability for the new item attributes: the routine that generates the stuff you see in menus doesn't "read" the actual item attributes, does it?  Or you don't know where the "preview" routine is?

Pride

It reads the actual item attributes.


Item Equip Preview
r17 = 0x801f0688 ; r18 = 0x801f0620
00122f9c: 27bdffd8 addiu r29,r29,0xffd8
00122fa0: afb00010 sw r16,0x0010(r29)
00122fa4: 00808021 addu r16,r4,r0
00122fa8: afb20018 sw r18,0x0018(r29)
00122fac: 00a09021 addu r18,r5,r0
00122fb0: afb10014 sw r17,0x0014(r29)
00122fb4: 00c08821 addu r17,r6,r0
00122fb8: afb3001c sw r19,0x001c(r29)
00122fbc: 00e09821 addu r19,r7,r0
00122fc0: 02402021 addu r4,r18,r0
00122fc4: afbf0020 sw r31,0x0020(r29)
00122fc8: 0c048b90 jal 0x00122e40 Clear data from r17 and r18
00122fcc: 02202821 addu r5,r17,r0
00122fd0: 321003ff andi r16,r16,0x03ff
00122fd4: 2602ffff addiu r2,r16,0xffff
00122fd8: 2c4200fd sltiu r2,r2,0x00fd
00122fdc: 10400073 beq r2,r0,0x001231ac Branch if equiped item is a "Chemist Item"
00122fe0: 00101040 sll r2,r16,0x01 Item ID * 2
00122fe4: 00501021 addu r2,r2,r16 Item ID * 3
00122fe8: 00021880 sll r3,r2,0x02 Item ID * C
00122fec: 3c018006 lui r1,0x8006 0x80060000
00122ff0: 00230821 addu r1,r1,r3 0x80060000 + Item ID * C
00122ff4: 90242ebf lbu r4,0x2ebf(r1) Load Item Attributes
00122ff8: 2a020080 slti r2,r16,0x0080
00122ffc: 10400014 beq r2,r0,0x00123050 Branch if equiped Item is not a Weapon
00123000: 2a020090 slti r2,r16,0x0090
00123004: 3c018006 lui r1,0x8006
00123008: 00230821 addu r1,r1,r3
0012300c: 90222ebc lbu r2,0x2ebc(r1) Load Item Second Table ID
00123010: 00000000 nop
00123014: 000210c0 sll r2,r2,0x03 ID * 8
00123018: 3c018006 lui r1,0x8006 0x80060000
0012301c: 00220821 addu r1,r1,r2 0x80060000 + ID * 8
00123020: 90233abc lbu r3,0x3abc(r1) Load Item's Weapon Power
00123024: 3c018006 lui r1,0x8006 0x80060000
00123028: 00220821 addu r1,r1,r2
0012302c: 90223abd lbu r2,0x3abd(r1) Load Item's Weapon Evade
00123030: 12600004 beq r19,r0,0x00123044 Branch if r19 (addu r19,r7,r0) = 0
00123034: 00000000 nop
00123038: a6230008 sh r3,0x0008(r17) Store Weapon Power into address at r17
0012303c: 08048c4e j 0x00123138
00123040: a622000c sh r2,0x000c(r17) Store Evade into address at r17
00123044: a6230006 sh r3,0x0006(r17) Store Weapon Power into address at r17
00123048: 08048c4e j 0x00123138
0012304c: a622000a sh r2,0x000a(r17) Store Evade into address at r17
00123050: 10400015 beq r2,r0,0x001230a8 Branch if equipment is not a shield
00123054: 2a0200d0 slti r2,r16,0x00d0
00123058: 3c018006 lui r1,0x8006 0x80060000
0012305c: 00230821 addu r1,r1,r3 0x80060000 + Item ID * C
00123060: 90222ebc lbu r2,0x2ebc(r1) Load Item Second Table ID
00123064: 00000000 nop
00123068: 00021040 sll r2,r2,0x01 Second Table ID * 2
0012306c: 3c018006 lui r1,0x8006 0x80060000
00123070: 00220821 addu r1,r1,r2 0x80060000 + Second Table ID * 2
00123074: 90223eb8 lbu r2,0x3eb8(r1) Load Shield Physical Evade
00123078: 00000000 nop
0012307c: a6220016 sh r2,0x0016(r17) Store Shield Physical Evade into address at r17
00123080: 3c018006 lui r1,0x8006 0x80060000
00123084: 00230821 addu r1,r1,r3 0x80060000 + Item ID * C
00123088: 90222ebc lbu r2,0x2ebc(r1) Load Item Second Table ID
0012308c: 00000000 nop
00123090: 00021040 sll r2,r2,0x01 Second Table ID * 2
00123094: 3c018006 lui r1,0x8006 0x80060000
00123098: 00220821 addu r1,r1,r2 0x80060000 + Second Table ID * 2
0012309c: 90223eb9 lbu r2,0x3eb9(r1) Load Shield Magical Evade
001230a0: 08048c4e j 0x00123138
001230a4: a6220020 sh r2,0x0020(r17) Store Shield Magical Evade into address at r17
001230a8: 1040000c beq r2,r0,0x001230dc Branch if Item is not Headgear or Bodygear
001230ac: 2602ff70 addiu r2,r16,0xff70 Item ID - 0x8F
001230b0: 00021040 sll r2,r2,0x01 Item ID * 2
001230b4: 3c018006 lui r1,0x8006 0x80060000
001230b8: 00220821 addu r1,r1,r2 0x80060000 + Item ID * 2
001230bc: 90233ed8 lbu r3,0x3ed8(r1) Load Item HP Bonus
001230c0: 00000000 nop
001230c4: a643000e sh r3,0x000e(r18) Store Item HP Bonus into address at r18
001230c8: 3c018006 lui r1,0x8006 0x80060000
001230cc: 00220821 addu r1,r1,r2 0x80060000 + Item ID * 2
001230d0: 90223ed9 lbu r2,0x3ed9(r1) Load Item MP Bonus
001230d4: 08048c4e j 0x00123138
001230d8: a6420014 sh r2,0x0014(r18) Store Item MP Bonus into address at r18
001230dc: 2a0200f0 slti r2,r16,0x00f0
001230e0: 10400016 beq r2,r0,0x0012313c Branch if Item is not an accessory
001230e4: 00041040 sll r2,r4,0x01 Item Attributes ID (?) * 2
001230e8: 3c018006 lui r1,0x8006 0x80060000
001230ec: 00230821 addu r1,r1,r3 0x80060000 + Item ID * 12
001230f0: 90222ebc lbu r2,0x2ebc(r1) Load Item Second Table ID
001230f4: 00000000 nop
001230f8: 00021040 sll r2,r2,0x01 Second Table ID * 2
001230fc: 3c018006 lui r1,0x8006 0x80060000
00123100: 00220821 addu r1,r1,r2 0x80060000 + Second Table ID * 2
00123104: 90223f58 lbu r2,0x3f58(r1) Load Accessory Physical Evade
00123108: 00000000 nop
0012310c: a6220018 sh r2,0x0018(r17) Store Physical Evade into address at r17
00123110: 3c018006 lui r1,0x8006 0x80060000
00123114: 00230821 addu r1,r1,r3 0x80060000 + Item ID * 12
00123118: 90222ebc lbu r2,0x2ebc(r1) Load Item Second Table ID
0012311c: 00000000 nop
00123120: 00021040 sll r2,r2,0x01 Item Second Table ID * 2
00123124: 3c018006 lui r1,0x8006 0x80060000
00123128: 00220821 addu r1,r1,r2 0x80060000 + Second Table ID * 2
0012312c: 90223f59 lbu r2,0x3f59(r1) Load Accessory Magical Evade
00123130: 00000000 nop
00123134: a6220022 sh r2,0x0022(r17) Store Magical Evade into address at r17
00123138: 00041040 sll r2,r4,0x01 Item Attributes ID (?) * 2
0012313c: 00441021 addu r2,r2,r4 ID * 3
00123140: 000210c0 sll r2,r2,0x03 ID * 18
00123144: 00441021 addu r2,r2,r4 ID * 19
00123148: 3c018006 lui r1,0x8006 0x80060000
0012314c: 00220821 addu r1,r1,r2 0x80060000 + Item Attributes ID * 19
00123150: 902342c7 lbu r3,0x42c7(r1) Load Attribute's Move
00123154: 00000000 nop
00123158: a6230000 sh r3,0x0000(r17) Store Move into address at r17
0012315c: 3c018006 lui r1,0x8006 0x80060000
00123160: 00220821 addu r1,r1,r2 0x80060000 + Item Attributes ID * 19
00123164: 902342c6 lbu r3,0x42c6(r1) Load Attribute's Speed
00123168: 00000000 nop
0012316c: a6230002 sh r3,0x0002(r17) Store Speed into address at r17
00123170: 3c018006 lui r1,0x8006 0x80060000
00123174: 00220821 addu r1,r1,r2 0x80060000 + Item Attributes ID * 19
00123178: 902342c8 lbu r3,0x42c8(r1) Load Attribute's Jump
0012317c: 00000000 nop
00123180: a6230004 sh r3,0x0004(r17) Store Jump into address at r17
00123184: 3c018006 lui r1,0x8006 0x80060000
00123188: 00220821 addu r1,r1,r2 0x80060000 + Item Attributes ID * 19
0012318c: 902342c4 lbu r3,0x42c4(r1) Load Attribute's PA
00123190: 00000000 nop
00123194: a6230012 sh r3,0x0012(r17) Store PA into address at r17
00123198: 3c018006 lui r1,0x8006 0x80060000
0012319c: 00220821 addu r1,r1,r2 0x80060000 + Item Attributes ID * 19
001231a0: 902242c5 lbu r2,0x42c5(r1) Load Attribute's MA
001231a4: 00000000 nop
001231a8: a622001c sh r2,0x001c(r17) Store MA into address at r17
001231ac: 8fbf0020 lw r31,0x0020(r29)
001231b0: 8fb3001c lw r19,0x001c(r29)
001231b4: 8fb20018 lw r18,0x0018(r29)
001231b8: 8fb10014 lw r17,0x0014(r29)
001231bc: 8fb00010 lw r16,0x0010(r29)
001231c0: 27bd0028 addiu r29,r29,0x0028
001231c4: 03e00008 jr r31
001231c8: 00000000 nop
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Glain

Couldn't help but notice...

0012313c: 00441021 addu r2,r2,r4      ID * 3
00123140: 000210c0 sll r2,r2,0x03     ID * 18 24
00123144: 00441021 addu r2,r2,r4      ID * 19 25

There are 25, not 19, bytes in each Item Attributes entry (0x642c4), so this would make sense. Coincidentally (or maybe not) 25 = 0x19, which could be where the 19 came from?

Edit - Actually, I think SA just listed the 18/19 as hex without any prefix at all... that probably wasn't even a mistake. I think he's just becoming a robot or something. :)
  • Modding version: Other/Unknown

Pride

  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Pickle Girl Fanboy

So the problem with previewability is telling it to treat the new item attribute table the same as the old one?

Edrin

ASM Request:

Choose job at Soldier office?

I am looking to make totally distinct branches of jobs to avoid jp sharing issues, but that requires me to start a character on specific jobs.

Timbo

Use RAD instead. RAD can allow you to add maximum level job requirements aka "less than level" job requirments. Lets say you want three specific branches: Warrior, Mage, and Thief. Each character will start only with access to Freelancer. The other 3 classes require level 2 in Freelancer to unlock. What more you'll need to set them to require less than level 2 for the other two classes.

Example:

Warrior requires: 1 Freelancer, "Less Than" 2 Thief, and "Less Than" 2 Mage.
Mage requires: 1 Freelancer, "Less Than" 2 Thief, and "Less Than" 2 Warrior.
Thief requires: 1 Freelancer, "Less Than" 2 Warrior, and "Less Than" 2 Mage.

What happens is that when you level up your Thief to level 2 you'll lose access to the Warrior and the Mage class permanently. The Freelancer part is pretty much a necessity though. You can't set job requirements for the Squire, so it can never truly go away. You could however drop it from the requirements if you want to have a branch that all characters can access.
  • Modding version: PSX
  • Discord username: Timbo

Edrin

The only problem with that is bleedover jp locking your classes unintentionally. Even if you get your desired tree to begin with, bleedover jp will still affect the units and eventually shut down the last tree too, leaving you with nothing.

Alternatively a hack to turn off bleedover jp per class could work.