øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=2128.15e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexa602.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&board=17.40e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexa602.html.zxT9h^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ °VQOKtext/htmlISO-8859-1gzip8:ÖQÿÿÿÿÿÿÿÿWed, 11 Mar 2020 01:21:48 GMT0ó°° ®0®P®€§²ð®S9h^ÿÿÿÿÿÿÿÿ])Q New kid on the blocks

Author Topic: New kid on the blocks  (Read 4634 times)

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: New kid on the blocks
« Reply #15 on: October 29, 2015, 10:26:12 PM »
Quote
Also, as an aside: a long time ago I went through each damage formula and the instructrtrepe/Tseng document is not 100% correct.  Some things that they say none for are technically used but never set. Perhaps I'll write it up this weekend and stick it in the wiki now that I have a little more free time.
Interesting. I would would very much like to see a list of errors in that document.

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: New kid on the blocks
« Reply #16 on: October 30, 2015, 04:46:08 AM »
I'm seeing a lot of double digit $nn variables mentioned here...  does anybody know the meaning of Variable $63, and in what circumstances it's set/cleared?

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: New kid on the blocks
« Reply #17 on: October 30, 2015, 06:50:42 AM »
It seems to be used in some un-commented parts of the C2 bank. No idea what it refers to.

LightPhoenix

  • FF5 Hacker
  • *
  • Posts: 130
    • View Profile
Re: New kid on the blocks
« Reply #18 on: October 30, 2015, 08:43:04 PM »
The only info I have on it regarding damage calculations is that is appears to be related to healing ($62 is the healing flag and it follows it).  Off the cuff I'd guess it's a flag to determine if defense is used in the final damage/heal calculation.

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: New kid on the blocks
« Reply #19 on: November 09, 2015, 06:39:18 AM »
GBA Notes, valid for '2564 - Final Fantasy V Advance (U)(Independent)'

* TEXT: The text chunk starts at offset $36DD54. It is a 4 bytes table with 16 bytes of header:
0..3 - 0s
4..7 - TEXT
8..B - ???
B..F - chunk size
After that are indexes with 4 bytes offset toward $36DD54. For simplicity I will include the header as a part of the table, but first useful index is 4. So to get the text with index n you need:
1. Get offset from TXT[n], that is $36DD54 + 4*n
2. The text will start at $36DD54 + offset (from 1)
3. Read text till you reach $0D
4. Convert that text using the frequency table to ASCII (or whatever else you may use)
** Helpful indexes:
- 3188 Item descriptions, used in Weapon/Armor Description
- 3316 Weapon names
- 3443 Armor names
- 3539 Item names
- 3575 Job description
- 3601 Job names
- 4863 Enemy names
- 5270 Weapon descriptions
- 5397 Armor descriptions
- 5492 Item descriptions

*Weapon data - Starts at $155810 and is 128 entry table with 12 byte ordered as 8 9 A B 0 1 4 2 3 5 6 7 according to: SNES Weapon Data

*Armor data - Starts at $1468D0 and is 128 entry table with 12 byte ordered as 6 7 8 9 0 1 4 2 3 5 A B according to: SNES Armor Data

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: New kid on the blocks
« Reply #20 on: November 16, 2015, 04:09:27 AM »
I'm currently parsing Monster(Enemy) info.
Could you tell me where is 'Monster Release Table' in SNES?

samurai goroh

  • FF5 Hacker
  • *
  • Posts: 221
  • Gender: Male
    • View Profile
    • My page
Re: New kid on the blocks
« Reply #21 on: November 16, 2015, 09:21:13 AM »
http://slickproductions.org/slickwiki/index.php/FF5_ROM_map
Code: [Select]
D0/8600-D0/88FF Data Monster Release actions
I'm the best in the universe! Just remember! [F-zero X]

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: New kid on the blocks
« Reply #22 on: November 17, 2015, 03:57:32 AM »
Thank you very much @samurai goroh!
I checked on Wiki but it seems I missed that line, not much sleep because of Fallout4 :D

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: New kid on the blocks
« Reply #23 on: November 24, 2015, 09:03:36 AM »
Hey guys currently I'm parsing the AI scripts. I have some questions about them:

