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

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #105 on: May 23, 2008, 08:17:33 pm »
I believe you are correct on the DA(34) observation. Changing the 0x34 to 0x33, at least, causes the spell animation to freeze at the very point it would when any other spell is used as a base.

EDIT: On the other hand, it's going to take some careful teasing to confirm that command DA(34) is what's needed. I overwrote something in Dark Bomb with DA(34) and the chaos tech froze still. However, the DA(34) may have to come after a certain sequence of bytes to be interpreted properly.
« Last Edit: May 23, 2008, 08:45:57 pm by FaustWolf »

Belthasar

  • Iokan (+1)
  • *
  • Posts: 11
    • View Profile
Re: Tech Editor - Period
« Reply #106 on: May 25, 2008, 05:07:25 pm »
If only I could figure it out. Thanks for sending me a link here.

OmniUnknown

  • Iokan (+1)
  • *
  • Posts: 13
    • View Profile
Re: Tech Editor - Period
« Reply #107 on: May 25, 2008, 06:00:58 pm »
For checking if your rom is headered or unheadered, NSRT can scan it.  If needed, it can add or remove headers as well.  There are different versions depending on what you use.  Here is a link.

http://www.romhacking.net/?category=&Platform=&game=&author=&os=&level=&perpage=20&page=utilities&utilsearch=Go&title=NSRT&desc=

Going to make some copy pasta from my hard type topic...  Belongs here better.  Also, I did all of this with the 3rd and 4th objects pretty much empty, except for return, which seemed to make it freeze without them.

All I have seen so far, is that in the second object of cyclone, fooling around with the parameters in unknown 6c(00,04), changes the color of the enemy when it is getting hit and how fast it flashes.  The first parameter is what effects the color they flash, and the 2nd seems to effect how fast they flash.  The lower the number the faster it flashes, although 00 does not produce any flash at all.  The variant infront for the most part seems to make you freeze if it is not on 6c. 

When I changed that same 6C to C4, this was the result.  http://www.youtube.com/watch?v=gvDrLMph-JA
When I changed 6C to D7, I got this instead.                   http://www.youtube.com/watch?v=B4MrMTCmn2U
Seems like that variable controls movement of both caster and target for the most part.

This is what happens when I keep the variable at 6C, while I changed parameters one and two to (07,03).  I also went into the first object, and changed LoadByte2Graphics(30) to 2E.  (30->2E)  Playing around with the LoadByte2Graphic seems to either give you a different color of Chrono Spinning, and on certain numbers is able to turn him into multiple fireballs while he spins.  Whenever it is even, is when it seems to be just normal sword spinning (00,0A,32, etc.), but being on an odd number (01,0B,31, etc.), causes that fire ball effect.     

(2E) http://www.youtube.com/watch?v=lxwjWHzaFJA
(FF) http://www.youtube.com/watch?v=FIFGG313xtw

>.>...
« Last Edit: May 25, 2008, 06:41:30 pm by OmniUnknown »

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #108 on: May 25, 2008, 06:23:48 pm »
Awesome, good to see others are interested. If we want to do a division of labor on tech exploration, I'll claim the seventh byte in the graphics header. It's not one of jsondag's top priorities, but I'm extremely interested in identifying the Layer 3 graphics effects and seeing which ones will need special coding to work.

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #109 on: May 25, 2008, 07:08:00 pm »
Just so you know when you are exploring the unknowns you want to only change paramters in order to figure out what they do.

For example unknown 6C XX YY the command is 6C.  If you change 6C to anything else you are dealing with a whole new command.  6C probably does have something to do with palettes since almost all the palette commands have been in the 60's. 

--JP

OmniUnknown

  • Iokan (+1)
  • *
  • Posts: 13
    • View Profile
Re: Tech Editor - Period
« Reply #110 on: May 25, 2008, 08:46:32 pm »
Eh, thanks for that.  Think I am going to stay away from this editor for a bit, it is really distracting me from that CT hard type I am working on XD.  It is just very fun playing with the editor I suppose.  Anyways, the last thing I was working on, was trying to adjust Cyclone so that it spins in a bigger circle, and hits all enemies.  The all enemies part I got, and getting it to go around in a bigger area was not that bad, although it could look a bit better.  Can't record right now.  Probably will start up again when I finish my project.

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #111 on: May 25, 2008, 09:10:21 pm »
You got it to go in a bigger circle??   I was attempting to do this and failed....


