Author Topic: New Protocols and Planning  (Read 14998 times)

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
New Protocols and Planning
« on: October 26, 2006, 01:53:50 am »
You know, I hate making thread after thread, but then again having a fresh start each time allows for easier and clearer presentation. After speaking to Geiger, I'm relaying and proposing guidelines for editors that must be adhered. Due to horrible abuse in the early stages of the project and a string import bug, the Crimson Echoes ROM is ailing. To prevent having to deal with corruption in the future, follow these rules.

  • When editing, after making a large edit to a map or event (or after finishing a new area), copy and paste the ROM in the same folder as a backup. I do this by having folders dated by day (like 10-15-06) in which I edit the most recent ROM. The first back up is something like 1_porreroom.smc. The second could be 2_guardiacastle.smc. These are named after each major edit, giving you a clear idea of where your progress sits if you must use a backup.
  • If you are editing outside work, export .flux files. Please do not make an .ips patch for something exportable or a new version of the ROM. Patches can only be used for things that Temporal Flux cannot edit or in special cases. The chance of corruption may be relatively remote, but it's time we stopped throwing our work back and forth like a football. We need to keep the ROM in the hands of one person. Since there really is no ROM right now, we'll determine later who gets it and how we'll transfer it if someone else needs to do corrective work.
  • Before you export files, download this and generate an MD5 checksum file for each .Flux. This may sound like overkill, but MD5 is a good way of checking file integrity.
  • As always, if you encounter an error while doing something normal, copy it down to a text file and exit the program without saving. I haven't explicitly asked Geiger about this, but it sounds like saving something in the face of an error is a pretty bad idea, so don't do it. Try to remember WHAT you were doing exactly (even if you have to use printscreen to take a screenshot) and copy down the exception error text so it can be tested later for an actual bug.

Any other suggestions from visiting ROM hackers or editors are welcome.

Now, we also have the problem of transferring the ROM's hard edits. We should postone what we can until a workable game is made. The chance that hard edits might corrupt something is remote, but still exists. We should hedge our bets and create a good, working adventure before customizing everything.
« Last Edit: October 27, 2006, 05:51:48 pm by ZeaLitY »

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #1 on: November 21, 2006, 03:17:03 pm »
I've been mulling it over, and I think we can decisively defeat corruption by maintaining an up to date library of all our work on the Crimson Echoes file server. Due to restructuring changes, only I have access to that now (though I'll see about others). We would have a section called "Exports" with a folder for every single changed location. You wouldn't export every little detail, but after making alterations and finishing an area (at least for a while), you would export the .Flux files and your .md5s for them and give them to me. I'd upload them. In the event of corruption, here's what we'd do.

If something corrupts, we'll remember the location. Then we'll take take an unmodified version of Chrono Trigger and systematically import our most up to date files (perhaps in amounts of ten). After each amount, we'll check the corrupted area to see if it happens. We'll narrow down what's causing it from there. At this point, we can ask JLukas, Geiger, Chickenlump, others here etc. to see if something specifically is causing it or if we just have a bad packet.

I plan to do this already when we build our new ROM. Once the exports are done, I'll go through every area checking events and maps for empty data. Just like last time, if we find a problem we'll track it down and send it off for evaluation. The only hard part would be inputting all the scroll value data / map size stuff, which I think is still unexportable...but regardless, yes.

~

I believe this process will finally put the nail in corruption's coffin. If we do suffer some problems, we'll be able to get them fixed with the help of our serious rom hackers in the group. Things can be remedied case-by-case with all our work preserved in .Flux files until voila, the finished product is ready.

In line with this, I'd like to hold off as long as I can on making hard alterations to the ROM. Like the King Zeal sprite issue, hard alterations run a slight risk of causing problems. If we're going to nail the source of corruption in a hypothetical future situation, it'd be easier in a controlled environment where we know either data integrity / import and export / old, bad CE packets are to blame -- and don't have to worry about big, hard edits.

