Author Topic: Tech Editor - Period  (Read 28504 times)

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #90 on: May 22, 2008, 02:55:35 pm »
I saw an option for the Shadow Doom Blaze sound effect somewhere, but can the editor currently access enemy spell graphics packets? And would the "switch" we discussed in Chakrafire's thread come into play at all?

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #91 on: May 22, 2008, 03:28:18 pm »
I'm pretty sure the Byte 7 of the graphics header is shared by enemies and PC's.  I'm also pretty sure the same sound bank is used so the call sound command of this editor probably can call the sound you are looking for but it's not documented.  This conclusion is reached cause it's confirmed that gato's singing attack uses the exact same code (see the I think it's time to work on techs thread). 

However alot of byte 7 graphics causes the game tofreeze but someone can go through and try to find the ones that don't freeze, it's as easy as loading something that uses it....say hypnowave, open properties and type in the byte you want to try cast the spell and repeat.

Like I said alot of them freeze, maybe they use a different Command to load some bytes (for example try typing in 04 and you get a pretty cool one but it freezes afterwards).  Maybe eventually we'll get the enemy techs and see how it is done.

I don't think chakras codes will help out that much.  Some of them (the make PC2 cast spell for example) is already editable it's byte 1 of the animations header in properties.

--JP

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #92 on: May 23, 2008, 12:31:39 am »
jsondag, your tech editor is capable of providing hours upon hours of fun! In an attempt to create a "Fire Bomb," I accidentally created "DiscoBomb" :lol:
http://www.youtube.com/watch?v=PVg7-WLks74

Graphics Header values:
1st: 0x03
2nd: 0xF1
3rd: 0x00
4th: 0x22
5th: 0x03
6th: 0x06
7th: 0x13

The value 0x13 for the seventh byte is labeled "Fire" in the editor, so either some of the seventh-byte values are mislabeled, or I've stumbled upon some kind of switch (hopefully not; that would just make things too darned complicated).

I'm starting to feel that the first byte may determine the path sprite-layer spell graphics follow onscreen, whereas the sixth byte is the pointer to the sprite-layer spell graphics and the seventh byte is the pointer to the Layer 3 spell graphics. I'm probably wrong on that, but wanted to note it here in case I can find more evidence of this. In any case, there may be some complex relationship between the first and sixth header bytes.

json, once we get some cool samples, should we advertise the editor at Chrono Crisis, ChronoShock, GameFAQs CT board, etc? If people at other forums become interested enough, they might pitch in with more observations and accelerate the process, not to mention it would give people the necessary background tech editing skills they would need for a Tech Creation Contest. It's your work, so it's your call.

EDIT: With further experimentation, I'm becoming more confident that the first graphics header byte, at the very least, determines the "path" the sprite-layer graphics pack takes around the caster, whereas the sixth byte is the actual graphics pack to be used on the sprite layer. When I "sprite-layer," I'm using the terminology I'm familiar with in ZSNES, so it's the layer that can be toggled with the 5 key.

EDIT: Hee, one more before I turn in for the night. The following combination of header bytes freezes the game:
1st: 0x35
2nd: 0xEB
3rd: 0x00
4th: 0x0B
5th: 0x11
6th: 0x07
7th: 0x35

But, damn, doesn't Magus just look like the MAN standing there with that spotlight on him? Looks like he'd fit right in Saturday Night Fever.

Once again, some things are mislabeled in the edition I've got at least, and I think the mislabeling is probably restricted to header byte 7. There seem to be multiple Dark Matters and some others listed, so first priority for me is to find out what's labeled correctly and incorrectly there.

Thanks again for coding this! It is seriously awesome.

[attachment deleted by admin]
« Last Edit: May 23, 2008, 12:57:50 am by FaustWolf »

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #93 on: May 23, 2008, 03:15:17 am »
You were right about the mislabels thanks for pointing out the newest version has that fixed ( i had copy pasted the techs and were just reordering them by byte7, so where it stops being in numerical order was where it started being wrong).

That tech looks awesome by the way keep it up.  Go ahead and spread the news to other forums.  I probably won't be updating for awhile as I work on CE but it'd be great to come back and have alot of the commands figured out.

I suppose priority at this point should be:

A) Figuring out what determines the element
B) Figuring out headers, graphical and animation
C) Figuring out commands
D) Adding new techs (double triple, enemy).  In order to do this I need
         i) Location of MP (this is probably known i just have to confirm it myself, but we don't know if enemy techs even have this)
         ii) location of graphics header  (we probably know this too....but do we know if enemy techs have one?)
          iiii)  This is the hardest by far but also the most important.  Location of where the animations and sounds start AND end.  The best way is to just start one byte after the last known value, the first 4 byte will be the animation header.  Then look for another animation header after (they are usually something like 90 80 80 00).  Blank out what is in between and see if the tech stops working AND other techs continue to run flawlessly.

