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

Razele's ASM Hacks

Started by Razele, January 01, 2009, 02:08:08 pm

VincentCraven

January 18, 2009, 01:43:18 pm #80 Last Edit: December 31, 1969, 07:00:00 pm by VincentCraven
As far as Asmo told me, those pictures confirm what he wanted: Transparent units to be able to evade.
I changed jobs and that has made all the difference.

Asmo X

January 18, 2009, 01:48:35 pm #81 Last Edit: December 31, 1969, 07:00:00 pm by Asmo X
Yeah thanks. That settles that. Moving on.

Vanya

January 18, 2009, 03:38:40 pm #82 Last Edit: December 31, 1969, 07:00:00 pm by Vanya
I'm very impressed by the item limit hack. Bravo! ^_^

I have one for the Transparent status that might make it more in line with the FF6 version of it. Could you make transparent units have 0% evade when being targeted by magic?

And I have another that might make an interesting challenge for you. Could you make the 'Wall' status last only one turn and only block physical attacks & skills? Basically, make 'Wall' act like 'Defending' but have reduce physical damage by 100%.

Thanks for all of your awesome hacks! ^_^
  • Modding version: Other/Unknown
¯\(°_0)/¯

Xifanie

January 18, 2009, 05:27:15 pm #83 Last Edit: December 31, 1969, 07:00:00 pm by Xifanie
I wasn't able to contact you on IRC so I'll ask it here.

I haven't been able to figure this yet  but I need to find how the game knows the next location for the next storyline event.

This is the only info I have so far:
0x800578D4 Next storyline event
0x8009F254 Current World Map location
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

Razele

January 19, 2009, 11:47:59 am #84 Last Edit: December 31, 1969, 07:00:00 pm by Razele
- Float status weak against Wind
- Oil status weak against Fire

QuoteI wasn't able to contact you on IRC so I'll ask it here.

I haven't been able to figure this yet but I need to find how the game knows the next location for the next storyline event.

This is the only info I have so far:
0x800578D4 Next storyline event
0x8009F254 Current World Map location

Need more info about it, like city / battle list.

Important note regarding space limitation in BATTLE.BIN :
To write custom asm hack (ex : Defending hack, max items per battle, etc ) I require space in BATTLE.BIN
According to Zodiac, the safe area to write custom asm instruction in BATTLE.BIN : 0xEBD54 - 0xECB8B (3,640 bytes)
From that space, I only take half of them, 0xEC470 - 0xECB8B (1,820 bytes)
0xEBD54 -  0xEC46F is reserved for other member, like Zodiac or SentinelBlade.
And, I already use 728 bytes, or 40% of the space.
If one custom asm hack requires 10 asm instruction, or 40 bytes, that means we have 27 asm hacks left.
Not all asm hack requires additional space in BATTLE.BIN, some simple asm hack like "Every monster is mountable", or
"Equip Spear - Equip Rod + Staff + Instrument + Dictionary" doesn't eat space in BATTLE.BIN

philsov

January 19, 2009, 01:44:57 pm #85 Last Edit: December 31, 1969, 07:00:00 pm by philsov
This is extremely low priority, but I've always been curious about this:

When a mime mimics a spell, and it triggers Critical Quick, the unit's CT is set to 154.  And its only under these circumstances, as far as I know.  Otherwise its the standard 100 CT.  Any insight as to the cause?
Just another rebel plotting rebellion.

Dominic NY18

January 19, 2009, 02:10:27 pm #86 Last Edit: December 31, 1969, 07:00:00 pm by Dominic NY18
I thought it might have been impossible. May I ask then is it possible to make Hamedo trigger against monster attacks?

Archael

January 19, 2009, 02:20:34 pm #87 Last Edit: December 31, 1969, 07:00:00 pm by Archael
Quote from: "Dominic NY18"I thought it might have been impossible. May I ask then is it possible to make Hamedo trigger against monster attacks?



IIRC AFAIK you can already do that by changing the monster attack / skill's formula to a weapon formula

^ ^

might be wrong tho

Razele

January 20, 2009, 01:30:15 am #88 Last Edit: December 31, 1969, 07:00:00 pm by Razele
QuoteWhen a mime mimics a spell, and it triggers Critical Quick, the unit's CT is set to 154. And its only under these circumstances, as far as I know. Otherwise its the standard 100 CT. Any insight as to the cause?

Based on my testing, Quick / Critical Quick set unit's CT to 255, not 100.
That's why unit with Quick get first priority other than unit with 100 CT.
I also test this with mimicked spell, and it still set CT as 255, not 154.

I don't know about 154 CT, since I never experience that case, but it's probably because of overflow.
CT is 1 byte, and 1 byte limit = 255.