1. in F3 'Set Target', what:
 - 00 (BlandLamia),
 - 05 (BoneDragon),
 - 0E (CureBeast),
 - 06 (Alcumia),
 - 1D (Wall Mage) mean?
2. When we have 2 or more conditions, I guess we have logical AND. Is it possible to utilize other logical operations?
3. When we have action group, then we must have 3 bytes in it, no more no less?
4. Why we have 2 FF: <Block End>? ... if it is really end of block we should have more?
* my personal observations here is that FF is used to end unconditional part & conditional part
5. What exactly F9 does?
6. In F6 (Display Text), I guess what follow is an index of the text. Can you point where is this table?
7. What '05 if in position (0000)##' mean?
* Actually the syntax here should be 05 (00) ## ##

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: New kid on the blocks
« Reply #24 on: November 25, 2015, 12:20:55 AM »
1. in F3 'Set Target', what:
 - 00 (BlandLamia),
 - 05 (BoneDragon),
 - 0E (CureBeast),
 - 06 (Alcumia),
 - 1D (Wall Mage) mean?
The FF5 algorithm guide at GameFAQs should have those answers.
Quote
2. When we have 2 or more conditions, I guess we have logical AND. Is it possible to utilize other logical operations?
Not to my knowledge. Then again, you never know.  :happy:
Quote
3. When we have action group, then we must have 3 bytes in it, no more no less?
It seems like it. I do not know any instances where fewer or more actions are used. Again, this is just speculation.
Quote
4. Why we have 2 FF: <Block End>? ... if it is really end of block we should have more?
* my personal observations here is that FF is used to end unconditional part & conditional part
Because as you say, the first FF states the end of unconditional blocks and the second FF states the end of conditional blocks. If there are no conditional blocks you get the double FF at the end.
Quote
5. What exactly F9 does?
I'm guessing miscellaneous things, depending on what byte follows. The ASM would give you more answers.
Quote
6. In F6 (Display Text), I guess what follow is an index of the text. Can you point where is this table?
Could it be "E7/3B00-50FF: Battle dialogue"? It would be somewhere else in the Japanese version.
Quote
7. What '05 if in position (0000)##' mean?
It means the first byte is 05, the second byte 00, the third byte also 00 and the fourth byte indicating the position it needs to be in.
Quote
* Actually the syntax here should be 05 (00) ## ##
I might have messed up. I'll make a note of this.

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: New kid on the blocks
« Reply #25 on: November 25, 2015, 02:39:44 AM »
Quote
7. What '05 if in position (0000)##' mean?
It means the first byte is 05, the second byte 00, the third byte also 00 and the fourth byte indicating the position it needs to be in.
Hehe that comment made my day (with a smile) that's why I love to hear from you Jorgur even when it doesn't answer :D
Anyway as you can see I know well what syntax mean, I was asking about the meaning ... what Position mean? Is it lets say internal predefined variable (similar to Vxx), how that effect visualization and so on.

Quote
1. F3 ...The FF5 algorithm guide at GameFAQs should have those answers.
I did it before asking ... I usually do my homework, so when I ask that mean there is no info or I haven't comprehended it :)
But I hoped to hear your insights guys, your personal observations. Lets face it - that FAQ is great resource but there are mistakes in it. Even without knowledge of the asm code I have found some, maybe even more then few :)
For example in all these stone-type of mobs, he parse AF code in AI as Darkness, which is the name of Magic[AF], but it should be Vanish (or something like it)

4. Then maybe FF should be called <Section End>

5. Really no time for reading ASM of 6502, besides I'm so rusty ... haven't used it for 10+ years. Is it safe to assume that F9 is kinda of trigger to save that certain battles have already occurred?

