The forum has been updated to SMF (2.1.3)!
Please be patient as we work to polish up the place and update features as we can.

Main Menu

Golden Sun TLA: Editor Download & Guide - OLD: See reply for details

Started by Atrius, 10, October, 2008, 01:52:00 PM

Previous topic - Next topic

0 Members and 17 Guests are viewing this topic.

Atrius (He/Him)


[Version 0.4] June 30, 2011 (1.37 MB .zip)

[Español language.ini v0.4]  (5.34 KB .zip) (Thanks Rafael "Darkest Ivan")

Older Versions

[Version 0.3] October 31, 2010 (1.68 MB .zip)

[Version 0.2] February 14, 2009 (1.70 MB .zip)

[Version 0.1] October 10, 2008 (1.62 MB .zip)

[Download Link] April Fools Day Hex Editor Edition (with background pack), April 1, 2010 (2.11 MB .zip)


Item Editor
Ability Editor
Party Member Stat Editor
Class Editor
Enemy Editor
Enemy Group Editor
Map Viewer
Sprite Viewer

Feature Log

Version 0.4
- Artifact editor
- Shop editor
- Innate Ability editing added to party member editor (Only compatible with TLA)
- Ability animations now identified by names of abilities that use them
- Preview pane added to Ability Animation selector (Only compatible with TLA)
- Function call detector added to NPC editor (Allows easy editing of shop & dialogue data called in ASM scripts of NPCs, only compatible with English TLA)
- Improvements to Sprite viewer (You can now view all the sprites in a sprite set)
- Compression efficiency improved
- Improvements to data location detection methods (Slight speed up of loading ROMs)
- Some very basic compatibility with NitroROM filesystem (.NDS files)
- Bug Fixes
-- Error reading byte in map editor
-- Leak in data repointer fixed
-- String mismatches on foreign language versions (Most notably Japanese)
-- "*Crashes Game*" labels on ability animations offset by 1 slot
Version 0.3
-Text editing
-Item modifiers that are multipliers are identified
-Party member battle sprite swapping
-Automatic type setting option for classes
--Class separation patch added to code patches for party members 4-7
-Djinni Editing
-Summon Editing
-Enemy Editor updates:
--Stat layout reorganized
--Attack patterns identified, and put into drop down list
--GS1 compatibility added
-Map Viewer updates:
--Drawing code optimized, support added for special effect modes on layers
--Added buttons for hiding layers
--Some basic NPC editing functionality added
---Can view all NPC sets detectable in Map data
---Can change NPC locations, and sprites
---Event viewer allows viewing of ASM, and idle scripts associated with NPC, as well as editing of dialogue
--Hex viewer now allows editing
--Code pointer viewer (Scans functions at the beginning of the map code for data pointers)
--Tileset viewer
-Most lists can be browsed with arrow keys
-All input fields allow text to be highlighted, cut, copied, and pasted
-Majority of text from interface has been exported to language.ini file to allow translating
-Bug fixes
--Unknown variable errors when saving, or exiting the program
--Party member maximum name length no longer changes to 11 by itself
--Enemy defense is now editable
--Error defining external function sometimes in newer versions of windows fixed
--First enemy in a group no longer gets set as the leader of the previous group as well
--Parts of the interface no longer disappear while using the party member editor
--Saving should no longer cause errors while in the ability editor
--Some errors relating to ability ranges have been fixed
--Starting the editor from a shortcut, or dragging & dropping a file onto it from another folder should no longer cause errors with finding necessary files
--Some typos in disassembled ASM code fixed

Version 0.2
-Ability editor
-Party member stat editor
-Class editor
-Map viewer (Still WIP)
-Code patches
--Change maximum party member name length
--RNG patch (Attempts to fix the predictability of the Battle RNG that people take advantage of)
-Viewing/Swapping portraits in sprite viewer
-Swapping item icons
-Search boxes on most lists
-Largely compatible with other language version of TLA, the original Golden Sun, and some compatibility with Mario Golf & Tennis for GBA.

Version 0.1
-Item Editor
-Enemy Editor
-Sprite Viewer
-Map ID list
-Text Viewer
-Works with the English version of Golden Sun: The Lost Age (0940)
-Can save
-Customizable background
-Golden Sun inspired interface
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Atrius (He/Him)

NOTE: This text is included in earlier versions as TLAeditor_guide.txt

Golden Sun: The Lost Age Editor
Version 0.1     October 10, 2008

Created by Josh "Atrius" VH

Welcome to the world of Golden Sun hacking!

