øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=390;area=showposts;start=390e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index8195.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=390e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index8195.html.zxjüg^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿȰUÉOKtext/htmlISO-8859-1gzip0|ÖÉÿÿÿÿÿÿÿÿTue, 10 Mar 2020 21:01:53 GMT0ó°° ®0®P®€§²ð®iüg^ÿÿÿÿÿÿÿÿ•%É Show Posts - Squall

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

Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 »
391
Final Fantasy V Research & Development / Re: FFV Viewer
« on: May 30, 2016, 06:40:09 AM »
Version 5.2 is out!!! Now the new features work for GBA too!

Thank you very much x0_000 for the info!

*GBA Notes:
Ability Actions Delay table - 147CB0
Job Level table - 1554E8. It uses 4 bytes - 2 for ABP and 2 for Ability.

Pretty much data structure is word-aligned. I guess thats important for GBA as double-word for PC - there is penalty in extra processors cycles reading non-aligned memory.

P.S. I dont like very much the info layout for jobs/ability. If you have in mind something better just give an example :)

392
Quote
the AI data is organized into two blocks
I just want to point out that by my definition there can be more than two blocks per AI script. There can be several conditional non-react blocks and several different react blocks.
Technically Jorgur is right - its possibly to have more then 2 block (I accept his definition of block: condition, separators, action part, End of Block - FE or FF). Logically LightPhoenix is right - there are 2 type of blocks - conditional and non-conditional (as others may call them react and non-react).
Although technically we may have more then 1 non-conditional, I have never seen more then one. It ends with FF regardless where it stands. Maybe that is why in some people's parsing they call it: default.
Since the game allocates space for 10 blocks non-conditional, LightPhoenix you may use the 9 of them for whatever you need (that is 9x17 + 9x64 bytes) :)

Quote
why does the game need 17 bytes to hold 4 bytes?
Because you may have up to 4 conditions and FE in the end. Each of this conditions are connected with logical AND. Personally I havent seen more then 2 in one block.

Quote
Perhaps this is simply a relic of changing code
I have the same feeling ... or changing of the idea :)

393
Final Fantasy V Research & Development / Re: FFV Viewer
« on: May 28, 2016, 06:32:55 AM »
1st ability pointer table - table to 'Job Levels' (not important)

Job Levels:
Code: [Select]
Job levels: 3 bytes
0 ABP low
1 ABP high
2 [Ability]
That is a table that has ABP requirement & Ability that can be learned for different jobs

Actions:
That is one of the beauty of FFV (from dev perspective). Instead of hardcoding what to do in each situation, FFV uses actions (8 byte structure) that have parameterize couple of pre-coded possibilities. Here and in most resources on the net these possibilities are called 'Damage Formula' ... wrong name because these 'formulas' are not used just for damage, but healing and other non-dmg actions (like change row, inflicting status, ...).
If you check my FFV Viewer they are under 'Magic' tab (wrong name I know, but it started with parsing actions, inflicted by magic).
Some of the command abilities are implemented with Actions (not all). There is a table that say what action (8 byte) will be used on specific command (ability). For example, when you choose 'Row' command, there is acttion for it and instead of hardcoding, the action contain reference to 'Row' formula, which has params to swap, to make you in front, in back,.... You may observe it in my Viewer - command actions are at the end of the list (Magic).

Innate ability effects:
That is similar to Job Innates. When you set a Job, you receive jobs innates. When you add support ability you add it innate too. For example a 'Knight' comes with Cover & Dbl Grip. If you put Counter on its free slot, the knight will get Counter innate too. From dev perspective innates are just set of bits that are checked in specific situations :)

394
Final Fantasy V Research & Development / Re: FFV Viewer
« on: May 27, 2016, 08:17:34 AM »
Version 5.1 is out!!! It should have all the info for Job/Ability.

