Author Topic: The Dark Serge Hack (feasibility assessment)  (Read 4498 times)

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
The Dark Serge Hack (feasibility assessment)
« on: March 08, 2008, 01:16:49 pm »
Okay, now that we're doing a Guile -> Magil hack, I'm also exploring the possibility of a Dark Serge hack on the side. In order to do a Dark Serge hack, I need to assess a.) whether pointer changes will be needed and b.) whether I've even located Dark Serge's model for sure, and how different an enemy model's structure is from a player character's. Part (a.) I can handle I think, but I'd appreciate it if someone could try to load what I believe is Dark Serge's model in Blender via Luminaire's model viewing plugin.

The most recently-released version of the model viewer plugin is attached to this post:
http://www.chronocompendium.com/Forums/index.php/topic,4770.msg89448.html#msg89448

If Dark Serge comes out all whacked-out or doesn't go through the plugin at all, we'll know that there's even more investigation to be done on the enemy battle model formats.

Attached are Dark Serge's battle texture and a zip containing both the texture and the model (or what I THINK is the model).

[attachment deleted by admin]

Luminaire85

  • Guru of Time Emeritus
  • Chronopolitan (+300)
  • *
  • Posts: 311
    • View Profile
    • Chrono Cinema
Re: The Dark Serge Hack (feasibility assessment)
« Reply #1 on: March 08, 2008, 01:31:39 pm »
Done.

[attachment deleted by admin]

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: The Dark Serge Hack (feasibility assessment)
« Reply #2 on: March 08, 2008, 01:39:40 pm »
Suh-WEEET! Thanks Luminaire! It looks just about perfect, which means (a.) once we get Serge, Guile, and Kid fully documented, that will probably cover most of the variation among the battle models (with the exception of giant creature battle models, perhaps) and (b.) a simple model switch should be very feasible for in-vivo hacking.

« Last Edit: March 08, 2008, 06:54:58 pm by FaustWolf »

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: The Dark Serge Hack (feasibility assessment)
« Reply #3 on: March 08, 2008, 06:51:50 pm »
Damn, that does look virtually perfect. I was afraid of the scenario in which Serge might be the simplest model, and all the others would be ridiculously complicated.

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: The Dark Serge Hack (feasibility assessment)
« Reply #4 on: March 08, 2008, 06:55:14 pm »
I have unfortunate news to report. I have done the necessary surgery for turning Serge into Dark Serge, making sure that the texture data, model data, and weapon data are aligned along 2048 byte-sector boundaries. *Cue dramatic tear-jerking music.* The game cannot load the model. :cry:

I do not believe the problem is the enemy model format -- as Luminaire has shown us, it conforms perfectly to the regular player character models. The texture is fine as well - it survived an early in-vivo experiment today intact on Serge's normal model (not a pretty sight).

The problem is that Dark Serge's model - animations and all - is 68,672 bytes in file size. Serge's is only 44,000 bytes or so. This wouldn't necessarily be a problem (the difference between Dark Serge's one scythe and Serge's 6 swallows is more than enough to compensate for the larger model), but for the apparent fact that there must be pointers somewhere that tell the game, "Serge's weapon data begins HERE." We would have to alter this pointer such that the game would understand that Serge's weapon data begins several sectors later on the disc once model-reassignment surgery has been completed.

I've thought of shortening Dark Serge's model data to excise section 1-4 since it's functionally useless, but this operation wouldn't save that much space and it may be impossible to "fool" the game into skipping the data while it's loading the model.

As for replacing other party members with Dark Serge, we run into the problem that no other party member has a model at least 68,672 bytes in size.

Thus, the only way to go is to find whatever pointers are specifying the locations of Serge's data. As a "Hail Mary" attempt I'm going to see if I can combine Dark Serge's 3D model data with Serge's or Serge-Lynx's battle animations and give the resulting chimera a scythe, but it just won't be the same...
« Last Edit: March 08, 2008, 07:00:21 pm by FaustWolf »

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: The Dark Serge Hack (feasibility assessment)
« Reply #5 on: March 09, 2008, 12:41:08 am »
Man, I hate having to report bad news, but...THIS TIME I DON'T HAVE TO!! (Actually, see the edit)



We must all bow to NeoFio, because without his/her/its presence in the game, there wouldn't have been a character with enough model data to make this possible. However, there is a slight problem here, as you can no doubt tell from the pic - NeoFio doesn't have very much weapon data, so I couldn't get Dark Serge's scythe in.

The best option would really be to replace Lynx-Serge with Dark Serge, but again Lynx-Serge's model isn't large enough in terms of bytes to do this without re-ordering some pointers. If I can figure out where the pointers to weapon data are, we should be home free.

EDIT: Meh, now even the NeoFio method isn't working -- I can't reproduce the results, and I ruined the iso file on which I had a working (though scythe-less) Dark Serge by pasting the scythe data over a portion of the iso that contained Greco's texture.

I'm thinking the best thing to do would be to change scythe-Serge-Lynx into Dark Serge, keeping scythe-Serge-Lynx's animations. The result should be believable from an aesthetic standpoint. There's enough space for the scythe data, and Dark Serge's 3D data + scythe-Serge-Lynx's animations take up less space than swallow-Serge-Lynx's model (wow, that-was-fun-to-write). Unless I magically find the pointer info, this is what will have to be done.

For now, I shall have to set this project aside and churn out the Guile -> Magil hack and inscribe all our model findings in the wiki (a process on which I am very much behind). Recording the model formats will benefit this project anyway, as it should give me some ideas as to how one model's animations can be applied to another model's bones.
« Last Edit: March 09, 2008, 12:07:28 pm by FaustWolf »