Author Topic: CHRONO CROSS MODEL PROJECT THREAD  (Read 15369 times)

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #30 on: January 18, 2009, 12:39:14 am »
Well I'll be damned, thanks. I wonder why the heck it was on the field...?

justin3009

  • Fan Project Leader
  • God of War (+3000)
  • *
  • Posts: 3296
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #31 on: January 18, 2009, 12:46:13 am »
Because it's on the Field at first.  When you first fight it, there's that little baby salamander thing that walks around that you have to fight.  And the bigger Salamander is on the back stuck in the floor.

Edit: I can't remember the area's name...It's like..the last place where you fight Salt and peppor or w/e I believe..

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #32 on: January 18, 2009, 12:52:35 am »
I think that's the Fire Dragon though, isn't it? Or am I totally mixed up here?

HyperGeek

  • Architect of Kajar
  • Earthbound (+15)
  • *
  • Posts: 24
  • The "Hare Hare YuKid" guy
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #33 on: January 18, 2009, 01:04:11 am »
No, I think you've got it.  As I recall, the salamander's head sticks through in the area of Mt. Pyre where the Fire Dragon is.  I believe it goes away after you get the red relic.

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #34 on: January 18, 2009, 01:13:48 am »
Ohhh, I get it now, I just watched a Youtube vid of the Fire Dragon fight. Yeah, it's sitting right there after all. Well, that solves my confusion, thanks everyone.

HyperGeek

  • Architect of Kajar
  • Earthbound (+15)
  • *
  • Posts: 24
  • The "Hare Hare YuKid" guy
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #35 on: January 19, 2009, 02:18:43 pm »
Paydirt.  Check this out.  What does this look like to you?  If you answered "Kid spazzing out," award yourself a cookie.  That's exactly what's happening.  Anyone care to guess why?  For once, the answer isn't "HyperGeek was messing around with the animation data."  Not directly, anyways.

As mentioned in the video description, I believe Kid's model is trying to use Serge's attack animations.  Yes, she's also really freaking out, but my guess is that she has more joints than Serge (Her animations seem to have more than eight bytes to identify which joints animate.), so the game is interpreting the data in a really weird way.  I'll let you guys be the judge of exactly what's going on there, since I may just be seeing what I want to see, and there's some odd side effects from this that I wouldn't expect to happen if I'd done this right.  Here's what I did to make it happen.

Short version: I changed the data at address 0xFF70 from 0xD45202BC to 0x7F520296.  Try it and see for yourself, it'll save you a lot of trouble reading the next few paragraphs if I'm (very likely) wrong about what I'm looking at.

Long version:  Vehek located the sector where at least one of Serge's attacks should be, along with the eight bytes that start it.  The attack in question (based off searching for those eight bytes) seems to begin at 0x129470C8.  Working backwards from here, there's something that looks like a standard animation header (number of animations and pointers to them) at 0x12946A30.  Some fiddling with the animation here confirmed that this does point to the animations for Serge's attacks.  Now, work backwards from there.  Somewhere in the neighborhood of 0x1293F800 is what looks like either another header, or at least some pointers, one of which seems to be pointing at the animation header.  (I think they start at 0x1293F808 or 0x1293F80C, but I'm not exactly sure.)  0x1293F800 is the start of sector 2527F, which Vehek identified as being where Serge's attack animations are.  I can pretty much verify that the animations themselves are not there, but the fact that path to find them begins in that sector makes me pretty sure that either this whole mess is lining up or it's a whole bunch of coincidences, I'm not sure which.