This program is intended to be very user friendly as far as game hacking tools go.  Since it's still pretty early along in devolopment I need your help to make sure it gets that way. Feel free to visit the URL at the top of this file, and complain about how confusing the interface is.  I would really appreciate it, really!

First and foremost, I ALWAYS recommend keeping a backup copy of the original ROM file. The editor is still in early stages, and although I have faith in my programming abilities I still can't guarantee the ROM file won't get corrupted by some strange coincidence while you're using the editor. I blame it on the goblins, don't let them ruin your day, keep a backup.


Table of Contents

1. Loading a ROM
2. Saving
3. Switching Editors
4. Item Editor
5. Enemy Editor
5.A. Individual Enemy Editor
5.B. Enemy Group Editor
6. Map Viewer
7. Sprite Viewer
8. Text Viewer
9. Closing Statements


1. Loading a ROM

When you open the program there should be a box in the center of the window that says "No file open" Fixing that is as easy as going to the top-left, and clicking on File > Open.  You'll need an english ROM of 'Golden Sun: The Lost Age' to use the program. If you don't have one, unfortunately you'll have to get it yourself.  I can not provide you with one, please do not ask.

Alternatively, you can also press Cntrl + O to open a ROM.


2. Saving

Perhaps just as important as knowing how to load a file is knowing how to save your progress.  Simply go to File > Save to save to the same file you opened, or if you want to create a new file go to File > Save As...  After using Save As, all subsequent saves will be made to the new file. I recommend you never save over the original ROM file, and always keep a back up copy of it some where.

Alternatively, you can also press Cntrl + S to save, or you can press Cntrl + Shift + S to save as.

NOTE: It's a bad idea to post ROMs on forums, or anywhere really. To distribute your hack I recommending finding a progam to turn it into a patch file, and distributing that instead.  Lunar IPS is a good patch creation/application tool. You can get it at the URL below.


3. Switching Editors

Once you've opened a ROM the item editor has likely opened up automatically, but it's important to know how to switch to a different editor.  Toward the top right of the window is a bar of icons, hover your mouse over them, and watch the text to the right.  Switching between editors is as easy as finding the right icon, and clicking on it.


4. Item Editor

Alright, now into the real work. When first opened the item editor has a list of items on the left, and a huge blank panel on the right.  Once you select an item from the list, the panel gets filled with all sorts of nice data. Lets go over all of it, and remember if it isn't apparent what something is, hover your mouse over it, and wait for a tool tip to appear.

At the top left you'll see the items icon, beside that is it's name, and below, the item's description.  Unfortunately none of this is editable in this version of the editor, so let's move on.

NOTE: The item icon is loaded from a database in the editor right now, not the ROM.  So if you hack the item icons yourself, the change wont be reflected in this version of the editor.

Located at the top center this is, predictably, the price the player has to pay to buy the item. Selling price is always calculated as 3/4 this value.

Min/Max value: 0/65535

Located at the top right. Mostly this just dictates which equipment slot the item can occupy. The names are pulled from the ROM, so some may be misleading... I may have to change that.
Possible values include:

Items: Anything that can not be equipped at all.
Weapons: Swords, Axes, Maces, Staves (Plural of Staff), e.t.c.
Armor: Vests, Mail, Armor, Robes, Dresses, e.t.c.
Chest protector: Shields, Bracers, Gloves, Armlets, e.t.c.
Head protector: Hats, Caps, Helms, Crowns, Circlets, e.t.c.
Leg protector: Boots.
Fan: Psyenergy bestowing items.
Lucky Charm: Trident.
Ring: Rings.
Open: Under Shirts.
Underwear: Oddly enough, Class changing items.
?: Elemental Stars

It should be noted that Items cannot be equipped at all, and only Weapons can use an Unleash.

Located at the top right under the equipment type. Indicates whether the item can be used as many times as the player wants, just once, until it breaks when used in battle (or is later repaired), bestows a psyenergy (In which case the use field indicates which ability), or if it changes after being used. The names of the values are pulled from the ROM.

NOTE: "Item will change" appears to be programmed to specifically only work for Hermes' Water, It's a shame really.

Located toward the top right to the left of Defense. This value indicates how much a characters attack stat is modified when they equip this item.

Min/Max value: -999/999

NOTE: Really the Min/Max ought to be -32768/32767.  Expect that to be fixed in the next version, I apologize for the inconvenience.

Located toward the top right to the right of Attack. This value indicates how much a characters defense stat is modified when they equip this item.

Min/Max value: -128/127

