Author Topic: CHRONO CROSS ROOM SCRIPT INVESTIGATION THREAD (formerly event script thread)  (Read 29878 times)

yaz0r

  • Architect of Kajar
  • Porrean (+50)
  • *
  • Posts: 65
    • View Profile
I'll give it a try when I get home, but I don't have much hopes.

Tried all the characters and as expected, only the one actualy present in the demo work.

yaz0r

  • Architect of Kajar
  • Porrean (+50)
  • *
  • Posts: 65
    • View Profile
Here is the walkmesh for the first room of CC (the elevator room).


[attachment deleted by admin]

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Oh maaan, this is awesome yaz0r. Which file number is it that contains the walkmesh again? Is it definitely 0004.OUT?

yaz0r

  • Architect of Kajar
  • Porrean (+50)
  • *
  • Posts: 65
    • View Profile
It's the 0004.out and 0005.out.
0004 is the triangle setup, and 0005 is the vertice array.

Here is a quick and dirty code that export a walkmesh to obj.

[attachment deleted by admin]

utunnels

  • Guru of Reason Emeritus
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2797
    • View Profile
Ho, I didn't ask for that :)
It's just the lack of feedback I was having on the thread let me thing that only I cared for this stuff :)

Anyway, here is a slightly updated source that should fix the badly decoded opcodes because of the garbage byte (that may be some actual data inlined in the script, I don't know yet).
I haven't tested the new code very much, but it seems to be giving some results. I also worked a bit on the assembly to get more information about the scripting engine.

Hmm, I tried your decompiler today, but I got something like this:

---------------------------
| Entity 1 script 5
---------------------------
0x00CB: op43(0x001100, -880, var[0xFFFFF0C0], 240)
0x00D4: STOP()


What is var[0xFFFFF0C0] supposed to be?




I tried Luccia's room.
It seems this script is used for displaying Lucca's letter:

---------------------------
| Entity 25 script 4
---------------------------
0x0B50: PLAY_SONG(21) // The Girl Who Stole the Stars
0x0B53: op8A() // wait something
0x0B54: op68(0, 0, 0, 60, 60) // screen fade or blink, not sure
0x0B5F: WAIT(60)
0x0B62: op62(165, 100, 0, 0, 820)
0x0B6D: DIALOG(0x0037, 0x00)  // My dear Kid, How are you doing?
0x0B71: WAIT_DIALOG()
0x0B72: DIALOG(0x0038, 0x00)
0x0B76: WAIT_DIALOG()
0x0B77: DIALOG(0x0039, 0x00)
0x0B7B: WAIT_DIALOG()
0x0B7C: DIALOG(0x003A, 0x00)
0x0B80: WAIT_DIALOG()
0x0B81: DIALOG(0x003B, 0x00)
0x0B85: WAIT_DIALOG()
0x0B86: DIALOG(0x003C, 0x00)
0x0B8A: WAIT_DIALOG()
0x0B8B: DIALOG(0x003D, 0x00)
0x0B8F: WAIT_DIALOG()
0x0B90: DIALOG(0x003E, 0x00)
0x0B94: WAIT_DIALOG()
0x0B95: DIALOG(0x003F, 0x00)
0x0B99: WAIT_DIALOG()
0x0B9A: DIALOG(0x0040, 0x00)
0x0B9E: WAIT_DIALOG()
0x0B9F: DIALOG(0x0041, 0x00)
0x0BA3: WAIT_DIALOG()
0x0BA4: DIALOG(0x0042, 0x00)
0x0BA8: WAIT_DIALOG()
0x0BA9: WAIT(60)
0x0BAC: DIALOG(0x0043, 0x00)
0x0BB0: WAIT_DIALOG()
0x0BB1: DIALOG(0x0044, 0x00)
0x0BB5: WAIT_DIALOG()
0x0BB6: DIALOG(0x0045, 0x00)
0x0BBA: WAIT_DIALOG()
0x0BBB: DIALOG(0x0046, 0x00)
0x0BBF: WAIT_DIALOG()
0x0BC0: DIALOG(0x0047, 0x00)
0x0BC4: WAIT_DIALOG()
0x0BC5: DIALOG(0x0048, 0x00)
0x0BC9: WAIT_DIALOG()
0x0BCA: DIALOG(0x0049, 0x00)
0x0BCE: WAIT_DIALOG()
0x0BCF: DIALOG(0x004A, 0x00)
0x0BD3: WAIT_DIALOG()
0x0BD4: DIALOG(0x004B, 0x00)
0x0BD8: WAIT_DIALOG()
0x0BD9: WAIT(60)
0x0BDC: DIALOG(0x004C, 0x00)
0x0BE0: WAIT_DIALOG()
0x0BE1: WAIT(30)
0x0BE4: opFE1D(180, 0)
0x0BEA: op68(0, 0, 0, 0, 60)
0x0BF5: STOP()




This script has something to do with the ghost shadow.
Because if I replace it with a dialgue, the shadow just won't show up.

---------------------------
| Entity 24 script 4
---------------------------
0x0B19: op34(0x00)
0x0B1B: opFE47(3000, 2000, 0)
0x0B24: Unk opcode 0x94




Hmm, it seems that's the letter Luccia gives to Kid.

« Last Edit: February 08, 2009, 11:36:50 am by utunnels »

yaz0r

  • Architect of Kajar
  • Porrean (+50)
  • *
  • Posts: 65
    • View Profile
Can you give me the room numbers you've been working on ? Especialy for the first issue you mentioned (0xFFFFF0C0 means that it's a negative value, that should not be possible).
« Last Edit: February 08, 2009, 05:00:11 pm by yaz0r »