Comments and discussion?
« Last Edit: November 21, 2006, 03:19:08 pm by ZeaLitY »

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #2 on: December 22, 2006, 11:21:36 pm »
Okay, so how should we get started? I was thinking that for now, we should just rebuild the game chapter-by-chapter. We should have two concurrent ROMs: the real one, and the one in which we'll keep track of hard changes with. So if I'm editing the Vanguard and make map XX 40 by 40, I'll make it 40 by 40 in our hard change ROM. This is so we can import / export without having to go through the process of making all the correct map lengths and scroll values. The hard changes ROM will be totally unedited save for keeping track of this stuff.

We'll be following all the protocols...so expect to see things pop up in that KingZeal folder.

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #3 on: December 22, 2006, 11:46:55 pm »
Well, sorry for another reply, but it looks like I'll be restoring the demo all the way up to where Chrono'99 and I were working on the plot before corruption. I'll post patches in the relevant thread.

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #4 on: December 23, 2006, 07:59:24 pm »
That's weird. Somehow, Load Screen (00) was configured to use event packet 18 on the old ROM instead of 17. Glad I figured that out...

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #5 on: December 23, 2006, 11:30:15 pm »
Figured I'd update everyone.

I realized that doing things piece by piece would be hard, since our exports would be jumping all over the locations list. So I'm going ahead and exporting everything that doesn't look corrupted (I've already excluded three event packets with strange / null strings). It's painful to examine every single one, but it's imperative we get off to the best start.

In time, I'll be ready for that ultimate test of importing everything and praying it all works. If it doesn't, we'll narrow down the offensive packet / bug and murder it in the face.

~

Heh! My new cider sure has a kick in it!
Did I say cider? I mean alcohol!
A-L-C-O-H-O-L! Hard to get used to
saying that after ten years.{null}

God, I was cracking myself up when I wrote that line.
« Last Edit: December 24, 2006, 12:21:16 am by ZeaLitY »

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #6 on: December 24, 2006, 11:39:06 pm »
We are using a "one location" system for 1002 A.D. Reptite world, so Overworld 2 - Future is open. IIRC, there have been a bunch of problems with getting certain things to work on the 1999 A.D. overworld, which is being used for 2300 A.D. / Chronopolis. If this is true, Overworld 2 can serve that purpose. Yay or nay?

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #7 on: December 25, 2006, 01:26:25 am »
Jiminy Christmas, I ran out of free space! So that's why the cathedral wasn't saving. I guess I need to expand the ROM beyond this point. Boy, I thought there was a little more free space in Chrono Trigger than that...almost had 1002 A.D. done.

Since I have no idea what else is left in or out, I'll restart my work. Up until that point, everything had worked perfectly, so we should be going well.

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #8 on: December 26, 2006, 06:16:31 pm »
Import / export is working fine, but copying over has been halted while an OW exit issue is being examined.

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #9 on: December 27, 2006, 04:20:03 pm »
Work has resumed. I'm going to try and get a working 1002 A.D. out soon, and I'm pretty much almost there. I'm still manually adding 1002 A.D. exits. Once 1002 A.D. is working, I'll upload all the events / exit packets imported or created in the process.

Here's where the team comes in. Once I get 11999 B.C. finished, I'll start making patches. The beta team's responsibility is to play every single patch (starting with the earliest) and visit every possible CE location in the normal course of the game. I can do this myself but I'd rather have others doublechecking it and it's also something to do for you guys to break the boredom.

Anyway, when the ROM is totally resurrected, I'll use the 7E0100XX code to test every single location in the game and make sure that we haven't had any corrupted events. If we do, we start the process over again. And at the end of 1002 A.D., we'll check the event that corrupted and see if it's gone. If it's not, we'll keep adding chapters until we find out which packet is causing the corruption. Then we can eliminate it.

We'll do this as many times as it takes until we get a completely stable ROM and ensure that no bad data is coming from Crimson Echoes. Then we can all breathe a huge sigh of relief and get on with our lives and making this game. Hopefully, we won't even have to mess with this phase. Import / export is working fine and I've discluded 4 previously corrupted event packets, which I'll manually copy and paste into the new ROM.

Anyhow, to see how my new CE folder is shaping up:

[attachment deleted by admin]

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #10 on: December 27, 2006, 05:03:19 pm »
Something I imported blanked map 3B. I'll try importing the cathedral stuff first (related to 3B) and then everything else I uploaded next in the faint hope that whatever it was will mess up 3B again. This predates all the exit business, so it's definitely something that was imported.

Map 3B itself corrupted once in 2005, so it might not be the healthiest thing either.

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #11 on: December 27, 2006, 05:38:53 pm »
Son of a BITCH, I couldn't reproduce the blanking though I've imported everything I had in the last revision. I guess I'll just use this ROM now. I am going to keep track of every single save I make to this ROM. Corruption will not escape me again. I will find the bad data and utterly eradicate it.

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #12 on: December 27, 2006, 05:44:35 pm »
New note: I'm going ahead and manually examining every location / normal event packet to see if anything at all has been blanked. I've recorded each and every step / save, so we'll be able to reproduce anything. This will take a while, so I apologize to Chrono'99 for yet another day for him without a stable 1002 A.D., haha.

I should have recorded the order I imported things the first time around; otherwise I wouldn't have to do this. It seems like documentation is the key to winning this fight.
« Last Edit: December 27, 2006, 05:46:35 pm by ZeaLitY »

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #13 on: December 27, 2006, 05:55:08 pm »
Found something at the 02A Forest Ruins; pops up automatically:

Code: [Select]
************** Exception Text **************
System.ArgumentOutOfRangeException: Value of '67' is not valid for 'Value'.
'Value' should be between 'Minimum' and 'Maximum'.
Parameter name: Value
   at System.Windows.Forms.NumericUpDown.set_Value(Decimal value)
   at Temporal_Flux.ExitForm.OnChangeExit(Object sender, EventArgs e)
   at Temporal_Flux.ExitForm.LocationFocusEnter(MapForm LocForm)
   at Temporal_Flux.LocationPropertiesForm.OnChangeLocation(Object sender, EventArgs e)
   at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
   at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
   at System.Windows.Forms.ComboBox.WndProc(Message& m)
   at GGRLib.FlatCombo.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Loading 2B Cursed Woods (Ending) gives the same error:

Code: [Select]
************** Exception Text **************
System.ArgumentOutOfRangeException: Value of '77' is not valid for 'Value'. 'Value' should be between 'Minimum' and 'Maximum'.
Parameter name: Value
   at System.Windows.Forms.NumericUpDown.set_Value(Decimal value)
   at Temporal_Flux.ExitForm.OnChangeExit(Object sender, EventArgs e)
   at Temporal_Flux.ExitForm.LocationFocusEnter(MapForm LocForm)
   at Temporal_Flux.LocationPropertiesForm.OnChangeLocation(Object sender, EventArgs e)
   at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
   at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
   at System.Windows.Forms.ComboBox.WndProc(Message& m)
   at GGRLib.FlatCombo.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

~

I'll continue the search for other anomalies. Once the search concludes, I'll repeat the earlier process and wait for this error to pop up.

02E Castle Magus gives me yet another error of this stock, so I'm going to go ahead and import our exits to a fresh ROM and see if these automatically result.
« Last Edit: December 27, 2006, 06:00:32 pm by ZeaLitY »

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Re: New Protocols and Planning
« Reply #14 on: December 27, 2006, 06:07:06 pm »
Tried importing just the four exit exports, and the exception isn't occuring. However, I made several backups of the other corruption testing ROM, and I've found that the exceptions happen after the hard changes / maps / exits are brought in in that order. I'll reproduce it one last time, see if I can narrow down the offending packet, then compile my exact instructions and post it for Geiger and the others to look at. I don't intend to do this with every single instance of corruption I find if there are more to be found, but this might be of interest to them. Let me note that I did close down Temporal Flux in between expanding the ROM and importing exits.