øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=1960.0e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexe5ac-2.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&board=8.140e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexe5ac-2.html.zxÀ%h^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ0P\ó¹OKtext/htmlISO-8859-1gzip0|Öó¹ÿÿÿÿÿÿÿÿTue, 10 Mar 2020 23:58:17 GMT0ó°° ®0®P®€§²ð®À%h^uó¹ Need information on monsters

Author Topic: Need information on monsters  (Read 2179 times)

dn

  • Ymir
  • *
  • Posts: 14
    • View Profile
Need information on monsters
« on: October 22, 2014, 08:08:06 AM »
Looking to expand the monster index, so I need a bit of info.

What is "8-high [and 16-high] composition data"? I'm guessing moulds, but I'm not sure
Also, is there anything actively preventing me from expansion? The game uses a byte in the monster data, I believe, to determine whether it's in the first 256 set (available to the Veldt) or the second set (which currently only has 128 entries, and which is what I want to expand).

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: Need information on monsters
« Reply #1 on: October 22, 2014, 11:45:46 AM »
Quote from: dn
What is "8-high [and 16-high] composition data"?

if you're going to provide a quote, why not say where the hell it's from?

Quote
Also, is there anything actively preventing me from expansion? The game uses a byte in the monster data, I believe, to determine whether it's in the first 256 set (available to the Veldt) or the second set (which currently only has 128 entries, and which is what I want to expand).

some code (e.g. in Bank C2) will consider the monster to be absent if the low byte is 255 and the high byte is nonzero.  you'll have to narrow the high byte check to not rule out as much.

dn

  • Ymir
  • *
  • Posts: 14
    • View Profile
Re: Need information on monsters
« Reply #2 on: October 22, 2014, 11:48:47 AM »
12AA20-12AA21   (D2A820-D2A821)     PTR     Pointer to 8-High Monster Composition Data
12AA22-12AA23   (D2A822-D2A823)     PTR     Pointer to 16-High Monster Composition Data
12AA24-12AE23   (D2A824-D2AC23)     MONST   Monster 8-High Composition Data (128 elements, 8 bytes each)
12AE24-12B423   (D2AC24-D2B223)     MONST   Monster 16-High Composition Data (48 elements, 32 bytes each)
12B424-12B4FF   (D2B224-D2B2FF)     ---     UNUSED SPACE (220 bytes)

was referring to this.

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: Need information on monsters
« Reply #3 on: October 22, 2014, 12:02:32 PM »
it's monster "stencils".  they have to do with the mapping of tiles in each row of the monster image.

see a few text files on Lord J's site for info:
http://www.angelfire.com/pq/jumparound/ff3romOffsets.html

dn

  • Ymir
  • *
  • Posts: 14
    • View Profile
Re: Need information on monsters
« Reply #4 on: October 22, 2014, 12:09:25 PM »
Ahh. I see now. Thanks. I think I understand.

Madsiur

  • Tunnel Armor
  • *
  • Posts: 149
  • Gender: Male
  • FF6AE coder
    • View Profile
    • Madsiur's Lair
Re: Need information on monsters
« Reply #5 on: March 07, 2015, 10:48:49 PM »
some code (e.g. in Bank C2) will consider the monster to be absent if the low byte is 255 and the high byte is nonzero. 

What were you referring to exactly? I know the 16 bits enemy number is stored in $1FF9 but all I found was the coliseum check at C2/2F10...

assassin

  • Bane of Retards
  • *
  • Posts: 1,033
  • space bears are not gentle!
    • View Profile
    • My Barren Webpage
Re: Need information on monsters
« Reply #6 on: March 08, 2015, 05:13:25 PM »
you've got it.  it's the checks done before storing the 16-bit enemy number in $1FF9, since after that they can just check Bit 15.  another is at C2/2FB7, which doesn't even bother to look at the boss bit.

no idea on other Banks.

EDIT: so if you're sticking to 9 bits, #511 will be null.  which as you said elsewhere, is fine, because you _need_ at least one value to mean null.
« Last Edit: March 09, 2015, 12:36:07 AM by assassin »

dn

  • Ymir
  • *
  • Posts: 14
    • View Profile
Re: Need information on monsters
« Reply #7 on: March 09, 2015, 01:57:31 PM »
If possible I would go as far as the game would allow, but leave $1FF as the default empty slot regardless for simplification. If nothing else interferes, you could have a theoretical 65534 slots, you just wouldn't have the obvious $00 or $FFFF as the default null slot.

Madsiur

  • Tunnel Armor
  • *
  • Posts: 149
  • Gender: Male
  • FF6AE coder
    • View Profile
    • Madsiur's Lair
Re: Need information on monsters
« Reply #8 on: March 10, 2015, 06:07:51 PM »
I actually ran into an issue expanding monsters/espers visual specs. The C1/205A routine is for monsters on screen while the one at C1/24F5 is for espers calls and monster appearances when using sketch. Now the first routine use the monster number in the formation data but the second routine uses the monster (or esper) number stored in $10. if there is 0x80 more entries at the end of monsters and before the start of espers, the game will load a monster sprite when calling an esper. Now looking at C1 there's a bunch of stuff stored in $10 and the code previous to the routines I mentionned is called from the end of the C2 bank. If I could just find where the esper number (well monster number in fact) is loaded in $10, things would look good for adding monsters.

Madsiur

  • Tunnel Armor
  • *
  • Posts: 149
  • Gender: Male
  • FF6AE coder
    • View Profile
    • Madsiur's Lair
Re: Need information on monsters
« Reply #9 on: March 12, 2015, 07:57:15 PM »
Well I think I found the espers numbers...  :whoa:

Just look for the calls to C1/2452 or C1/2480 in bank C2 (covering from C2/EB4F to C2/F28C) and prior to them espers numbers are stored in X, not always right before the call but sometimes a bit further back (then you'll see a push instruction and further a PLX right before the call). I haven't tested any of this, but I found 27 occurrences of harcoded values from #$0180 to #$019C, each number having one entry except #$019B, which is absent. There's also a table of five entries at C2/EA9D which appears to be esper numbers, because an entry of the table is loaded in A then transferred to X right before a call to C1/2452 (at C2/EAAE).

I'll test everything this weekend and update this post with the results.

Edit: Well it seems to work now :D
« Last Edit: March 14, 2015, 11:07:59 AM by Madsiur »