Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Geiger

Pages: [1] 2
Chrono Trigger Modification / Custom Data Flux Example
« on: January 07, 2009, 09:39:26 am »
I'm sure some of you may be wondering how exactly to best put the Custom Data screen to use.  While I'm not prepared to write a tutorial any time soon, here's an example of what the game's Treasure data would look like if it were a Custom Data flux file.

Import this into a test ROM to see the information.

[attachment deleted by admin]

Interested in writing a plugin for Temporal Flux?  You'll want to grab the Temporal Flux Plugin Architecture!

Temporal Flux Plugin Architecture v1.00

This archive contains documentation on the TFPA, a starter project, and an advanced example consisting of the map editor directly from the source code of Temporal Flux.

The TFPA is an open standard and all developers are welcome to contribute ideas and further documentation.

Chrono Trigger Modification / Temporal Flux v3.00 Release
« on: December 05, 2008, 05:06:02 pm »
Several massive code rewrites later...

Temporal Flux 3.02

From the release notes:
v3.00  (2008.12.05)
- Loc Events . Several events can be launched from the prompt.  Separate entries by commas, and sequences by dashes or colons.  Don't open too many (>80) at once though; it will use a lot of system resources.
- Loc Events, Loc Maps . When launched from a Location Map, event commands with map coordinates will display their location on the map.
- Custom Data . Users can now custom define data, which can be imported, exported, and mark off freespace appropriately.
- Saving . Mark All Modified added to File menu.  Use this to reseat data records in large patches.  Use sparingly though, as it takes 15+ minutes to save.
- Plugin System . See the Temporal Flux Plugin Architecture documentation for more information.

- Loc Events . Cut (Ctrl+X) corrected for new string handling
- Loc Events . Dialogue could be displayed incorrectly in game due to spacing issues
- Compression . Compression tool no longer adds junk bytes onto end of data
- Strings . Setting all strings to dupes no longer crashes the program

- Loc Events . Decode for Draw Geometry
- Loc Events . Consistent decode between Textbox and Decbox
- Loc Events . MemCpy2E changed to ColorMath
- Loc Events . Partial editor rewrite, focusing on command display
- Overworld Events . PCSub (OEC 08) now decoded and updated to match moving code.
- Saving . Major rewrite of the save system, changing internal aspects of the entire program
- Treasure . Changing the treasure type is now considered a data-changing action.

Between the custom data and the plugin system, the future can only refuse to change for so long.

Chrono Trigger Modification / Temporal Flux status
« on: August 01, 2008, 02:41:15 pm »
A few of you were aware that another Flux release was imminent.  A bug was found today that changes all that though.  While not a major bug, it is in the Save System, which touches every part of the program.  Properly fixing the bug will trigger a major retest of features and functionality.

Since work had already begun on a major rewrite of the Save System, there is very little point in doing an exhaustive retest, to only have to turn around and do it again in short order.  So v2.80 is being canceled and absorbed into the rewrite and the next release of Temporal Flux is being delayed considerably.

There is currently no estimate on the time frame of release.

Chrono Trigger Modification / Temporal Flux event command organization
« on: February 19, 2008, 05:58:26 pm »
I have never been all that happy with how the commands in Temporal Flux are organized.  Some categories seem too broad and some seem too narrow.  But nothing else comes to mind as a better organization.

There are three levels of organization: Category, Command, and Variant.  Variant is typically unimportant and will be phased out completely at some point in the future.  There are 0xE0 variants (not counting Color Crash and its aliases), 0x61 commands, and 0x21 categories.

They are currently organized as such:

   Animation Limiter
   Reset Animation
   Get PC1
   Get Storyline
   Mem-to-Mem (A)
   Set Storyline
   Value-to-Mem (A)
   Bit Math
   Set Bits at 7E0154
   Mem-to-Mem (B)
   Value-to-Mem (B)
   Change Location
   Change Location-from-Mem
   Check Button
   Check Gold
   Check Item
   Check Party
   Check Result
   Check Story
   Check Drawn
   Check In Battle
   Mem-to-Mem (C)
   Value-to-Mem (C)
   Face Object
   Get Facing
   Set Facing
   Set Facing-from-Mem
   Restore HP / MP
   Get Item Amount
   Memory Copy
   Multi-mode 2E
   Multi-mode 88
   Draw Geometry
   Mode7 (and special purpose)
   Get Object Coordinates
   Set Object Coordinates
   Set Object Coordinates-from-Mem
   Call Object Function
   Script Processing
   Change Palette
   Party Manipulation