NOTE: The difference in Min/Max range from the Attack value is explained by the fact that the game uses twice as much memory for an items attack as it does for it's defense.

--Unleash Rate
Located toward the upper center right, below attack, and defense. If the item has an unleash ability, this is how often it will be used when you attack with this item equipped as a weapon in battle.  Possible values are multiples of 5% from 0% all the
way up to 100%.

Located toward the upper center right, below Unleash Rate. This is the elemental affinity of a weapons normal attack.  When the item is equipped as a weapon in battle attacks may cause more, or less damage depending on the character using the item's corresponding elemental power and the corresponding elemental resistance of the target.

--Equippable by
Located on the right below the attribute, a check mark beside a character's name indicates that they can equip the item as long as it is in fact equippable (Type is set to anything but Items).

Located on the left below the item description.

-Curses when equipped
The item inflicts the "curse" status effect while equipped.

-Can't be removed
Once the item is equipped it can't be unequipped the normal way.

-A rare item
Is a rare item.

-An important Item
Cannot be sold.

-Carry up to 30
Up to 30 of this item can be carried. Try using this with weapons, and other equipment. I haven't noticed any bad glitches from it.

I have no idea, you get a cookie if you can tell me what it does if anything.

--Additional Effects
Located toward the bottom, below the equippable by flags, and misc. flags.  Each item can have up to four additional effects while equipped.  These can increase your stats, number of turns in battle, remove curses, or even increase the number of random encounters. Their names are pulled from the ROM.

Hopefully they're self-explanatory by their name.  There are duplicates of some of them, in those cases I always recommend using the first appearance in the list.

To the right of each additional effect box is a number value, this is a modifier value for that effect. Keep in mind that Some effects may not use this value at all.

Min/Max value of modifier values: -128/127

Located at the bottom left. This is the effect of the item when used, or if the "uses" field is set to "Bestows Psyenergy" this indicates which psyenergy the character gets from equipping the item.

Located at the bottom right. This is the ability the item will sometimes unleash in battle while equipped as a weapon.


5. Enemy Editor

When first opened, the enemy editor will be set to edit individual enemies.  At the top of the enemy list on the left you'll notice a small gray extra panel that says "Individuals" Click on this to switch between editing individual enemies, and enemy groups.


5.A. Individual Enemy Editor

On the left you have a list of enemies to choose from, and to the right is a huge empty panel once again. As before once you actually select an enemy from the list, the panel will get stuffed with all sorts of interesting data to edit. Also as before you can hover your mouse over most things to find out what they are. Well... That is if I know what they are. Yes, you'll find some unidentified values here, I apologize for the inconvenience, and of course anyone who can tell me what they are as specifically as possible gets a cookie.

At the top left is the enemies name. Sadly, it's not editable in this version of the editor.

A sprite, by definition, is a graphic in a video game that can be animated or moved independently around the screen. In this case we have the graphic of the enemy.  Click on it to change the enemies appearance.

The sprite selection interface is a little more complicated than other selection interfaces you'll see. It's fairly similar to the Sprite Viewer though, so if you need help using it refer to the Sprite Viewer's section in this guide. Of particular interest though are sprites that are actually 2 sprites wide such as the Doom Dragon, for these you'll want to be sure to select the first half, or you'll only end up with half a monster. Also know that it appears Golden Sun: The Lost Age doesn't like applying palette swaps to them, although the editor doesn't mind it at all.

NOTE: The sprite viewer has 15 palette swaps, while battle sprites for some reason are limited to the first 5.

Located at the top center to the right of the enemy's name. This is the level of the enemy, which is used during calculations for some attacks.

Min/Max value: 0/255

Located at the top right. This is the number of the turns the enemy gets during battle.

Min/Max value: 0/255

NOTE: I believe it's actually clamped to a maximum of 4 in game, this may be reflected in a future version of the editor.


Located toward the top center, below Level. The health points of the enemy, and amount of damage they can take before being defeated.

Min/Max value: 0/65535

Located toward the top right, below Turns. The Psyenergy points of the enemy, or amount of energy it has for special abilities.

Min/Max value: 0/65535

Located toward the top center, below HP. The Attack strength of the enemy, which relates directly to how much damage they can cause.

Min/Max value: 0/65535

Located toward the top right, below PP. The Defense stat of the enemy. A higher defense decreases the amount of damage the enemy recieves.

Min/Max value: 0/65535

Located toward the top center, below Attack. The speed of the enemy, which decides when their turn comes in battle. The more speed the sooner they get to go.

Min/Max value: 0/65535