--JP

justin3009

  • Fan Project Leader
  • God of War (+3000)
  • *
  • Posts: 3296
    • View Profile
Re: Tech Editor - Period
« Reply #94 on: May 23, 2008, 08:31:39 am »
THIS IS HEADERED ROM!  REMOVE 200 BYTES!

MP cost of techs begins at C273C, 1 byte each.
Crono:
C273C: Cyclone
C273D: Slash
C273E: Lightning
C273F: Spincut
C2740: Lightning 2
C2741: Life
C2742: Confuse
C2743: Luminaire
Marle:
C2744: Aura
C2745: Provoke
C2746: Ice
C2747: Cure
C2748: Haste
C2749: Ice 2
C274A: Cure 2
C274B: Life 2
Lucca:
C274C: Flame Toss
C274D: Hypno Wave
C274E: Fire
C274F: Napalm
C2750: Protect
C2751: Fire 2
C2752: Mega Bomb
C2753: Flare
Robo:
C2754: Rocket Punch
C2755: Cure Beam
C2756: Laser Spin
C2757: Robo Tackle
C2758: Heal Beam
C2759: Uzzi Punch
C275A: Area Bomb
C275B: Shock
Frog:
C275C: Slurp
C275D: Slurp Cut
C275E: Water
C275F: Heal
C2760: Leap Slash
C2761: Water 2
C2762: Cure 2
C2763: Frog Squash
Ayla:
C2764: Kiss
C2765: Rollo Kick
C2766: Cat Attack
C2767: Rock Throw
C2768: Charm
C2769: Tail Spin
C276A: Dino Tail
C276B: Triple Kick
Magus:
C276C: Lightning 2
C276D: Ice 2
C276E: Fire 2
C276F: Dark Bomb
C2770: Magic Wall
C2771: Dark Mist
C2772: Black Hole
C2773: Dark Matter

Tech effects start at C1CCD, 2 bytes each.
Crono:
C1ACD: Cyclone
C1CCF: Slash
C1CD1: Lightning
C1CD3: Spincut
C1CD5: Lightning 2
C1CD7: Life
C1CD9: Confuse
C1CDB: Luminaire
Marle:
C1CDD: Aura
C1CDF: Provoke
C1CE1: Ice
C1CE3: Cure
C1CE5: Haste
C1CE7: Ice 2
C1CE9: Cure 2
C1CEB: Life 2
Lucca:
C1CED: Flame Toss
C1CEF: Hypno Wave
C1CF1: Fire
C1CF3: Napalm
C1CF5: Protect
C1CF7: Fire 2
C1CF9: Mega Bomb
C1CFB: Flare
Robo:
C1CFD: Rocket Punch
C1CFF: Cure Beam
C1D01: Laser Spin
C1D03: Robo Tackle
C1D05: Heal Beam
C1D07: Uzzi Punch
C1D09: Area Bomb
C1D0B: Shock
Frog:
C1D0D: Slurp
C1D0F: Slurp Cut
C1D11: Water
C1D13: Heal
C1D15: Leap Slash
C1D17: Water 2
C1D19: Cure 2
C1D1B: Frog Squash
Ayla:
C1D1D: Kiss
C1D1F: Rollo Kick
C1D21: Cat Attack
C1D23: Rock Throw
C1D25: Charm
C1D27: Tail Spin
C1D29: Dino Tail
C1D2B: Triple Kick
Magus:
C1D2D: Lightning 2
C1D2F: Ice 2
C1D31: Fire 2
C1D33: Dark Bomb
C1D35: Magic Wall
C1D37: Dark Mist
C1D39: Black Hole
C1D3B: Dark Matter