Project (Pseudo-commands)
   Random Number
   Color Addition
   Copy Tiles
   Fade Out Screen
   Script Speed
   Scroll Layers
   Scroll Layers 2F
   Scroll Screen
   Shake Screen
   Wait for ColorAdd End
   Wait for Silence
   Sprite Collision
   Drawing Status
   Drawing Status from Mem
   Load Sprite
   Sprite Priority
   Explore Mode
   Jump 7B
   Move Party
   Move Sprite
   Move Sprite-from-Mem
   Move Toward Coordinates
   Move Toward Object
   Object Follow
   Object Movement Properties
   Party Follow
   Vector Move
   Vector Move-from-Mem
   Set Speed
   Set Speed-from-Mem
   Load Ascii Text
   Special Dialog
   String Index
   Color Crash
   Unknown 2C

What do you people think?  How should this stuff be organized?  I'm not keen on adding another layer of organization, but I suppose that is also an option, if necessary.

Chrono Trigger Modification / Temporal Flux v2.75 Release
« on: January 30, 2008, 11:02:35 am »
One might think that after a year of development, I might be able to come up with something larger than a quarter-version update.  One would be wrong, but hopefully this increasingly hypothetical one will still find something of value in this release.

Temporal Flux 2.75

From the release notes:
- Import / Export . Status bar displays type and slot of file
- Loc Events . Write-time warning if a Goto exceeds the maximum range
- Loc Events . Text finder, helps locate text commands
- Main Form . Status now has a timestamp
- Maps . Explicit Paste can swap L1 and L2
- Misc Settings . Several new settings added
- Overworlds . No Landing Zone display
- Overworlds . Changeable L1/2 Tile Assembly value
- Saving . A file whose name contains 'unaltered' is treated as read-only.
- Saving . 'Save As' dialog
- Saving . Auto-Archive setting creates a new backup each time a project is saved
- Strings . Automatic line/page break insertion
- Translation . Editable alphabet and substrings
- Translation . Default string display
- Translation . Untranslated text finder

- Expanded ROM . Mirrored bank 40 data now updated on every ROM save
- Loc Events . Window autoscroll enabled
- Loc Events . Under certain circumstances, event packets could overwrite their own strings
- Loc Events . String commands now copy and paste their strings also.
- Loc Exits . Changing the total number of exits will now trigger their modified flag
- Loc Exits, Treasure . Imported Location Exits and Treasure were treated as compressed data
- Loc Tile Props . Transitional (Solid) and Plane 2 are now selectable for Walkable tiles
- Strings . {value 32} corrected to be {value 24}
- Strings . Can no longer edit more names than exist for enemies in English ROM
- Strings . Bad duplicate indexes are treated as index 00
- Strings . Strings using the Item font now use the correct space character for displaying after battle
- Strings . Japanese substrings were not decoded to the correct length

- Loc Events . Several commands updated
- Loc Events . Each event editor window now carries its own copy of the strings for its events, meaning sibling editors will not interfere with string values, and string values are not comitted until written to memory.
- Loc Tile Props . Solid Quad combo now updates solidity modifier
- Strings . String decoding code received a major overhaul

Obviously, we have not completed a translation project using this program, so there may be some features we didn't think to add.  If there is something additional you'd like to see, let us know (preferably in the suggestion thread).

This is also the most thoroughly debugged version of Flux released to date.  We entered Beta in early December.  Hopefully, 29 Betas and 42 total non-public releases will mean fewer bugs encountered.

Chrono Trigger Modification / Charm Details
« on: July 30, 2007, 03:55:24 pm »
Here's a thread discussing Ayla's Charm ability from my team's internal database.  Some of this information is also in the Offsets Guide.


01E9D5 - Beginning of charm processing
0C235C - Charm chance

Also of note, normally, Ayla has a fixed 27.7% chance to charm an item.  With
the Charm Top, this chance is tripled to just over 82.4%.

All determination of whether you get the item or not is done well before Ayla
even fluffs her hair.

Have not checked into Twin Charm yet.


Interesting stuff.  From watching what's getting stored to 7EAEE7 and 7E0016,
Twin Charm gets the byte at 0C2464 ($50).  In other words, 31.4%  Hmm, is that
correct?  That isn't much of an upgrade.

Breakpoint C1D5EF is worth noting.  When you perform an attack or tech, it
loads 12 bytes of data (starting at 0C213F), the second of which is the %

Trying to break down the Charm code further:

C1E9D5   C1E9DA   CODE   N   Start of Charm processing
C1E9DB   C1E9DE   CODE   N   Check if Charm Top is equipped
C1E9DF   C1E9DF   DATA   N   Charm Top item index ($A5)
C1E9E0   C1E9E1   CODE   N   Check if Charm Top is equipped
C1E9E2   C1E9E9   CODE   N   Charm Top equipped, increases Charm chance to

C1EA27   C1EA3F   CODE   N   Charm - stolen bit $80 and gets item reward index
C1EA40   C1EA56   CODE   N   Charm - stolen bit $40 and gets item reward index

