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.