philsov

January 20, 2009, 09:08:36 am #89 Last Edit: December 31, 1969, 07:00:00 pm by philsov
QuoteQuick / Critical Quick set unit's CT to 255, not 100.

Hm.

CT rolls over -- a unit with 102 CT who acts and moves is then set to 2 CT.  Wouldn't 200+ CT result in a double turn?
Just another rebel plotting rebellion.

VincentCraven

January 20, 2009, 11:29:55 am #90 Last Edit: December 31, 1969, 07:00:00 pm by VincentCraven
Quote from: "Razele"Important note regarding space limitation in BATTLE.BIN :
To write custom asm hack (ex : Defending hack, max items per battle, etc ) I require space in BATTLE.BIN
According to Zodiac, the safe area to write custom asm instruction in BATTLE.BIN : 0xEBD54 - 0xECB8B (3,640 bytes)
From that space, I only take half of them, 0xEC470 - 0xECB8B (1,820 bytes)
0xEBD54 -  0xEC46F is reserved for other member, like Zodiac or SentinelBlade.
And, I already use 728 bytes, or 40% of the space.
If one custom asm hack requires 10 asm instruction, or 40 bytes, that means we have 27 asm hacks left.
Not all asm hack requires additional space in BATTLE.BIN, some simple asm hack like "Every monster is mountable", or
"Equip Spear - Equip Rod + Staff + Instrument + Dictionary" doesn't eat space in BATTLE.BIN

Well, if you do happen to run out of space, feel free to make use of my designated area (0x000EAF1C - 0x000EBD53).  I have thus far only modified formulae and pre-existing hacks, so if you happen to need a few more hacks after running out, it's there.
I changed jobs and that has made all the difference.

Razele

January 20, 2009, 12:14:08 pm #91 Last Edit: December 31, 1969, 07:00:00 pm by Razele
QuoteWell, if you do happen to run out of space, feel free to make use of my designated area (0x000EAF1C - 0x000EBD53). I have thus far only modified formulae and pre-existing hacks, so if you happen to need a few more hacks after running out, it's there.

Ok, thanks.
I don't know there's other safe space area beside mine.
Zodiac, which area do you use in BATTLE.BIN ?
Is there any other safe area in BATTLE.BIN ?

Quote from: "philsov"Hm.

CT rolls over -- a unit with 102 CT who acts and moves is then set to 2 CT.  Wouldn't 200+ CT result in a double turn?

No. The game apply normalization to the unit's CT :

If CT equal to 255 , set CT to 0
Else CT = CT - ([CT / 100] * 100)]

199 CT will lead to double turn, but 200 CT won't.

Examples :

CT       = 250
Final_CT = 250 - ([250 / 100] * 100)
         = 250 - (2           * 100)
         = 250 - 200
         = 50

CT       = 199
Final_CT = 199 - ([199 / 100] * 100)
         = 199 - (1           * 100)
         = 199 - 100
         = 99

CT       = 102
Final_CT = 102 - ([102 / 100] * 100)
         = 102 - (1           * 100)
         = 102 - 100
         = 2

CT       = 200
Final_CT = 200 - ([200 / 100] * 100)
         = 200 - (2           * 100)
         = 200 - 200
         = 0
       

In Math :

Unit's current CT = 250

CT0  = $FA [250]

CT1  = CT0 * $51eb851f
CT1  = $FA * $51eb851f
CT1  = $5000000046

       Hi Lo
CT1  = 50 00000046


CT1  = Hi
CT1  = $50 [80]

CT1  = [80 / 32]
CT1  = 2

CT2 = CT1 * 2
    = 2   * 2
    = 4 + CT1
    = 4 + 2
    = 6

CT2 = CT2 * 8
    = 6   * 8
CT2 = 48

CT2 = CT2 + CT1
    = 48  + CT1
    = 48  + 2
    = 50

CT2 = CT2 * 4
    = 50  * 4
    = 200

Final CT = CT0 - CT2
         = 250 - 200
         = 50

This is how the game normalize the CT, in asm.
Current CT = 199

00182ac8: >nop                            

r2=0x000000c7  [Current CT = 199]
r23=0x000000ff [255]
00182acc:  bne r2,r23,0x00182adc           [Check if Current CT equal to 255, if no, jump to 0x182adc]
00182ad0:  lui r2,0x51eb                  
00182ad4:  j 0x00182b0c                    
00182ad8:  sb r0,0x0039(r17)               [Current CT equal to 255, set CT to 0]
00182adc:  ori r2,r2,0x851f                
r2=0x51eb851f

