Difference between revisions of "Temporal Flux Event Tricks"
Line 1: | Line 1: | ||
− | ==Fade | + | ==Draw Geometry== |
+ | |||
+ | You can only see it's effects if there is a Brighten command right after it. The brighten command controlls the color, intensity, duration, etc. of the geometry, and the Draw Geometry data controlls what it looks like, how it forms, it's angle, various other stuff. Play around with both of them for cool effects. The other variables are fuzzy. | ||
+ | |||
+ | *00 . Modality - which coordinates are active, etc. | ||
+ | *01 . Point 1 X1 - which moves to... | ||
+ | *02 . Point 1 X2 | ||
+ | *03 . Point 1 Y1 - which moves to... | ||
+ | *04 . Point 1 Y2 | ||
+ | *05:08 . Point 2 | ||
+ | *09:0C . Point 3 | ||
+ | *0D:10 . Point 4 | ||
+ | |||
+ | Someone else should take a look at this to confirm. The modality byte is fairly confusing. The coordinates are pixel relative to the screen (not the map). X can handle a value of 0xFF. Y cannot (not sure of maximum). | ||
+ | |||
+ | Now, for a demonstration: | ||
+ | |||
+ | [[Image:Geocode.png]] | ||
+ | |||
+ | [[Image:Geo.png]] | ||
+ | |||
+ | ==Drugged / Confused Effect== | ||
+ | |||
+ | Set these memory values to make the screen wobbly. | ||
+ | |||
+ | *7E1DFD to 1 | ||
+ | *7E1DF9 to 1 | ||
+ | |||
+ | ==Fade / Darken== | ||
All notes use | All notes use | ||
Line 6: | Line 34: | ||
Multimode 2E<Br> | Multimode 2E<Br> | ||
Mode 40 | Mode 40 | ||
+ | |||
+ | Except where noted | ||
+ | |||
+ | ===Darken the Scene=== | ||
+ | |||
+ | Use this to darken the entire scene a little, making it appear gloomy. | ||
+ | |||
+ | [[Image:darkencode.png]] | ||
+ | |||
+ | ===Fade a Character to White=== | ||
+ | |||
+ | Use this to fade a sprite to almost pure white permanently; put it in that object's event code. | ||
+ | |||
+ | *MemCpy88(40,0F,0F,01) | ||
+ | |||
+ | You can undo the effect and return the character to normal with this. | ||
+ | |||
+ | *MemCpy88(40,0F,F0,08) | ||
+ | |||
+ | To use this, a certain MemCpy command must be employed: | ||
+ | |||
+ | Memory Copy<Br> | ||
+ | Multimode 88<Br> | ||
+ | Param 1 - F<Br> | ||
+ | Param 2 - F<Br> | ||
+ | Param 3 - 1<Br> | ||
+ | Data - Leave empty | ||
===Fade in Characters from Black=== | ===Fade in Characters from Black=== | ||
Line 31: | Line 86: | ||
*MemCpy2E(40,10,70,08) | *MemCpy2E(40,10,70,08) | ||
*MemCpy2E(40,10,70,80) | *MemCpy2E(40,10,70,80) | ||
+ | |||
+ | ===Fade the Background to Black with Visible Characters=== | ||
+ | |||
+ | This one fades the background to black, but your sprites remain visible. | ||
+ | |||
+ | *MemCpy2E(50,10,62,F0) | ||
+ | *Pause(0.500) (0.125) | ||
+ | *MemCpy2E(50,72,0A,F8) | ||
===Combination Fade=== | ===Combination Fade=== | ||
Line 45: | Line 108: | ||
*Pause(1.000) (0.250) | *Pause(1.000) (0.250) | ||
*MemCpy2E(50,00,72,0F) | *MemCpy2E(50,00,72,0F) | ||
+ | |||
+ | ==Random Enemies or NPCs== | ||
+ | |||
+ | I make use of the Random Number generator and have some comparison commands decide which monster gets loaded into the scene. In this example, I have 2 monsters, Gato, and Masa& Mune. Only one of them will load, based on the random number written to memory. Walk into Gato's Exhibit and Gato may be there, but the next time, maybe Masa & Mune will be there waiting. Imagine dungeons and areas where the monsters can be as unpredictable as you want (with a little work). If there are 255 possible random numbers to be generated, you could code in a monster for each possibility. | ||
+ | |||
+ | That would make for an awesome Colloseum type area (think FF6), where one party member is chosen, to face a random monster, and win a random prize...Here is my code, not copied from anywhere in the ROM, just sort of thrown together (I'm surprised it works). | ||
+ | |||
+ | [[Image:randomenemy.png]] | ||
+ | |||
+ | The Random Number is written to a different space in memory (It's 8 bytes off) but it's easy enough to see where using Geiger's Debugger RAM viewer. (That's why my comparison checks are checking a different location than what the Random Number command says it's writing to). | ||
+ | |||
+ | Remember in Final Fantasy 7, in the Golden Saucer, the shady guy that would appear at random and sell you points in exchange for your money? That would be cool to have a super rare occurance of some sort of merchant that sold great items, like one value out of 255 possibilities the player would run across this salesman. Or a powerful optional enemy that the most unlucky players will come across when they least expect it...Hey... random title screens! Why just have one? Every time they power on, they get a different title screen.... Nothing too fancy, just some fun automated events to watch, give the player more reasons to keep coming back. Anything is possible! | ||
''From'': [[Modification]] | ''From'': [[Modification]] |
Revision as of 23:08, 3 March 2006
Draw Geometry
You can only see it's effects if there is a Brighten command right after it. The brighten command controlls the color, intensity, duration, etc. of the geometry, and the Draw Geometry data controlls what it looks like, how it forms, it's angle, various other stuff. Play around with both of them for cool effects. The other variables are fuzzy.
- 00 . Modality - which coordinates are active, etc.
- 01 . Point 1 X1 - which moves to...
- 02 . Point 1 X2
- 03 . Point 1 Y1 - which moves to...
- 04 . Point 1 Y2
- 05:08 . Point 2
- 09:0C . Point 3
- 0D:10 . Point 4
Someone else should take a look at this to confirm. The modality byte is fairly confusing. The coordinates are pixel relative to the screen (not the map). X can handle a value of 0xFF. Y cannot (not sure of maximum).
Now, for a demonstration:
Drugged / Confused Effect
Set these memory values to make the screen wobbly.
- 7E1DFD to 1
- 7E1DF9 to 1
Fade / Darken
All notes use
Memory Copy
Multimode 2E
Mode 40
Except where noted
Darken the Scene
Use this to darken the entire scene a little, making it appear gloomy.
Fade a Character to White
Use this to fade a sprite to almost pure white permanently; put it in that object's event code.
- MemCpy88(40,0F,0F,01)
You can undo the effect and return the character to normal with this.
- MemCpy88(40,0F,F0,08)
To use this, a certain MemCpy command must be employed:
Memory Copy
Multimode 88
Param 1 - F
Param 2 - F
Param 3 - 1
Data - Leave empty
Fade in Characters from Black
These two memcopy commands will start your characters out completely black, and then slowly fade them into color.
- MemCpy2E(50,80,80,00)
- MemCpy2E(50,80,80,0F)
Of course, you can split these two up if you want them to stay dark while something goes on, and then fade them in afterwards.
Fade in Scene from Black
This 4 command memcopy segment is for the begining of an area, it fades the location in from black slowly (like it did for the characters, except this is for the whole screen).
- MemCpy2E(50,00,1C,00)
- MemCpy2E(50,1F,E0,00)
- MemCpy2E(50,00,1C,0F)
- MemCpy2E(50,1F,E0,0F)
Fade in Scene from White
Here is one that flashes the background white, like lightning, and fades back in, all smooth and cool-looking.
- MemCpy2E(40,10,70,08)
- MemCpy2E(40,10,70,80)
Fade the Background to Black with Visible Characters
This one fades the background to black, but your sprites remain visible.
- MemCpy2E(50,10,62,F0)
- Pause(0.500) (0.125)
- MemCpy2E(50,72,0A,F8)
Combination Fade
This one fades the screen in from black, but the characters fade in first, and then the background.
- MemCpy2E(50,00,80,00)
- MemCpy2E(50,7C,04,0F)
- Pause(3.000) (0.750)
- MemCpy2E(50,72,0A,08)
- Pause(4.000) (1.000)
- Pause(2.000) (0.500)
- MemCpy2E(50,72,0A,8F)
- Pause(1.000) (0.250)
- MemCpy2E(50,00,72,0F)
Random Enemies or NPCs
I make use of the Random Number generator and have some comparison commands decide which monster gets loaded into the scene. In this example, I have 2 monsters, Gato, and Masa& Mune. Only one of them will load, based on the random number written to memory. Walk into Gato's Exhibit and Gato may be there, but the next time, maybe Masa & Mune will be there waiting. Imagine dungeons and areas where the monsters can be as unpredictable as you want (with a little work). If there are 255 possible random numbers to be generated, you could code in a monster for each possibility.
That would make for an awesome Colloseum type area (think FF6), where one party member is chosen, to face a random monster, and win a random prize...Here is my code, not copied from anywhere in the ROM, just sort of thrown together (I'm surprised it works).
The Random Number is written to a different space in memory (It's 8 bytes off) but it's easy enough to see where using Geiger's Debugger RAM viewer. (That's why my comparison checks are checking a different location than what the Random Number command says it's writing to).
Remember in Final Fantasy 7, in the Golden Saucer, the shady guy that would appear at random and sell you points in exchange for your money? That would be cool to have a super rare occurance of some sort of merchant that sold great items, like one value out of 255 possibilities the player would run across this salesman. Or a powerful optional enemy that the most unlucky players will come across when they least expect it...Hey... random title screens! Why just have one? Every time they power on, they get a different title screen.... Nothing too fancy, just some fun automated events to watch, give the player more reasons to keep coming back. Anything is possible!
From: Modification