(these last two lines are for resetting the enemy stolen bit in memory, so that
you can't steal the same item more than once from a single enemy)


31.6% to be more precise (remember, 0 is also a success).  Yeah, ye olde Twin
Charm is not so hot.  But if the Charm Top still counts (and I am guessing it
does), the highest steal chance is 94.1%. Probably great for single charm
chances, like boss fights.


As for why its not much of an upgrade, with the Charm Top tripling the result,
the maximum value without overflow is 0x55.  A better solution would probably
have been to up the base result slightly, make Twin Charm more effective, and
only doubled the effect with Charm Top.


0C2A33 - Chance to get rare charm (aka normal drop)?

Code is a bit confusing, but this appears to be the value loaded and checked
against to determine if a Charm attempt results in a charm or rare charm.

For a 100% base Charm chance, use this code:  CC235C FF


Chrono Trigger Modification / Chrono Trigger Offsets Guide
« on: June 12, 2007, 04:29:39 pm »
Chrono Trigger Offsets Guide

After 2.5 years, I have finally updated the Chrono Trigger Offsets Guide again.  Sorry about that, meant to update it several times since the last release but never quite got around to it. 

If you have an interest for digging into the raw binary of the Chrono Trigger ROM, this set of files will give you a nice starting point.  Read the info.txt file for a description of the other included files.


This archive contains two Flux files.  The release file is Actor, Animation, and Static Checker.Flux.  It allows one to view each of these things without modifying events for every little change.  Grab it here.

This is a technology demo of self-modifying code (SMC).  Assignment commands are capable of pointing into their own memory space and changing values.  But be warned before you start trying to use SMC that its a pain to maintain.  Every time you add, remove, or change a command, you'll need to check every SMC assignment and change its address.  This becomes particularly burdensome if you are using several of these assignments, such as in this Flux file.

To use this Flux, import it to its default slot, which will attach it to Location 067.  To attach it to a different location, you'll need to modify the ChangeLocation commands.  Provided that you change nothing other than this, the SMC assignments should still work fine.  Talk to Gaspar for instructions.

The other Flux file included is a slightly older version that is not as complete, but also does not use ChangeLocation.  NPCs are loaded in real time, though this does create some minor issues we have not yet solved.  This demonstrates some of the research that was done to achieve the real time loads.  Without setting the proper values in memory, Chrono Trigger will typically crash after just a few NPC loads.


Chrono Trigger Modification / Temporal Flux: New GUI Mockup
« on: April 03, 2007, 09:13:08 am »
I have been thinking as of late that Temporal Flux has been getting way too complex for the average user to understand.  This is born out by all the posts I see from bewildered new people who have no idea where anything is at or exactly how this feature or that feature works.  I decided it was time for a major overhaul.

As you will see here, I have simplified things greatly.  It should now be much easier to locate all of Temporal Flux's features and I think you will find the overall application much improved over its previous version.  After all, my beta team gave me the thumbs up, so it must rock.  :D


If you have a specific problem or would like to see a particular feature implemented, post the specific details here.

For bugs, be as detailed as possible with version number and step-by-step instructions to recreate your bug (preferably from the unaltered ROM).  But please make sure your instructions do not have a bunch of extra steps that are not needed for your bug to show up.  For example, if your problem appears when editing events, please check on all those map editing steps as I doubt they are needed.  Spending a little of your time to help narrow down the problem saves me and my team a lot of debugging time.


Chrono Trigger Modification / Temporal Flux on Direct X?
« on: January 12, 2007, 12:53:30 pm »
With the release of the XNA development platform and the full integration of Direct X into managed code, I would very much like to move to Direct X rendering.  But as with any new technology, there is a tradeoff.

- Faster rendering (I am guessing near instantaneous, but that is pure speculation)
- Special effects on tiles (I have a few ideas that are simply not feasible under GDIplus)
- True multi-layer rendering (internal difference only, no externally visible changes)

- Extra development time required to learn Direct X and rewrite PSVRender
- Another redistributable library to download in addition to .NET Framework
- Hardware dependent display (may not be clear, may not even work at all if your card is particularly old, has bad drivers, etc)


Chrono Trigger Modification / Temporal Flux v2.50 Release
« on: December 22, 2006, 05:59:33 pm »
Temporal Flux v2.55

Continuing my somewhat disturbing trend of only releasing updates once per year, usually around the holidays, here comes the latest version of the most versatile Chrono Trigger editor.  While not quite as big of an update as v2.00, it still has some significant new features.

This release requires v2.0 of the .NET Framework, which you can get from Windows Update and other locations on Microsoft's site.

From the release notes:
- Japanese ROM support . Full read / write support.  Normal editing only, not a translation tool.
- Beta ROM read-only support . Many packets have different formats which have not been fully figured out yet.
- Locations . Treasure Chest editing.  Relocatable and upto 0x80 per Location.
- Locations . Explicit Pasting.  Now specify which layers (and properties) you want to paste.  Even to another window when using "Most Recent Copy".
- Loc Events . Addresses in banks 00 and 01 are now translated to known address names
- Loc Exits . Relocatable and upto 0x80 per Location.
- Events . Directly editable without accessing the associated map
- Strings . Relocatable closing credits
- Misc . New (and much better) docking library
- Misc . Startup Location patch
- Compression . Compression dialog now displays packet statistics in status bar

- Locations . Changing subtiles when tilesets are invalid caused an exception
- Locations . Maps beyond C8 were not set to "compressed", and were not being saved.
- Locations . Event spinner was not limited to 201 packets
- Loc Events . Commands not saved in ArbC in last object
- Loc Events . Paste failed when no objects present
- Loc Events . Rename Epoch did not update properly
- Loc Events . Crash on change command or category when no node selected
- Loc Events . Crash on edit command 5D.  Was classified as "Unused" which is no longer valid
- Loc Exits . Half Tile Up & Left were swapped
- Maps . Subtile updates caused program to hang if there were a large number of tiles to update
- Overworlds . Crash when tileset set too high
- Overworlds . Palette Shift did not work for most Overworlds
- Overworlds . Tile properties value not saved
- Overworlds . Not using correct Exit index
- Overworlds . Not refreshing for Exits, Tile Props, or Music Transition
- OW Events . Decrement Until Zero did not update its label properly, potential crash
- OW Events . AddObject crashed game
- OW Events . Could not edit comments
- OW Events . Deleted comments may not have been cleared when saving.
- OW Events . Crash on edit music set to 0xFF
- OW Exits . Crash on edit exits after saving
- Import / Export . Strings were lost when importing Location Events, leading to game crashes and possible ROM corruption
- Import / Export . Null error on saving imported Overworld Events
- Strings . Special character 12 now distinguishes between tech and monster
- Strings . Wrong space character was used for Table 2
- Strings . Display not updated when opening ROM
- Strings . Crash on forward-duplicates
- Saving . Crash on write to read-only file
- Saving . Checks for "not enough space"
- Music . "No Music" set to "Invalid" on lost focus
- Music . Set to Silence on new window

- Loc Events . TreeView is now always scrolled to top
- Loc Events . Max Locaton Event packet size of 1700 now checked for when saving
- Loc Events . "Touch" pointer added
- Events . Many more commands decoded and several corrected, expanded
- Maps . Drawing function stack rewritten so each function is independant of the others.  Fewer things get done multiple times.
- Misc Settings . Manage Party split into separate Overworld and Location values
- Music . Updated list
- Internal Code . some internal code partially combined for a smaller executable and fewer code rewrites

- Import / Export . v2.00 is not forward-compatible with v2.50's Flux files

While this version can edit the Japanese ROMs, this is not a translation tool.  It will not even accept non-Japanese characters for strings (or non-English characters for the NA release either).  Translators will still want to use Bisqwit's chronotools utility set.


Chrono Trigger Modification / Flux on the Mac?
« on: December 06, 2006, 11:52:35 am »
The most recent release of Mono added support for the Windows.Forms library, and perhaps also GDI+ (which Flux makes heavy use of).  Can someone with a Mac at their disposal please try downloading the 1.2 release of Mono and seeing if Flux will run on it?  Screenshots would also be nice.  :)


Chrono Trigger Modification / Fix _all_ bugs in Flux?
« on: November 03, 2006, 04:46:57 pm »
The next version of Flux uses a new docking library.  I have not quite whipped it into shape just yet (I will have a freakin' stroke if I ever download an open source project that I can use right out of the box), and it still has several window sizing bugs (and will crash under certain conditions).  These bugs do not affect the vast majority of tasks the user will perform while using Flux however.

I feel it is "good enough" for now and these issues are taking a backseat to normal Flux development.  The question I have for you here is that if I finish up everything else for Flux (all the other bugs and features), should I hold back its release until I fix the bugs in the docking library?

Normally, I would not even give this a second thought.  I would just hold the program back.  But I have already spent a full week trying to whip the library into shape (approximately 30 hours), and I am not certain how much longer it will take to finish or how much time I will have to work on it.

Of course, I did ask my BETA team about this first.  JLukas had some reservations, but gave the green light after I fixed up a Tile Swatch bug today.

Chickenlump had the following to say:
I also feel it is good enough for now, though it does have an issue or two, I don't think it will hinder the experience, with all the new features and fixes available. I am rather impressed by the new docking library, it feels better all around, once the learning curve is passed.

Please note that this does not mean a Flux release is imminent.


Pages: [1] 2