I need to do the same for GBA version. If you have any info on where in GBA ROM to find:
Code: [Select]
Job data
D1/52C0-52E9: 1st ability pointer table      [Job]
D1/52EA-52FF: Number of abilities per job    [Job]
D1/5300-542B: Job levels                     Joblevel
D1/56B0-5707: Base [Stats]                   [Job]
D1/5708-575F: [Equipment type] compatibility [Job]
D1/5760-57B7: Native abilities               [Job]
D1/57B8-57FF: Innate abilities               [Job]
Code: [Select]
Ability data
D1/59E0-5CDF: Actions                        [Ability] (00-5F)
D1/5CE0-5D9F: ?                              [Ability] (00-51)
D1/5DA0-5DFF: Action delays                  [Ability] (00-5F)
D1/5E00-61FF: Command ability [Stat] bonuses [Ability] (00-7F)
D1/6308-638B: Support ability [Stat] bonuses [Ability] (80-A0)
D1/638C-63CD: Innate ability  effects        [Ability] (80-A0)
D1/63CE-6451: [Equipment type] compat. added [Ability] (80-A0)

please share, that would greatly speed up GBA part. Personally I have 0 knowledge on GBA asm so I use some statistical methods to search in the ROM, which may work well only if the GBA uses same data structures. As we have discussed already ... many times it doesnt (byte order,  byte padding, extra GBA content, ...) so things may get quite rough :D

395
Final Fantasy V Research & Development / Re: FFV Viewer
« on: May 25, 2016, 09:18:26 AM »
The ROM address for the table in the SNES version is in the link I just posted.
Found it! It seems I'm still in party mood if I cant see something so obvious :D
Thank you very much, Jorgur & x0_000!

It is strange that I missed that table (& info) when I was parsing Items ...  anyway it is interesting how Square develop systems that has billions of possibilities, yet implement just a fraction of it (in this case 232 possibilities for item types, yet only 32 used).
 When they allow users to utilize it they make an awesome game - like materia system in FF7 trough it you can define huge amount of customized gear (and that is why considered the best FF). While in other cases they kind-a 'missed the mark' like FFV ... in the past I didnt think its whoah game (just good one), but now that I know it from inside I see what a great engine it has but a regular player will never touch even the surface of it ...

396
Final Fantasy V Research & Development / Re: FFV Viewer
« on: May 24, 2016, 01:36:33 PM »
Could you quote this table here? Also if you know the location of that table in the ROM, please share the address. At one point in my Dmg Calculator I will have to limit the equipment, depending on a class/ability :)

397
I dont know about other FF, but FFV is quite generous to RAM :D

As far as I know there is no unpacking. If you check my 'FFV Viewer'  I do all AI parsing directly from the ROM without any unpacking.

P.S. if you guys have accumulated knowledge about AI script that is not in Jorgur's doc please share, I hope at one point to have full AI parsing :D

398
Final Fantasy V Research & Development / Re: FFV Viewer
« on: May 20, 2016, 07:48:35 AM »
Regardless how much I try not to, I keep developing that parser, because it helps me understand how Square did it :D

Version 5.0 is out!!!
- Big change - the name. It was about time to do it, because the more functionality I add it widens its scope.
- a new tab Ability. There are things inside that I haven't seen in any FFV editor/parser.
- a new tab Job. This is still WIP, but I know what I need and where to get, so just needs time.
- there are many, many small changes and fixes in previous parsings, thanks to increased knowledge of FFV and reading the asm code. There are still blind spots though ...
- NO GBA yet for Job/Ability.

There are national holidays and I bought a new car ... so I will take a short break :D That is the reason to release 5.0 although there is still work to be done.


P.S. How Equipment info in Job/Abilities relate to bits, representing Equipment types of gear?
It seems to me that last 5-6 bits for armor in Job/Abilities are interpreted differently in different FFV programs/documents. What should be the real meaning? More precisely: 'Common', 'Glove', 'Ring', 'Thief Gear', 'Chemist Gear' (Jorgur interpretation). samurai goroh uses 'Armlet/Wristlet' instead of ring and 'various' instead of common

399
Final Fantasy V Research & Development / Re: FFV Damage Calculator
« on: May 13, 2016, 02:19:50 AM »
Thank you, thank you very much assassin, that is exactly what I was searching!

I always assumed that $2038 hold OR of both hand weapon special ... but it holds OR of just some of bytes bits (parry, first strike) because it doesn't make sense to hold weapon specifics like FX, Wonder Rod, SpellBlade. I didn't notice it till you pointed that equipment's 12 bytes are copied in a segment starting of $4049.

if somebody else is interesting:
- FX instead stars: C2/4650
- FX after starts: C2/470D
* similar code is for the other hand starting at C2/4781

