Dienstag, 30. Dezember 2014

GaiaTheCreator v.0.1.0.0

A new version of the editor is available!

https://www.dropbox.com/s/910up9f1iwcvxzh/GaiaTheCreator%20%280.1.0.0%29.zip?dl=0

Improvements for version 0.1.0.0:

  • View and edit text profiles for the main characters.
  • Display map exits for every map and view them in the Event Editor.
  • Display item and move graphics.
  • Display character animation tiles (Will).

The sprite animation is composed of several tiles which are already displayed in the editor. But I still need to find the information in the ROM how the several tiles fit together.


The graphics for the character's special moves are displayed now but not all of them are correct yet...


Dienstag, 16. Dezember 2014

Character animations

I found a data set which contains the animation for the character Will.
Each part of the character animation is composed of several tiles. I will try to display the composite character animations in the editor. Here is the so far result:


The screenshot shows two of the serveral animation tiles. I haven't found the data locations for the other tiles yet but that's just a matter of time until I find them. I also need to figure out the X,Y placement of the composite tiles.

For the next screenshot I changed Will's animation for standing in lower direction to the attack animation for the lower direction:


Donnerstag, 4. Dezember 2014

Item Graphics

Item graphics can now be displayed in the editor!
I found another data set containing the tile and palette index for every item graphic. The palette isn't correct yet since I haven't found the item palette yet. But the tile seems to fit very well.
I will try to make it possible to show the item animation in the editor.
The goal is to make the item graphics completely editable.




Montag, 1. Dezember 2014

Map Exits in the Event Editor

The map exits can now be loaded and displayed in the event editor.
The following screenshot shows the different options for a map exit in the event editor:


By changing the X and Y position where the player is teleported, Will can reach an area of South Cape you normally can't reach:


Donnerstag, 27. November 2014

Map Exits

I found a data set containing the map exits for all maps. They are now displayed on every map as red squares (blue squares are map objects). The data set contains the x and y location of the exits and several other informations. I also found the map index of the destination map there.

Here you can see the map of the City of Freejia with its objects and exits:



I will examine the other map exit data bytes and try to make them editable.

Donnerstag, 20. November 2014

Edit Text Profiles

You can now edit the text profiles. I changed the text color for Will and exported it back to the ROM:


This is the result in the game:


This might be a small thing to edit but at least it's something which is already fully working :)

Montag, 17. November 2014

Text Profiles

I found a data set that contains the text color and the sound effect that is played when the text is shown.Since there are several data sets for the different characters I call them text profiles.
I will make the text colors colors editable as a next step.



Montag, 10. November 2014

GaiaTheCreator v.0.0.1.3

Here is a new version of the editor:

https://www.dropbox.com/s/hlutxfue7agdw1o/GaiaTheCreator%20%280.0.1.3%29.zip?dl=0

Improvements in version 0.0.1.3:
- Improved the LZSS decompression routine. Decompression will now be much faster now.
- The XML data file is now automatically created and doesn't need to be copied in the
  project directory anymore.
- Save and display the project name in the editor.
- Support of US roms with header.
- Scroll and zoom in the map view.
- Filter option for the display of the map events.
- Display several event commands (Some events might still crash the editor).

Note that the event editor is still in a very early state so the editor will crash on several events.

Important: You have to start the editor from the .exe file in the directory \GaiaTheCreator (0.0.1.3)\GaiaTheCreator (0.0.1.3)\Application Files\GaiaTheCreator_0_0_1_3. Otherwise you won't be able to create a new project..
Have fun :)

Freitag, 17. Oktober 2014

The Event Editor advances..

I discovered some new event commands:
  • Add Item (0xD4): Adds a specific item to the player's inventory. Checks also if the inventroy is full and initiates an action if this is the case.
  • Play Music and Wait (0x19): Plays a specific song. The event handler will wait for the song to complete until the next action is performed.
  • Player Position Condition (0x45): Observes the position of the player and initiates an action if the player is in the specified position range.
  • Switch Condition (0xD0): Actions often depend on the states of switches (ON, OFF) to handle them in the desired order.
  • Talk Button Condition (0xC0): Defines an action that takes playe after the talk button is pressed on the event.