Quote
6. F6... Could it be "E7/3B00-50FF: Battle dialogue"? It would be somewhere else in the Japanese version.
Yes the text is there but I'm searching the pointer table ... so when I see index N, I visualize text[N]

New questions:
8. I assume DE "Explosion" here mean Fight. What is the difference between this and 80 (Fight)?
9. Since Condition 06 & 07 are identical in syntax, what is the internal difference?

x0_000

  • Siren
  • *
  • Posts: 72
    • View Profile
Re: New kid on the blocks
« Reply #26 on: November 25, 2015, 01:43:19 PM »
I had some notes on set target, although I don't remember how I got these in the first place:
fd f3 XX XX - set target
   note: ally refers to player, enemy refers to monster
   00 F0 - target bartz
   01 F0 - target lenna
   02 F0 - target galuf
   03 F0 - target faris
   04 F0 - target krile?
   06 F0 - single enemy in front row
   0D F0 - target self
   0E F0 - all enemies, not self
   0F F0 - all enemies
   10 F0 - single enemy, not self
   18 F0 - target single woman
   19 F0 - target single man
   1B F0 - single ally
   1C F0 - all allies
   1D F0 - target single enemy with wall
   22 F0 - target single ally
   23 F0 - target all allies
   24 f0 - target single ally (with wall?)
   25 F0 - target all dead enemies
   26 F0 - target single enemy
   27 F0 - target enkidu
   28 F0 - target bartz
   29 F0 - target lenna
   2A F0 - target faris
   2B F0 - target galuf
   2C F0 - target krile
   2d F0 - target previous attacker (last action)
   2e 00 - target dead ally?

5. Really no time for reading ASM of 6502, besides I'm so rusty ... haven't used it for 10+ years. Is it safe to assume that F9 is kinda of trigger to save that certain battles have already occurred?
Yes, I didn't actually figure out what the values mean but they raise event flags.

9. Since Condition 06 & 07 are identical in syntax, what is the internal difference?
They read different areas of RAM in their decision script. I don't know what data it reads but there are two points where they differ. The first one reads the byte at 0201EE50, 0201EE57, 0201EEE4, 0201EEEB, 0201EF78, 0201EF7F, 0201F00C, 0201F013 depending on the attacker (each pair is one of the player slots), the other one reads the byte that immediately follows the ones listed. The offsets are for FFVA (US).

The offsets are located in the area of RAM the game uses to track in-battle data for the player characters:
0201EDFC - Slot 1
0201EE90 - Slot 2
0201EF24 - Slot 3
0201EFB8 - slot 4
the specific area is used  to record player actions, but the actual byte read is still a mystery.
« Last Edit: November 25, 2015, 02:19:49 PM by x0_000 »

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: New kid on the blocks
« Reply #27 on: November 26, 2015, 09:25:33 AM »
Thank you very much x0_000! I'm done for now with SNES, tomorrow will start with GBA and hopefully till the end of the day I can post a new release so you can evaluate :)

Squall

  • Dark Dragon
  • *
  • Posts: 486
    • View Profile
Re: New kid on the blocks
« Reply #28 on: November 30, 2015, 02:10:40 AM »
Guys, can you tell me more about F2 - Unhide? OK first parameter is connected with animation, but what about the second? It seems to me that it has bit field that shows what enemies to unhide ...
Also about F6 - Display Text what exactly is the meaning of the two params? I think the second param is an index, while first is control (how to show it), but that is just a guess :)

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: New kid on the blocks
« Reply #29 on: December 05, 2015, 07:34:50 AM »
Because as you say, the first FF states the end of unconditional blocks and the second FF states the end of conditional blocks. If there are no conditional blocks you get the double FF at the end.
I messed up here. It has nothing to do with conditions. Quote from my "AI scripts" doc:
Quote
FF marks the end of the last non-react block, and the end of the last react block