Double Techs:
C1D3D: Aura Whirl
C1D3F: Ice Sword
C1D41: Ice Sword 2
C1D43: Fire Whirl
C1D45: Fire Sword
C1D47: Fire Sword 2
C1D49: Rocket Roll
C1D4B: Max Cyclone
C1D4D: Super Volt
C1D4F: X Strike
C1D51: Sword Stream
C1D53: Spire
C1D55: Drill Kick
C1D57: Volt Bite
C1D59: Falcon Hit
C1D5B: Antipode
C1D5D: Antipode 2
C1D5F: Antipode 3
C1D61: Aura Beam
C1D63: Ice Tackle
C1D65: Cure Touch
C1D67: Ice Water
C1D69: Glacier
C1D6B: Double Cure
C1D6D: Twin Charm
C1D6F: Ice Toss
C1D71: Cube Toss
C1D73: Fire Punch
C1D75: Fire Tackle
C1D77: Double Bomb
C1D79: Flame Kick
C1D7B: Fire Whirl
C1D7D: Blaze Kick
C1D7F: Blade Toss
C1D81: Bubble Snap
C1D83: Cure Wave
C1D85: Boogie
C1D87: Spin Kick
C1D89: Beast Toss
C1D8B: Slurp Kiss
C1D8D: Bubble Hit
C1D8F: Drop Kick
C1D91: Red Pin
C1D93: Line Bomb
C1D95: Frog Flare

Triple Techs:
C1D97: Delta Force
C1D99: Life Line
C1D9B: Arc Impulse
C1D9D: Final Kick
C1D9F: Fire Zone
C1DA1: Delta Storm
C1DA3: Gatling Kick
C1DA5: Triple Raid
C1DA7: Twister
C1DA9: 3D Attack
C1DAB: Dark Eternal
C1DAD: Omega Flare
C1DAF: Spin Strike
C1DB1: Poyozo Dance
C1DB3: Grand Dream

Each 2 byte field indicates the targets of the tech.
Examples:
07 00: One enemy (Example: Confuse, Charm)
08 00: All enemies (Example: Dark Matter, Ice 2, Luminaire)
80 00: One ally (Example: Cure, Aura)
81 00: All allies (Example: Heal Beam, Aura Whirl)
03 00: One fallen ally (Example: Life)
04 00: All fallen allies
12 03: Enemy area (Example: Cyclone, Dark Bomb)
0B 01: Enemy line (Example: Slash)
0C 05: Enemy line (Example: Flame Toss)
11 02: Area around character (Example: Area Bomb, Tail Spin)
1B 0A: Area around character (Example: Black Hole)
13 02: Area around character (Example: Max Cylone, Fire Zone)
0F 0B: Horizontal line (Example: Falcon Hit)
00 00: One ally status (Example: Haste, Magic Wall)
01 00: All allies status (Example: Life Line)
13 06: (Example: Double Bomb)
0D 01: (Example: Blade Toss)

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #95 on: May 23, 2008, 11:34:29 am »
0x00 for Byte 7 is the totally awesome Layer 3 effect for Antipode 3. :D

However, having edited DarkMatter, I've found that the sixth graphic header byte may not be in total control of the graphics pack used for the sprite-layer animation specified by the first byte. I can use the sixth byte to change what the little dark bubbles around Magus turn into as they disappear, but not what they begin as. Garrr, how confuzzling!

Oh, and using 0xFF for the seventh byte has caused freezes on me. Strange, as that should simply specify no Layer 3 effect (and actually works as expected graphically). My guess is there's some conflct within the spell coding when you try to pull an 0xFF on a seventh byte when the spell was using a non-FF value to begin with.