Anyways, if you do a hex search for 7F 52 02 (Which should be how that sector number would be referenced in the hex, right?) the first result should be at 0xFF6C, which looks to me (As usual, I'm operating more by feel than any sound scientific principle.) like it's part of the table of contents.  If you repeat the whole working backwards process for one of Kid's attack animations, I believe the sector where the pointer to the animation header occurs for her is 252D4.  As luck would have it, the next entry in the ToC references this sector.  Changing that entry to 0x7F520296 (In other words, making it point at Serge's data instead of Kid's.) caused the results you see in the video.

Today's experiment also revealed some issues with the above, even if I really did manage to trip over the attack animation pointers.  Changing the entry in the ToC for Serge to match the one for Kid causes Serge to lose the ability to attack.  You can still select attack and choose a target, but there's no cursor to allow you to choose your attack level, so you can't actually select any of them.  Trying to change Serge's entry to either of the two after Kid's (These would presumably be Guile and Norris) causes the game to crash and burn when you select a target for his attacks.  It wouldn't surprise me if this was the case for the other entries as well, but I haven't tried yet.  Changing the entry for Kid to match the next entry (Again, I'd assume this is Guile, but I haven't checked that.) causes her to lose the ability to attack, but strangely allows Serge to attack if his entry has been changed to what hers normally is.
« Last Edit: January 19, 2009, 04:07:25 pm by HyperGeek »

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #36 on: January 19, 2009, 03:09:03 pm »
Awesome stuff Hyper! So according to your and Vehek's findings the pointer to Serge's attack animation data is in sector 252D4, and the animation data itself is in sector 2527F, is that correct?

HyperGeek

  • Architect of Kajar
  • Earthbound (+15)
  • *
  • Posts: 24
  • The "Hare Hare YuKid" guy
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #37 on: January 19, 2009, 03:59:01 pm »
Ah, sorry, I think my phrasing was a bit ambiguous in that last post.  This is what happens when I get excited.  I'll see if I can fix that.

Anyways, that's not quite right, FaustWolf.  The pointer to the header for the animation data appears to be near the start of sector 2527F.  This is what the ToC seems to be referencing.  The animation data itself is quite a bit later (Header starts at 0x12946A30), looks like it's in sector 2528D, I think.  Check me on that, I'm still not entirely sure what I'm doing.  Sector 252D4 is where the pointer to Kid's animation header is, with the header itself occurring at 0x1296B7B4.  (That would be sector 252D6 if I'm not mistaken.)

EDIT: Cleaned the last post up a little to try to be more clear.  Let me know if it's still confusing.
« Last Edit: January 19, 2009, 04:09:03 pm by HyperGeek »

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #38 on: January 19, 2009, 04:53:13 pm »
Oh, I should have caught myself, of course you were referring to Kid and Serge and I thought it was just Serge. So it's like this?

Serge Attack Animation Pointer: Sector 2527F
Serge Attack Animation Data: Sector 2528D (header start at sector boundary)
Kid Attack Animation Pointer: Sector 252D4
Kid Attack Animation Data: Sector 252D6 (header start at sector boundary)


HyperGeek

  • Architect of Kajar
  • Earthbound (+15)
  • *
  • Posts: 24
  • The "Hare Hare YuKid" guy
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #39 on: January 19, 2009, 05:17:27 pm »
Sorry, I guess I'm still not being clear.  I'll have to ask you to forgive me; as I said, I'm still pretty new to this.

I don't believe either animation header is at the start of the sector boundary.  Both sector 2527F and sector 252D4 start off with something that looks like a mass of pointers, one of which points to the animation data.  For example, here's what's at 0x1293F800 (which should, by my math, be the very start of sector 2527F):

Code: [Select]
6472 7000 0000 0000 000A 0000 AC00 0000
4401 0000 F001 0000 7C02 0000 1403 0000
8003 0000 F403 0000 7007 0000 EC10 0000
201B 0000 041E 0000 8027 0000 AC27 0000
782D 0000 7433 0000 B842 0000 E442 0000
804B 0000 C45A 0000 2472 0000 00A6 0000
8CA6 0000 E0A6 0000 2CA7 0000 94A7 0000
04A8 0000 28AC 0000 7024 0100 1464 0100
4064 0100 CC64 0100 5465 0100 0024 0200
2C36 0200 5848 0200 845A 0200 B066 0200
DC78 0200 088B 0200 2491 0200 0000 0000

I have no idea what most of that is supposed to do, but that 0x2472 around midway through is what seems to be pointing at the animation data, which is apparently 0x7224 bytes away.  I can't pick out exactly where the pointer table starts (I'm almost certain that 0x647270 at the start isn't part of it.), or if it's supposed to be pointing directly to animation header or something just before it, but jumping 0x7224 bytes forward from 0x1293F800 puts you 0x0C bytes before the animation header, so I can't imagine that could be referencing anything else.  In both cases, the animation data simply seems to start where ever what came before it ended, which isn't on the sector boundary in either case I've checked.