Located toward the top right, below Defense. I'm not really sure what luck does.

Min/Max value: 0/255

--HP regen
Located toward the upper center, below Agility. The amount of HP the enemy regenerates at the end of each round of battle.

Min/Max value: 0/255

NOTE: For some enemies a multiplier is applied to this.  That isn't factored into the value here, I'm not sure where it is.

--PP regen
Located toward the upper right, below Luck. The amount of PP the enemy regenerates at the end of each round of battle.

Min/Max value: 0/255

NOTE: A multiplier may may be applied to this for some enemies, like is applied to HP regen. More testing is required.

Located a bit above center, below the sprite, and HP/PP Regen. Each enemy can carry up to 4 items they can use in battle. Beside each item is a number, which specifies how many of that item the enemy is carrying.

NOTE: These items are not dropped when the enemy is defeated.

Located a bit above center at the left, below items. Unknown, though it may affect the the checkboxes beside each ability do. I'd love to know what exactly it does, there's a cookie in it for you.

Located a bit above center toward the left, below items to the right of the first unknown value.  Unknown, though it may affect the enemies AI. Set to anything above 5, the enemy will do nothing but defend. If you have more information, I'll trade you a cookie for it.

Located center, below & above unknown values. The abilities that the enemy posseses. Each ability has a checkbox beside it, but heck if I know what they do. If you want a cookie find out for me, pretty please!

If for any reason an enemy is unable to perform an ability it selected for that turn it may decide to attack or defend instead. Sometimes they may defend even if they don't technically have the ability to.

Located toward the bottom underneath abilities. A set of four values that I have yet to identify. I have a hunch The last one may not be used at all, but if you can prove me wrong or tell me what the other ones do you get a cookie.

Located toward the bottom left, underneath the slew of mystery values. The number of coins the player recieves for defeating the enemy.

Min/Max: 0/65535

--Item Reward
Located toward the bottom center, to the right of Coins. The item the player might recieve upon defeating the enemy's group.

To the immediate right of the item reward is the chance of it dropping. For you RNG fanatics:

1/1 = ICC 1
1/2 = ICC 2
1/4 = ICC 3
1/8 = ICC 4
1/16 = ICC 5
1/32 = ICC 6
1/64 = ICC 7
1/128 = ICC 8
1/256 = ICC 9

NOTE: Can't you only get one item per enemy group you defeat, though multiple enemies could be coded to always drop an item? Worth investigating which item you'll get when you're "guaranteed" to get multiple.

Located toward the bottom right, to the right of Item Reward. The amount of experience the player recieves for defeating the enemy.

Min/Max: 0/65535

--Elemental Stats
Located at the bottom. You have your enemy's elemental attribute followed by three unidentified/unused values (Cookie anyone?). Below those is a table of elemental level/power/resistances.

NOTE: Uneditable because these sets of stats are shared between enemies. A seperate editing interface will be available for them in a later version of the editor.


5.B. Enemy Group Editor

On the left is a list of enemy groups, on the right is a rather blank, but relatively small panel. If you select an enemy group you'll be treated to the relevant data about it in the panel on the right. You can hover your mouse over a value to try get a tooltip stating what it is. Sometimes you'll just get question marks though, what I really meant to write there is "Free cookie if you tell me what this value means."

It may be worth explaining what an enemy group is. Imagine you're traveling around Weyard in search of the next lighthouse.
*dun dun-dun-dun-dun-duuh dun duh duuuh dah daah da-daah dah*
*K-KAWRRR* Oh No! A random battle.
"Mini-Goblin Appeared!"
"Angle Worm Appeared!"
That is an enemy group. When you enter a battle the game has an enemy group selected that the player has to fight against, they can contain anywhere from one to five unique enemies. Each battle isn't against a single enemy or more selected at random, but a predefined enemy group (although there can be some randomness to
it as you'll soon see).

They're pretty much the meat, potatoes, as well as what ever vegetable is being served of the enemy group editor, if you can't locate them there's a problem. There are five slots for enemies, each has a minimum & maximum value. The minimum & maximum values specify the amount of that enemy that might appear at the beginning of the battle, minimum being the least number that can appear, and maximum being the most. A value between them will be selected at random when the battle starts.

NOTE: Golden Sun: The Lost Age is picky about what how many of what kind/size of enemies can appear glitchlessly. The game automatically limits itself to a maximum of six enemies at any time, but you may need to experiment to ensure their sprites don't get screwed up from the game running out of video memory to store them in.

You may notice four odd values off to the right, I think they're odd too. It's worth a cookie to let me to know why they're not so odd after all.