utunnels

  • Guru of Reason Emeritus
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2797
    • View Profile
I copied the decompressed script from memory.
How can I know the room number anyway?

Vehek

  • Errare Explorer (+1500)
  • *
  • Posts: 1761
    • View Profile
We have this list
It's room 193 on that list.
(Both versions of the treasury also contain Luccia's lab, set parameter to 01 to go to the lab part).

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
We also have a list in terms of .OUT files if that's helpful.

utunnels

  • Guru of Reason Emeritus
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2797
    • View Profile
Yeah, that script is for both the treasury and the lab.
If you let the game load Grobyc's model instead of the letter's, Luccia will hold mini Grobyc in her hand when you talk to her.



We have this list
It's room 193 on that list.
(Both versions of the treasury also contain Luccia's lab, set parameter to 01 to go to the lab part).

Ah, so there's aleady a room jump cheat.




It seems most of those with crash/black screen are scenes from disc2.

Quote from: http://www.chronocompendium.com/Term/Chrono_Cross_File_Structure.html
384 - Crash
It's S.S. Zelbess' comedy show.

Quote
439 - Crash
440 - Crash
441 - Black screen
442 - Crash
439 - Terra Tower summit, tele-pot platform scene.
440 - Terra Tower summit, under the stairway.
441 - Terra Tower summit, Frozen Flame scene.
442 - Terra Tower summit, Frozen Flame scene close range.

It seems those scenes are with their Sky Dragon Isle counterparts.

Quote
446 - Crash
El Nido Triangle First Area. Get stuck.

Quote
474 - Crash
475 - Crash
476 - Crash
474 - Clotho
475 - Lachesis
476 - Atropos

Quote
478 - Black screen
479 - Crash
480 - Crash
481 - Crash
482 - Crash
483 - Crash
484 - Crash
485 - Crash
486 - Black screen
487 - Crash

478 - Chronopolis sewer
479 - Chronopolis computer room(entrance to the sewer)
480 - Chronopolis stairway
481 - Chronopolis 4f right room
482 - Chronopolis 3f right room
483 - Chronopolis 2f laser doorway
484 - Chronopolis 4f left room
485 - Chronopolis 3f left room
486 - Chronopolis 2f left room
487 - Chronopolis 2f elevator hall

Quote
491 - Black screen
491 - Crhonopolis Frozen Flame room

Quote
496 - Black screen
497 - Crash
496 - Lucca's house, hall
497 - Lucca's house, stairs

Quote
506 - Black screen
507 - Black screen
508 - Crash
509 - Crash
510 - Crash
511 - Black screen
512 - Black screen
513 - Black screen
514 - Black screen
515 - Black screen
516 - Black screen
517 - Black screen
518 - Black screen
519 - Black screen
520 - Black screen
521 - Black screen
522 - Black screen
523 - Black screen
524 - Black screen
525 - Black screen
526 - Black screen
527 - Black screen
528 - Black screen
529 - Black screen
530 - Black screen
506 - Terra Tower entrance (the yellow boss)
507 - Terra Tower broken bridge(where you have to push the pillars)
508 - Terra Tower spiral stairway
509 - Terra Tower red trunks
...
530 - Terra Tower final form (boat scene)

Quote
534 - Black screen
535 - Black screen
536 - Black screen
537 - Black screen

534 - Ending, Schala's dialogues
535 - Chronopolis fights Dinopolis
536 - Day of Lavos
537 - Dinopolis in its home dimension
« Last Edit: February 13, 2009, 12:00:40 am by utunnels »

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: CHRONO CROSS ROOM SCRIPT INVESTIGATION THREAD (formerly event script thread)
« Reply #100 on: February 09, 2009, 04:11:37 am »
I wonder why all those crashed for ZeaLitY? utunnels, are you going through the Debug menu too, or are you basing this on investigating the raw data? I'll update these on the main file structure page and the Room Files subpage soon.

utunnels

  • Guru of Reason Emeritus
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2797
    • View Profile
Re: CHRONO CROSS ROOM SCRIPT INVESTIGATION THREAD (formerly event script thread)
« Reply #101 on: February 09, 2009, 04:14:50 am »
I think he only used disc1?

I wonder why all those crashed for ZeaLitY? utunnels, are you going through the Debug menu too, or are you basing this on investigating the raw data? I'll update these on the main file structure page and the Room Files subpage soon.

Oh, I used the cheat code instead of debug menu.

http://www.chronocompendium.com/Term/Chrono_Cross_File_Structure.html
« Last Edit: February 09, 2009, 04:17:32 am by utunnels »

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: CHRONO CROSS ROOM SCRIPT INVESTIGATION THREAD (formerly event script thread)
« Reply #102 on: February 09, 2009, 04:48:40 am »
Yep, Disc 1.

yaz0r

  • Architect of Kajar
  • Porrean (+50)
  • *
  • Posts: 65
    • View Profile
Re: CHRONO CROSS ROOM SCRIPT INVESTIGATION THREAD (formerly event script thread)
« Reply #103 on: February 09, 2009, 06:23:48 am »
I'm modifying the dumper so it can dump the scripts from the whole game in one pass. Also, I'll try to include the dialogue in the script disassembly so it's easier to figure out what the script is doing without having to check the dialog text every time.

I remember that some of the room on disk2 (especialy the developper ending room) overlaps regular rooms on disk1 (ie, they share the same room numbers). I may be wrong, but if I'm not, it means it's not possible to have a global list of rooms that work for both disk1 and 2.

utunnels

  • Guru of Reason Emeritus
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2797
    • View Profile
Re: CHRONO CROSS ROOM SCRIPT INVESTIGATION THREAD (formerly event script thread)
« Reply #104 on: February 09, 2009, 06:30:03 am »
I remember that some of the room on disk2 (especialy the developper ending room) overlaps regular rooms on disk1 (ie, they share the same room numbers). I may be wrong, but if I'm not, it means it's not possible to have a global list of rooms that work for both disk1 and 2.

You are probably right, because when I checked those rooms that are not listed, I didn't find the rooms for the developers ending...
Or perhaps they are just regular rooms with different script conditions?