EDIT: A-ha! The third header byte also gives some control over the sprite-layer graphics pack used in the tech. In Dark Matter's case, this is the byte I have to use to alter the little bubblies around Magus as he's casting.

EDIT: Well, dern it if the second header byte doesn't also control which sprite-layer graphics pack is used! For the moment, here are my findings regarding the purpose of each header byte:

1st: Sprite-Layer Animation & Sound ID; if you want DarkMatter bubblies around Magus but the Fire 2 sound, one will have to go and edit Dark Matter's code if he or she uses Dark Matter's index. Note that I still haven't found where the appropriate CallSound() function is for changing DarkMatter's second sound effect; I can change the sound effect used for the bubblies just fine though.
2nd: Sprite-layer graphics pack index
3rd: Sprite-layer graphics pack index

4th: Do Not Touch. It has great potential for screwing up one's beautifully crafted tech. Not sure what it's purpose is yet.
5th: Sprite-layer graphics pack palette.
6th: Sprite-layer graphics pack index
7th: Layer 3 spell effect.


That three of the seven header bytes would all have some control over the sprite-layer graphics pack seems unrealistic to me though, so I'll investigate this further. Too bad there doesn't seem to be any function to change the palettes of Layer 3 effects.

EDIT:
Alrighty, here's something good enough to advertise with, though I'm miffed at the audio/video mismatch.
http://www.youtube.com/watch?v=AhI4900RBqY

Here's my notes on each tech:
Doom Blaze
*Based on Magus' Fire2
Main Window
*Second Object -> CallSound(E4)
View -> Properties
*Header
**First: 0x33
**Second: 0xEB
**Third: 0x00
**Fourth: 0x0B
**Fifth: 0x05
**Sixth: 0x13
**Seventh: 0x00

Curse
*Based on Magus' Magic Wall
View -> Properties
*Hacking
**Magic Type: 0x01
**Target: 0x0700
**Tech Type: 0x02
**Status Offenses: all set to "true," with STOP apparently taking precedence.
« Last Edit: May 23, 2008, 02:42:59 pm by FaustWolf »

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #96 on: May 23, 2008, 02:31:01 pm »
The freezing may be that you are still using the "CallByte7Graphics" command but byte 7's graphics are pointing to nothing?  See if it's in the code I'm not sure which tech you are editing but it is almost always in object 00.

I looked into Dark Matter and found what the problem was (totally my fault).  I remember thinking dark matter and Blackhole were confusing me and it was because it was before I realized how much sharing of objects there was.  At the time I thought they used the same animations and sounds code and just different indexes for graphics/sounds.  Relooking at it I was totally off.  I fixed the problem and you can now easily change the sound effects of dark matter.  They weren't sharing all their code they were just sharing all their code except the big first three (If you remember the first three objects are always Caster, primary enemy hit, secondary enemy hit for multi enemy techs)

EDIT:  there was a short period of time where I had a version of the program up that had some debugging message boxes in it, you can redownload it if that bugs you.

--JP
« Last Edit: May 23, 2008, 02:40:25 pm by jsondag2 »

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #97 on: May 23, 2008, 02:45:19 pm »
Suh-weeet, I'll do some more Dark Matter work and check on the CallByte7Graphics function. That's almost positively the source of the problem I was having, since I didn't even look at that function when I changed byte seven to 0xFF.

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #98 on: May 23, 2008, 02:48:26 pm »
By the way I didn't notice your edits when I made that post, those techs seriously look awesome.  It's amazing how much you can do just by editing the properties.  The stop probably takes precedence only visually.  From what I can tell the game only shows one bad status effect but the rest are still there.  If you wait for the stop to wear off they'll probably be blind or something.


EDIT:  You should save these spc files and in a few weeks I'll make an export/import function.  Right now I'm in the middle of a move across the country so i'm quite busy.