6. Map Viewer

This is really an awesome feature from here you can... Oh wait, "This feature has not been programmed yet."  Well what kind of lazy programmer is working on this project, huh?

What? It's me? Oh... Well, *Ahem* Sorry for the inconvenience.

Probably should have removed that button for now, but then you wouldn't be able to read all those nifty capitilized identitifications for the maps. Anyway, expect a working map viewer in a later version of the editor.


7. Sprite Viewer


To the left you'll see a list of... Images! That's a nice change isn't it? Anyway on the left is a list of sprite sets, and there are two blank panels on the right to begin with this time. Upon selecting a sprite set on the left, the top panel on the right will get filled with a bunch of options for viewing the sprites, and the bottom panel gets some miscellaneous data on them.

Located at the top right of the top panel. The currently selected animation to view. Click the arrows on either side of the number to change animations.

Some animations switch to a different one after a while, the number at the right underneath the playback controls tells you which animation is actually currently playing. Also notice the play button will turn black, and the stop button will turn red once the animation reaches it's end, assuming it doesn't loop. Not all animations loop back to their first frame though, so hitting the play button will always restart the animation from it's first frame.

--Palette Swap
Located at the center right of the top panel. This indicates which filter is currently being used to adjust the colors of the sprite. This feature of the game is primarily used for enemy sprites to create multiple versions of the same basic monster. It's also used while casting psyenergy outside of battle.

Located at the bottom right of the top panel. The current direction of the sprite being shown. Although the number of directions available is primarily decided by the sprite set you are viewing, it can also be affected by the animation currently being played.

NOTE: Some directions are just mirrored versions of a different direction's sprites. If the number underneath the playback controls with the + symbol beside it matches, the two directions use the exact same sprites. Often in these cases the one facing more to the right is the real sprite, the exception is if the directions value in the lower panel is equal to 22.

--Playback Controls
Located at the bottom left of the top panel. There's a play button, and a stop button. The play button restarts the animation from it's first frame, and the stop button, well... Stops it.

The numbers along the bottom from left to right are: The actual sprite index being used from the sprite pack + the modifier for the current direction. Lastly the actual current animation playing since they can sometimes jump automatically from one to another making it differ from the one you selected.

--The Lower Panel
Yes I'm going to bunch all of these together, got a problem with it? Too bad.

Going from top left to bottom right, down here you have the width & height of the sprite in pixels, then it's default scale which is how much it gets stretched, or shrunk compared to other sprites.
On the next row we have the X, any Y offsets, which are used to adjust the sprite's origin relative to it's bottom center point. This affects where the sprite is drawn in relation to it's actual coordinates, as well as it's collision mask or any other sprites
attached to it such as a shadow.
 Down one more we have the directions value, which although not always exactly equal to the number of directions available in the sprite set, is directly related to it. On the right is the number of animations in the set.
The next two values are unidentified, and worth a cookie if you can tell me what they are. I suspect the second one may not be used at all.
 Collision Diameter is the last value, this is used to decide how close in pixels the player can stand to the sprite before running into it. Note that the player's sprite's collision diameter is also factored into the calculations. I'm not sure if this value has a different meaning for sprites that cannot be collided with, such as battle sprites.


8. Text Viewer

Wow, this one has a really wide list on the left, and a rather puny empty panel on the right. Once a string (a chunk of text as it is stored in computing) is selected from the left, its full contents are displayed in the panel on the right. Only one line of a string can be displayed in the list, while it could actually span multiple lines. If you see a character within hard brackets like "[3]" that means it's a special command, I have an idea what some of them do, but if you want a cookie you could always figure out the rest for me.


9. Closing Statements

I have one last feature to mention that doesn't fit in anywhere else. You may have noticed in screenshots that the editor sometimes has a different background image, while yours by default is stuck with the same one. The program randomly selects a .jpg file from the "editor bg" folder to use as a background image. Go ahead, try sticking a random .jpg file in there, and watch as it sometimes becomes your new editor background!

With that, we're at the end of the guide for Golden Sun: The Lost Age Editor. Thanks for taking the time to read it, or at least skimming through it. If you have any questions, comments, or bug reports please visit the forums below.

-Josh "Atrius" VH
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]


Hey, hijacking this post to share that this is an older version. I still recommend using it over later versions for map code editing because it is more stable for map stuff, but in general you'll want to use this version for your editing needs in conjunction with gsmagic (and possibly other tools).

Most of the guide is still accurate and helpful for the last version(s).
Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?