My next subgoal is to understand the way an event (e.g. an NPC) moves. I already discovered the commands but couldn't figure out yet how the actual movement is decrypted.


Dienstag, 23. September 2014

Vacation is over!

Vacation time is finally over so I got back to work on the editor again :)
Here are some results:
I enhanced the event editor. At the moment there are four commands that have been decoded yet. These four commands are shown in the following screenshot:


Commands that haven't been decoded yet just show their command code at the moment. There's still a huge amount of event data that remains hieroglyphics for me. Not for a long time I hope.

The map view has also been improved:
- You can zoom in and out of the map view and scroll the map
- A filter can be applied to enable or disable the event layer which is lying on top of the map layer.
- A function to display a specific map tile on the desired position of the map. This function is necessary when the map arrangement data is decoded.
The following screenshot shows the map view with the enabled event layer. The event in the middle is lying on top of the map tile which is shown for test purposes.


On the next screen the event layer is disabled:


Some miscellaneous improvements:
- Tileset decompression is improved and is much faster now (few seconds compared to > 1 minute)
- Display the project name in the editor
- Support of US ROMs with a header

The big big goal for the future will be the decompression of the map tileset and map arrangement data. If this step is done it won't be a problem to show the maps in the editor.

Montag, 28. Juli 2014

Event Editor

I implemented a first version of an event editor. You can now click on an event on a map and edit it. Some event properties like it's position on the map or the event trigger flag can already be displayed. The only real event data that can be loaded yet is the dialogue data. But this works surprisingly fine even though some dialogues still look messy.



The dialogue data of the item handlers can also be displayed and all of this data looks already good :)



Donnerstag, 24. Juli 2014

Display Events + Character Data

Since I found the event's x and y coordinates, they are now displayed for every map.



I the tileset data wasn't compressed you could already see the complete maps here. But luckily there is someone who might solve the compression issue :)
Character data like the names and the moves for each character is now displayed in the editor. Every character has 4 move slots but there are only 3 moves for Will and Freedan and 2 moves for Shadow.



Montag, 21. Juli 2014

Read Map Data Part 1

Within the map data I found the data flag that determines if you can attack. I edited it for Erik's House in South Cape:


I also managed to read the event data table in the editor. The map name that appears when you enter the map is now displayed in the editor as well as the attack enable flag:


The map name isn't correct for every map yet though.
I also found the red jewel event. I changed the location of the red jewel in Lance's House in South Cape from the basement to the shelf:



Freitag, 18. Juli 2014

Dialogue Hacking

I allocated the dialogue text data! At first I thougt it this data is compressed because the dialogue text isn't written in ASCII letters in the ROM. But fortunately they just coded it in a strange way. For example: The letter 'O' is coded as 0x4E and the letter 'P' is coded as 0x60. But since I found it this is no problem anymore :)
I kept playing around with the bytes that appear before the text data starts and found some cool things out: The text speed, color, the height as well as the x/y location of the textbox can be changed now!

As an example I edited the first dialogue when the game starts:


So after I knew how the text letters are coded I tried to find the data of the map names that appear when you enter a map. 
I found a list of pointers that lead to data that get's loaded when a map is entered. But this data doesn't only consist of the map name, it also seems to hold the addresses of the events (e.g. sprites) as well as the event's location on the map.

I played around with this a little:


Here I changed the location of the event "Seth" and the event "Lance". I call them events because the data that is addressed doesn't only contain the dialogue data but also the sprite appearance and everything else that belongs to it.
I need to dig further into this event data set. Then I will try to read this data in the editor and display it for every map.


Freitag, 11. Juli 2014

GaiaTheCreator v.0.0.1.2