EDIT: Just wanted to apologize because it finally hit me that I'm not being very helpfully precise here.  Honestly, right now I'm mostly trying to pick stuff out that seems significant so that those more talented than me can have a closer look.  The sheer lack of precision in my research (and the fact that I'm simply assuming the pointers will all line up without figuring out exactly how to make it work) at this point means I probably wouldn't have posted about this if it weren't for the fact that my experimental results (the video) seem to indicate that there might be something to it.  If nothing else, hopefully what I've got so far will give someone else a decent idea of where to start looking.
« Last Edit: January 19, 2009, 05:43:45 pm by HyperGeek »

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #40 on: January 19, 2009, 05:48:25 pm »
Naw, it's about as precise as can be for an initial investigation. What really matters is that we know which sector/file to look at in general, which you've uncovered handily. This will make further investigation go much more smoothly!

I'm really excited by all this. I'm strapped for time at the moment, but I think I'll take a look at this before even testing the animation format just so we can get a feel for where the attack animations are stored. This should provide us capability to use enemy models perfectly in the near future.
« Last Edit: January 19, 2009, 05:58:53 pm by FaustWolf »

HyperGeek

  • Architect of Kajar
  • Earthbound (+15)
  • *
  • Posts: 24
  • The "Hare Hare YuKid" guy
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #41 on: January 19, 2009, 06:06:59 pm »
For the record (Why didn't I bring this up earlier?  I guess I got distracted when I started chasing pointers.), the attack animations themselves are actually fairly easy to find.  If you sic a hex search on the hex values 61 74 30 00 (In the text at the right of most hex editors I've seen, this displays as "at0.", minus the quotes, naturally.), the first result should be just before the header for Serge's animations, the second result is just before Kid's, and I would assume it runs in standard character data order from there, given that I was able to use it to find Fargo's animations without having to try every character before him.  In both Serge and Kid's case, searching in reverse from there for 64 72 70 ("drp") found the pointer table which contained the pointers to the animation (which made locating Kid's much less painful than it should have been), but I haven't tried this with anyone else, so I can't verify that it always works.

I think tech animations may have a similar identifier, 74 65 63 68 ("tech"), but I haven't experimented with this enough to be sure.
« Last Edit: January 19, 2009, 09:18:23 pm by HyperGeek »

HyperGeek

  • Architect of Kajar
  • Earthbound (+15)
  • *
  • Posts: 24
  • The "Hare Hare YuKid" guy
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #42 on: February 10, 2009, 06:16:08 pm »
Hmm, I suppose this is technically a double-post.  Sorry about that.

Anyways, I had some spare time between classes today, so I decided to see what I could do with Dario.  Basically, I cleared out Guile's model, moved Kid's backwards, and then put Dario's model in the space where Serge's was and repointed everything in the table of contents.  FaustWolf, this is what you did (or is at least similar) to make your DarioTest video, right?  I took it a step farther after that and overwrote the the mass of data containing Serge's attack animations (Among other things.  I think the attack sounds may be in there, too...) with the equivalent mass for Dario.  The results are here.  I think I did something nasty to the system graphics and the background, but if you ignore that, we have an almost-playable Dario.  This would confirm that the stuff I tripped over earlier does indeed contain the attack animations.  Also, in case anyone's interested, the OUTs that contain the attacks seem to start at 3760.out, (This file contains Serge's attack animations, among other things.) and proceed in the same order as the battle models from there.  This is how I found Dario's data.

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10795
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #43 on: February 10, 2009, 06:18:25 pm »
No issue with double-posting when they're constructive! Especially in this forum. Feel free to drop in any thread you wish, and thanks. Dario there is sort of awesome...

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS MODEL PROJECT THREAD
« Reply #44 on: February 11, 2009, 01:56:47 am »
Sorry I didn't see this before, Hyper, and thanks ZeaLitY for bumping it. I must have accidently purged this from my unviewed threads list.

Man, this is awesome! You've confirmed our theory and even given us an .OUT number to start with. Lots of results will flow from this. Superb work!!