--JP

OmniUnknown

  • Iokan (+1)
  • *
  • Posts: 13
    • View Profile
Re: Tech Editor - Period
« Reply #112 on: May 25, 2008, 10:15:12 pm »
Eh, I know I said I wouldn't upload a video for some time, but that post made me feel like going through with it >.>...

Anyways, here it is.

http://www.youtube.com/watch?v=4HmNuMpZ27I

I will also write the exact things I had that gave this outcome.  It still needs to be tweaked in my opinion.  If you can't tell, I made it aim for all enemies, seeing how that big area around enemy option did not work.

-[E0917][E094A][52]NewObject
Set SpeedLevel(0C)
Set FacingNode(0D)
Load Animation06(1D)
Pause(05)
LoadAnimation06(26)
SuperCommand(1D)
Unknown27()
LoadByte2Graphics(30)
Move to Target(02,03)
Hide Shadow
Section++
Supercommand(1F)
Displace00(00)
CallSound(FF)
Section++
SuperCommand(1E)
LoadStaticAnimation(0E,02)
Set Speed Level(0C)
Move To Target(02,19)
Hide Shadow
Unknown28()
UnknownDA(1B)
Teleport(03, 33)
LoadAnimation06(03)
Wait for Section 03
Pause(14)
UnknownA0()
Unknown01()
Return

-[E094B][EO95D][19] NewObject
LoadGraphicHeaderByte7(00)
Wait for Section 01
Pause(14)
UnknownD7(00,0C)
Wait for Section 02
Pause(02)
SuperCommand(00)
LoadAnimation06(03)
Section++
Return

[E095E][E096A][13] NewObject
Wait for Section 01
Pause(14)
Wait for Section 02
Pause(02)
SuperCommand(05)
LoadAnimation06(03)
Return

-[E096B][E097F][21] NewObject
LoadByte2Graphics(30)
Wait for section 01
LoadSpriteAt(00)
Set Priority(03)
Unknown60(00)
Pause(04)
LoadAnimation02(00)
DrawingStatus(70)
Wait for Section 02
DrawingStatus(71)
Return


Very sure I did not touch the 5th object.  Sorry I can't tell you exactly what I did, I should have kept a record of what I got rid of, but hopefully you can see what differs between my cyclone and the original cyclone...  I think the main changes were that I got rid of Unknown6C(00,04) in the 3rd object, and changed the Unknown6C(00,04) in the 2nd object to UnknownD7(00,0C).

Hope this helps.

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #113 on: May 25, 2008, 10:42:11 pm »
Hm,

sadly I dont have time to dissect this right now, i'm wondering if somehow making it "all enemies" affected this.

I'm not sure how this command:

Move to Target(02,03)

is affected when target is all enemies?

--JP

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #114 on: May 29, 2008, 11:40:40 pm »
More fascinating news on the Layer 3 gfx pack front, jsondag. It appears that some graphics, like Magus' Dark Bomb, get shoved to the corner of the screen when they're used with hit-all spells, like Lightning 2 or Dark Matter. Apparently there's a conflict when the game tells some spell effects to be centralized with respect to the screen. Therefore, lots of spell effects (especially expanding domes and ovals) work perfectly with Dark Bomb but get stuck in the corner of the screen with a hit-all spell. There's something about Dark Bomb that is *required* for certain Layer 3 gfx packs, just as there's something about Black Hole that is *required* for Lavos' Chaos attack and certain others. It's not simply the hit-all targeting property that's responsible, either. I can give Dark Matter an expanding red-dome graphic and give it an enemy zone targeting property, and the graphic is still shoved to the top-left screen corner.

I'm compiling a list of what all the Layer 3 gfx indices produce, and which ones need certain code to work properly. So far I've come across "Dark Bomb" and "Black Hole" special situations.

Also, I see there's some unknown bits in the tech properties. Is it possible that elemental info might be stored as bits? Let's see, it would probably have to be at least three bits involved if it's something like this:

000 = No element
001 = Lightning
010 = Water
011 = Fire
100 = Shadow

Or it might be something completely different, with the leading bit specifying whether there's an element at all, and the actual elemental scheme being like so:

00 = Lightning
01 = Water
10 = Fire
11 = Shadow

I wonder if something like this would be plausible? It might throw someone off during an investigation of the data at hexadecimal level, where we might expect 0x01 to be Lightning, 0x02 Fire, 0x03 Water, etc., etc. This is all hypothetical musing of course.
« Last Edit: May 29, 2008, 11:43:05 pm by FaustWolf »

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #115 on: May 29, 2008, 11:55:17 pm »
The only reason I dont think that "properties" holds the elemental info is because Magus level 2 spells all have the same properties.

There's probably a "current target coordinates" variable somewhere.  For target spells it gets set to the enemies location hit all spells probably just set it to instead of picking one randomly. 

Getting a list of the "special" layer 3 graphics will definately be useful and we can find similar unknown commands for those spells.  It'll be exciting to be able to cast enemy techs that currently freeze.   :D

Great Job Faustwolf.

--JP

FaustWolf

  • Guru of Time Emeritus
  • Arbiter (+8000)
  • *
  • Posts: 8972
  • Fan Power Advocate
    • View Profile
Re: Tech Editor - Period
« Reply #116 on: May 30, 2008, 05:53:58 pm »
My observations regarding the Layer 3 GFX packs are attached as a Microsoft Excel spreadsheet. I have a page for the CallSound () function values as well, but I haven't gotten to checking those out yet. Some spell effects are really awesome; I could easily see things like Quake and Poison Mist spells that affect groups of enemies. A few are suitable for double techs; there's one with some snazzy black triangles that turn into a Flare. It's originally some enemy tech I'm sure, but it's a great basis for a Lucca/Magus double tech.

Useful Layer 3 effects seem to terminate at index 0x7B, and may in fact summon tilesets from that point on. The list isn't quite orderly enough for the wiki, but should be a major help to anyone interested in exploring tech graphics in the meantime.

When I return to tech investigation, I'll focus on isolating the commands that determine where the GFX pack is applied on-screen and how to get certain Layer 3 effects to "progress." Some don't even work fully with Black Hole, but probably require repeating segments of "progression" code that tell the GFX pack to keep unloading its stuff. Delta Force is one of these.


[attachment deleted by admin]
« Last Edit: December 21, 2008, 10:25:39 am by FaustWolf »

Agent 12

  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Re: Tech Editor - Period
« Reply #117 on: July 08, 2008, 01:07:40 pm »
I added the much sought after import/export system.  I haven't debugged it much though just did a few tests real fast.  so make backups first!

--JP

Mauron

  • Guru of Reason Emeritus
  • Errare Explorer (+1500)
  • *
  • Posts: 1775
  • Nu-chan
    • View Profile
    • Hi trig!
Re: Tech Editor - Period
« Reply #118 on: July 11, 2008, 11:54:59 am »
Locating enemy techs:

1) Set Exec breakpoint C14CC4.
2) Wait for enemy to attack.
3) Note the offset given. Spekkio returned this:
Code: [Select]
$C1/4CC4 B7 E6 LDA [$E6],y[$CD:AD2B]
The attack Spekkio used has the animation data start at $CD:AD2B.
4) The fastest way to resume is to disable the breakpoint, as it will step through the entire animation if you just hit run.
5) Note the attack used. Spekkio cast ice in this case.
6) Open the AI editor and find what attacks the enemy has.
7) The AI editor lists Spekkio's Killwala form as having the attacks 25, 2A, and 2B.
8) The encyclopedia's attack list explains what those are: http://www.chronocompendium.com/Term/Attacks.html Spekkio used attack 2A.

Double and triple techs can be done the same way. Set an exec breakpoint on C1D5EF to find the header. Enemies do not use the same header reading (and probably not header in general).

Vehek

  • Errare Explorer (+1500)
  • *
  • Posts: 1761
    • View Profile
Re: Tech Editor - Period
« Reply #119 on: July 11, 2008, 01:43:18 pm »
Most of the double techs I've looked at don't seem to have a simple header. For example, Aura Whirl loads the header data of Aura, and Fire Whirl loads the headers of Cyclone and Flame Toss. I think Double/Triple techs with different effects than the "components" might have their own headers. (Lifeline does, at 0C2427)
« Last Edit: July 11, 2008, 02:33:59 pm by Vehek »