I finally found the error that made the editor nonexecutable! The reason was a wrong file path reference to the xml file that holds all the data values.
For this temporary solution the xml file has to be copied into the project directory to make it work.
I included a readme file that contains the editor's version history and some important notes.

The new features:
- Pause screen texts are fully editable
- Map data sets can be edited (only music edit is confirmed working)
- Compressed tilesets consisting of more than one single tileset are
  now treated as one tileset internally

The download link for the new version:
https://www.dropbox.com/sh/cwc8aw7fhkbrz4d/AADIBR11mPbmm1V8pApsasL1a

Donnerstag, 10. Juli 2014

Write Map Data Sets + Pause Screens

The map data sets can now be edited and written back to the ROM. For the background music this works just fine. By changing the song titles I could identify further maps of South Cape.


The ultimate aim is to make the maps visible in the editor.
As a little easier task in between I will try to make the pause screens editable. This shouldn't be a huge problem since all of the data lies uncompressed in the ROM. I played around with it a little by editing some values directly in the ROM:




Freitag, 4. Juli 2014

Map Data Sets

Lytron located and documented a data table in his blog: http://pantalytron.com/blog7.php/sympathy-for-the-manafreak-7
This table consists of data sets for all the game's maps (231 in total). Among other things these data sets contain the addresses of tilesets, palettes, music, map arrangement data and tileset data for each map.
I managed to read the data sets and list them in the editor. By the combination of the utilized tilesets and music I could identify some of the maps like the one shown here:


In the data sets there is still much data left with unknown purposes. I will try to identify this unknow data step by step.
A couple of days ago I had the assumption that the compressed map arrangement data uses the know LZSS compression. But unfortunately this is not the case, some other (yet unkown) compression has been used :((((
So for the next steps I will concentrate on the game's music data which is already documented in detail.

For the tilesets I made a little rearrangement this week. As I found out, Illusion of Gaia treats compressed tilesets which contain two single tilesets as one tileset. So I thought I should do it the same way to make things easier in the future.
The result is shown in the next two screenshots:



If a tileset contains more than one single tileset you can now switch between the tileset parts and edit both of them. The big difference is that they are still treated as one tileset internally.
I hope that I can upload a running version of the editor. I wasn't able to find the error yet that keeps the editor from running when I release it.



Freitag, 27. Juni 2014

HUD + Font Graphics

The HUD and font grahpics are now displayed correctly. These where the only tilesets left that didn't look fine. The reason for this was the different format (2BPP instead of 4BPP). I still need to find the corresponding 2BPP palettes.



NOTE: There is a problem with the latest version of the editor that I uploaded recently. The program doesn't run after it is installed. I couldn't find a solution for this problem yet but I'm working on it.

Samstag, 21. Juni 2014

Menu Background Speed + v.0.0.1.1

The scrolling speed of the clouds in the item menu can now be changed. The background is divided in 11 parts and every part has it's independent scrolling speed. Another big thanks goes to lytron who discovered it: http://pantalytron.com/blog7.php/sympathy-for-the-manafreak-2



Additionally I uploaded a new version of the editor which can be downloaded here: https://www.dropbox.com/s/8b53wuryed67dpv/GaiaTheCreator%20%280.0.1.1%29.zip

New features:
- Edit item names, item descriptions and item handlers (not all of them are displayed correctly yet)
- Rename data identifiers (e.g. for tilesets or items)
- Change the speed of the background in the item menu

My next tasks will be to improve my knowledge of the 65188 assembler and Geiger's Snes9X Debugger. Sooner or later I will hopefully be able to search for data in the rom by myself so that lytron doesn't have to do everything by himself :)

Freitag, 6. Juni 2014

Edit Items Part 2 - Item Handlers

The item handlers for each item can now be chosen from a list. So it's possible to change the effect of an  item to the effect of another item.
As an example I canged to item handler of the red jewel to the item handler of the item "Will".


The evidence that it works just fine: I can read the Will when I use a Red Jewel in South Cape.


Samstag, 31. Mai 2014

Edit Items Part 1

The item names and descriptions are now displayed and can be edited. The text is stored in plaintext in the ROM. But there are serveral words (like "from" or "statue") which are loaded from some kind of text library which contains words that are often used. These words are still missing until I figure out how they are loaded.
The item "Will" is displayed with it's correct item name and description:
The item "Statue of Hope" misses the word "Statue" in it's name and description because this word is loaded from the text library.
The name of the item "Red Jewel" is changed to "Rat Jewel" and loaded back to the ROM:
The next step will include the selection of the item handler. Thanks to lytron who discovered where the item handler pointers are stored in the rom (http://pantalytron.com/blog7.php/sympathy-for-the-manafreak-3) I can implement this in a short period of time.
I will also try to find out how an item graphic and it's animation is loaded and try to display it in the editor.

Samstag, 17. Mai 2014

Display and edit tileset names

It's now possible to view and edit the name for every tileset. This will enhance the clarity for the user if he can assign his own name for a tileset. This will also be done the same way for all future elements (Maps, sprites,...).
The tileset names are stored in and loaded from a xml file. It will be possible to support different languages just by changing the xml file.


Another small progress:
Tilesets 1, 2 and 14 (can be seen in the screenshot) are now displayed correctly. The issue was a wrong byte offset where I started to read the tilesets.

Mittwoch, 14. Mai 2014

GaiaTheCreator v.0.0.1.0

As promised you can download the current version of the editor when you follow this link:

https://www.dropbox.com/s/rzwgdg993nvmcfn/GaiaTheCreator%20%280.0.1.0%29.zip

The current features of the editor:

  • Display every uncompressed (15 Tilesets) and compressed graphics (118 Tilesets)
  • View the tilesets with different palettes (not all of them are displayed correct yet)
  • Edit the tilesets
  • Write the tilesets back to the ROM
  • Beware: Only the US ROM of Illusion of Gaia is supported yet
I'm looking forward for your feedback so that the development of the editor will go in a direction that satisfies it's users :)





Montag, 12. Mai 2014

Compression Part 2

Graphics compression is working now. At least in a way so that the game doesn't crash anymore. To achieve this I maually limit the size of the compressed tileset data so that it doesn't exceed it's original size and overwrites other data.
To demonstrate it I painted the fisherman's sweater from green to blue:

Here is the result in the game:

The compression routine still needs to be improved since there are still some graphic issues within the Enix Logo and the title screen.
It will be necessaey to deal with the changing size of the compressed graphics as they are edited. I still need to figure out how to handle it that no game data is overwritten.
In the coming days I will upload the first version of the editor so you can play with it a little.

Montag, 28. April 2014

Compression Part 1

A little update with the latest progress of the editor:
The graphics compression routine is already partly working which can be seen in this screenshot:


This screenshot is taken from the ZSNES editor running a ROM which has been edited in the editor.
The game logo has been edited on the editor, the word TEST can be seen in the 'G' letter. The other part of the logo is unfortunatley still erroneous. The game crashes after a game slot is chosen and the actual game should start..
Still need to figure out the error in the compression routine.

Furthermore I did some code refactoring to make everything more clear. The length of the decompressed graphics is now evaluated. Thereby I found 18 more tilesets which were overseen before. So now I think every compressed tileset can now be edited.


There are some uncompressed graphics which I want to display as a next step.

Hope to figure out the compression problem as soon as possible so I can upload the first version of the editor!

Freitag, 11. April 2014

Edit tiles

You can now edit tiles and save them back to the project file. To edit a tile select a color from the palette and fill the desired pixel in the tile image with that color.
As an example I put a circle in the yellow round sprite thing.


















To write the edited tile back to the ROM I need to adapt the compression routine from Python to C# which I already started to work on.
When this is accomplished I will upload the current version of the editor.