400
Final Fantasy V Research & Development / Re: FFV Damage Calculator
« on: May 12, 2016, 03:39:38 PM »
Hehe I use PC (aka Steam) version and things there are quite different :D

$2038 was suppose to hold special for Weapon(s) but I dont see code code for FX, just parry. I tried to follow 'Fight' routine ... but either I miss something or it ends fast :(

401
Final Fantasy V Research & Development / Re: FFV Damage Calculator
« on: May 12, 2016, 08:36:23 AM »
No I was talking about: http://slickproductions.org/slickwiki/index.php/Jorgur:FF5_Item_data#5:_Special_properties
more precisely:
- 08 Action on hit
- 02 Ability instead of attack

402
Final Fantasy V Research & Development / Re: FFV Damage Calculator
« on: May 11, 2016, 09:07:57 AM »
I'm kind of new to the community so I had missed these interesting discussions. When I found it I was 'o wooah' hopping for general dmg boost ... as you said: "this M bonus doesn't seem well-known to begin with (i can't find it in the Algorithms/Stats FAQ)".

But you are right - it is used in very rare cases and for healing (because dmg is not recalculated) :(


Edit: Could you help me pinpoint in asm code where weapon FX (after or instead) is checked and what code is executed?

403
Final Fantasy V Research & Development / Re: FFV Damage Calculator
« on: May 11, 2016, 02:49:17 AM »
You're correct on both accounts.
...
$2044 is best thought of as "Monster Attack".  It's only used by monsters, not by players.  Incidentally, this is why Power Drink is bugged - it increases this variable, but it's never used in player calculations (except for Goblin Punch).  For monsters, this value needs to be decremented since most monster physical attacks use this value.
That makes Age/Old even more powerful then we thought it is !!!

Here you are another interesting code:
Code: [Select]
Calculate Final Damage
C2/8811: 20 F8 93     JSR $93F8    Calculate Final Damage, Store in $7B69
C2/8814: AE 69 7B     LDX $7B69
C2/8817: D0 04        BNE $881D
C2/8819: 8E 6D 7B     STX $7B6D    $7B6D = Final Damage
C2/881C: 60           RTS

C2/881D: A5 39        LDA $39
C2/881F: AA           TAX
C2/8820: BD FD 79     LDA $79FD,X  A = Attack Type
C2/8823: A6 49        LDX $49      X = Target offset
C2/8825: 3D 64 20     AND $2064,X  (Check Target Can't Evade vs. Attack type)
C2/8828: F0 06        BEQ $8830
C2/882A: C2 20        REP #$20
C2/882C: 06 52        ASL $52      M = M * 2
C2/882E: E2 20        SEP #$20
C2/8830: A6 32        LDX $32
C2/8832: BD 55 20     LDA $2055,X
C2/8835: 29 40        AND #$40    (Check Magic Sword Drain)
C2/8837: F0 03        BEQ $883C
C2/8839: 4C 26 89     JMP $8926
C2/883C: BD 55 20     LDA $2055,X
C2/883F: 29 20        AND #$20    (Check Magic Sword Psyche)
C2/8841: F0 03        BEQ $8846
C2/8843: 4C 4D 89     JMP $894D
C2/8846: A5 62        LDA $62     Check if Healing?
C2/8848: F0 07        BEQ $8851
C2/884A: AE 69 7B     LDX $7B69
C2/884D: 8E 71 7B     STX $7B71   $7B71 = Final Damage
C2/8850: 60           RTS

If I read the code correctly that mean that if 'Target Can't Evade vs. Attack type' we get 2x dmg  ...

404
Hehe that would suggest that somebody did fine tuning and just happen to need 2 cycles :D
Although possible its highly unlikely. Seen how bad or not optimize code is in some places ... even I with my rusty 65x02 knowledge would do it better atm. For example Row command, the code for changing the row is just terrible I cold do it with just 3 instruction, while they isolate high bit and do plenty of instructions there just to invert it.

While reading the asm code I have the constant feeling they have used a higher level language that have compiled some of these 'jewels' :D

405
Final Fantasy V Research & Development / Re: FFV Damage Calculator
« on: May 06, 2016, 06:56:58 AM »
Here is how I did it:
http://slickproductions.org/slickwiki/index.php/Jorgur:SD3_D0_Disassembly
Yeah something like this is what I imagine it, but skipping my line breaks just kill it :(

Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 »