--JP
« Last Edit: May 23, 2008, 02:50:06 pm by jsondag2 »

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #99 on: May 23, 2008, 02:58:17 pm »
Wow, good luck with the move. That the techs turned out well is a major testament to how user-friendly your editor is. Hopefully by the time you're able to sit still, we'll have recruited some helpers to identify graphics packets values or something. I haven't seen anything that looks like it corresponds to elements yet; I figure comparing Magus' elemental spell data (Lightning, Fire, Ice and Shadow all next to one another) will be the best way to identify the elemental addresses.

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #100 on: May 23, 2008, 03:08:07 pm »
Yea I really thought It would be in the properties where the status effect/power/hit% are located.  Unfortunately those are identical for fire/ice.  There may be yet another location in the rom that has to do with techs and what element they are.  ....i wouldn't know how to start looking for something like that.

--JP

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #101 on: May 23, 2008, 05:48:26 pm »
Suh-weeeet! Graphics packets for enemy techs and player techs are all stored together randomly. I just got Magus to perform "Dreamless!" YEAH, BABY!

HOWEVER -- two considerations that are going to make life miserable for a bit. First, some really cool-looking Layer 3 graphics packets, like Hexagon Mist and Lavos' Chaos attack, apparently require some additional code to finish the tech effect. For example, Magus' Lightning2 code has everything needed to open the Lavos/Chaos black hole thingy, but said black hole thingy doesn't release its cool lightning or close. The game freezes at that point.

Secondly, a lot of spell effects are going off in the corner of the screen. There may be some code that specifies the origin coordinates of the tech effects.

I'm keeping all the values I find in a spreadsheet, which I will upload in this thread at some point. If anyone is testing out Layer 3 spell Graphics Pack values, I've got 0x00 through 0x37 covered.

EDIT: YES! It has been confirmed before my very eyes -- for Layer 3 graphics that freeze, everybody, try those with Magus' Black Hole tech. Since it contains code necessary to close the Black Hole normally, that code apparently makes Lavos' chaos attack finish as well. I assume the case is similar with most techs that freeze mid-execution.
« Last Edit: May 23, 2008, 06:06:23 pm by FaustWolf »

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #102 on: May 23, 2008, 06:32:44 pm »
Excellent is there an unknown in black hole that stands out?

Jp

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #103 on: May 23, 2008, 06:54:19 pm »
The animation headers are different, but the thing I find most unique about Black Hole is the sheer number of NewObjects it has in the main tech editing window. My guess is Black Hole might have extra animation functions necessary to close out the tech graphics. Dark Bomb might be a similar case.

Next time I look at the techs, I'll focus on what, exactly, Black Hole has that techs like Lightning2 and Dark Matter do not.

EDIT: Okay, I've definitely learned that the animation headers aren't what give Black Hole the special property of being compatible with Layer 3 graphics packs that need "closure." I switched the values for Black Hole's and Dark Matter's animation headers, and Black Hole still completed the Lavos chaos tech, whereas DarkMatter still failed to carry it all the way through.

It's definitely some command tucked into the extra NewObjects Black Hole has. Now to see if Dark Bomb can carry through in the same way...

EDIT: Nope, Dark Bomb fails. Now to ferret through the NewObjects and see what's different between Dark Bomb and Black Hole...

EDIT: Searching through the last four out of the seven objects that Dark Bomb and Black Hole have, I see no difference with the exception that Black Hole has a "Return" byte at the end of its seventh object whereas Dark Bomb does not. However, I'm guessing that the major area of interest should be the first three objects. I'm taking a look.
« Last Edit: May 23, 2008, 07:29:56 pm by FaustWolf »

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #104 on: May 23, 2008, 08:07:06 pm »
Black holes objects are:

1- Caster
2- primary enemy
3- secondary enemy
4-7 = the 4 spheres around him when he casts stuff

the unknown 41's are probably moving something around.  The move sprite commands also have a variant where the second parameter is 1E and 1F, maybe this is the mystery command that moves layer 3 stuff?

There's quite a few other unknowns though:

unknown 7B(78, 00):     70's have in the past had something to do withh sound but who knowns

unknown 2D is almost ALWAYS above flash screen color

I figured out unknown 27 and 28

unknown DA(34):  In my notes i say that DA XX may possibly be used to do a command XX to layer three sprites.  But I dont think we know what 34 does...this is probably what is doing it.....you may want to try putting it in lit/ice/fire 2




--JP