r19=0x000000c7 [199]
00182ae0:  andi r4,r19,0xffff              [ r4 = r19         ]
r4=0x000000c7  [199]                       [ r4 = 199         ]

r2=0x51eb851f
r4=0x000000c7
00182ae4:  multu r4,r2                     [r4*r2, store the high byte in hi, low byte in lo]
hi=0x0000003f
lo=0xae147b19

00182ae8:  mfhi r3                         [ r3 = hi          ]
r3=0x0000003f [63]                         [    = 63          ]

00182aec:  srl r3,r3,0x05                  [ r3 = r3 / 32     ]
r3=0x00000001                              [    = 63 / 32     ]
                                           [    = 1           ]

00182af0:  sll r2,r3,0x01                  [ r2 = r3 * 2      ]
r2=0x00000002                              [ r2 = 1  * 2      ]
                                           [ r2 = 2           ]

00182af4:  addu r2,r2,r3                   [ r2 = r2 + r3     ]
r2=0x00000003                              [ r2 =  2 + 1      ]
                                           [ r2 =  3          ]  

00182af8:  sll r2,r2,0x03                  [ r2 = r2 * 8      ]
r2=0x00000018 [24]                         [ r2 =  3 * 8      ]
                                           [ r2 =  24         ]

00182afc:  addu r2,r2,r3                   [ r2 = r2 + r3     ]
r2=0x00000019 [25]                         [ r2 = 24 + 1      ]
                                           [ r2 = 25          ]

00182b00:  sll r2,r2,0x02                  [ r2 = r2 * 4      ]
r2=0x00000064 [100]                        [ r2 = 25 * 4      ]
                                           [ r2 = 100         ]

r4=0x000000c7
r2=0x00000064
00182b04:  subu r4,r4,r2                   [ r4 = r4   - r2  ]
r2=0x00000063                              [ r4 = 199 - 100  ]
                                           [ r4 = 99         ]

r4=0x00000063
r17=0x8019268c
00182b08:  sb r4,0x0039(r17)               [store current CT as 99]

Cheetah

January 20, 2009, 01:17:56 pm #92 Last Edit: January 20, 2009, 03:43:52 pm by Cheetah
How about a fix so only one skill can actually be learned from picking up a crystal instead of all of them?
Current Projects:

Vanya

January 20, 2009, 01:21:11 pm #93 Last Edit: December 31, 1969, 07:00:00 pm by Vanya
Actually, I wouldn't mind a fix like that. Maybe also a modification that prevents ANY skills from being learned from crystals. ^_^
  • Modding version: Other/Unknown
¯\(°_0)/¯

philsov

January 20, 2009, 01:30:23 pm #94 Last Edit: December 31, 1969, 07:00:00 pm by philsov
nice read.  thanks for the info Raz =D
Just another rebel plotting rebellion.

DarthPaul

January 20, 2009, 02:06:39 pm #95 Last Edit: December 31, 1969, 07:00:00 pm by darthpaul
Your view is amazing, I have book marked you.



Lol.
Oh pitiful shadow lost in the darkness, bringing torment and pain to others. Oh damned soul wallowing in your sin, perhaps...it is time to die

Zozma

January 20, 2009, 04:12:31 pm #96 Last Edit: December 31, 1969, 07:00:00 pm by Zozma
thanks raz for the float thing :D
  • Modding version: Other/Unknown
Wiegraf: Draw your sword Ramza!
Ramza: But im a monk!!

Xifanie

January 20, 2009, 10:44:09 pm #97 Last Edit: December 31, 1969, 07:00:00 pm by Xifanie
as you're the main asm hacker I doubled your space

Razele
0x000EBD54 - 0x000ED9C3

You know have about 10% of kanji space at your disposal. ;o
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

VincentCraven

January 21, 2009, 08:18:42 am #98 Last Edit: December 31, 1969, 07:00:00 pm by VincentCraven
I don't know if this is just a problem between Asmo and I, but are Secondaries and R/S/Ms sometimes selected to "nothing" when random.

If so, can we get rid of the "nothing" option?
I changed jobs and that has made all the difference.

Razele

January 21, 2009, 01:07:06 pm #99 Last Edit: December 31, 1969, 07:00:00 pm by Razele
- Added No Random Battles
Credits to Codetwink.com for the original gameshark code

Quoteas you're the main asm hacker I doubled your space

Razele
0x000EBD54 - 0x000ED9C3

You know have about 10% of kanji space at your disposal. ;o
Thanks Zodiac :D


QuoteI don't know if this is just a problem between Asmo and I, but are Secondaries and R/S/Ms sometimes selected to "nothing" when random.

If so, can we get rid of the "nothing" option?

Did the units get enough JP to purchase the R/S/M ?