Well, this is going to be one of the last posts for a while, but you can still expect one more, and then I'll be posting again once I start my other tools. But I didn't post to give you bad news, I posted to give you great news!
I know I said this before, but ZOLE is almost ready for release now more than ever. With ASM scripts created and modified, several window bugs fixed, and many saving bugs fixed, ZOLE is now very stable and has had every bug found fixed (Thanks to Jigglysaint for being the primary beta tester). Now, it will not be released today, and maybe not even tomorrow, but when it does, you'll be glad you waited.
So what's to come? Well, the only thing I have left to add is a patch that basically kills all those little flags in the beginning of the game that removes music and the ability to press start/select. I'm not sure how I'll do it but I'm sure I'll figure out some way (Probably by either finding the flags in the memory and finding what modifies them or following the beginning events).
But until tomorrow, see ya later!
Thursday, June 24, 2010
Tuesday, June 22, 2010
Beta Testing Day And the Text Engine Cracked
That's right! ZOLE is now finished and ready for testing. This obviously means the Gale Seed Warp Editor is finished and I've applied some finishing touches. However, I only have a few people I want to test. There's 3 others and then myself.
But anyway, I've basically cracked the way text works (Actually, this was about 10 minutes ago). First off, it's a lot more easy to work with than I thought. If you look at the ROM in a hex editor, you'll see words scattered all over bank 1F, and some others. However, a closer look will reveal the true format.
You see, there are basically text types that help build up dialogue. Here they are.
00 - End of text
01 - Scroll
02 - Another reference type, except this one can use images (Maybe others can???)
03 - Reference to another word
04 - Another reference type
05 - Another reference type
Note these are all from trial and error.
When switching from a different type to regular text, nothing needs to be done. Since ASCII basically starts at 0x20 (Space), the game detects it's too high to be an opcode and just reads until there IS a type switch. The good news is, the game auto-wraps the text for us, but we still have to let it know when to scroll. Let's break down the man below the shop's dialogue.
7F97E - "So,"
7F981 - 03 Reference
7F982 - 7A (Inserts " what")
7F983 - "'s" So, what's
7F985 - 03 Reference
7F986 - 29 (Inserts " with")
7F987 - 03 Reference
7F988 - 54 (Inserts " this")
7F989 - "gloomy" So, what's with\nthis gloomy
7F98F - 01 Scroll
7F990 - "uncertainty,"
7F99C - 01 Scroll
7F99D - "anyway?" So, what's with\nthis gloomy\suncertainty\sanyway?
7F9A4 - 00 End
Wow, look at all that! But rest assured. I'm going to be making another tool which is to edit text (A text editor. We're catching up, Pokemon hacking!!!). If at any point you feel like I'm doing all the work while people hack for fun, don't, I love programming and finding data.
So, you may be asking yourself: "When will ZOLE be released?!". Well, when beta testing is over, which will probably be tomorrow. I'll make a post and link you to the forums. Note the forums currently use ULMB's free host, but depending on how well they go, I will pay and get a domain and such.
But until tomorrow, see ya later!
But anyway, I've basically cracked the way text works (Actually, this was about 10 minutes ago). First off, it's a lot more easy to work with than I thought. If you look at the ROM in a hex editor, you'll see words scattered all over bank 1F, and some others. However, a closer look will reveal the true format.
You see, there are basically text types that help build up dialogue. Here they are.
00 - End of text
01 - Scroll
02 - Another reference type, except this one can use images (Maybe others can???)
03 - Reference to another word
04 - Another reference type
05 - Another reference type
Note these are all from trial and error.
When switching from a different type to regular text, nothing needs to be done. Since ASCII basically starts at 0x20 (Space), the game detects it's too high to be an opcode and just reads until there IS a type switch. The good news is, the game auto-wraps the text for us, but we still have to let it know when to scroll. Let's break down the man below the shop's dialogue.
7F97E - "So,"
7F981 - 03 Reference
7F982 - 7A (Inserts " what")
7F983 - "'s" So, what's
7F985 - 03 Reference
7F986 - 29 (Inserts " with")
7F987 - 03 Reference
7F988 - 54 (Inserts " this")
7F989 - "gloomy" So, what's with\nthis gloomy
7F98F - 01 Scroll
7F990 - "uncertainty,"
7F99C - 01 Scroll
7F99D - "anyway?" So, what's with\nthis gloomy\suncertainty\sanyway?
7F9A4 - 00 End
Wow, look at all that! But rest assured. I'm going to be making another tool which is to edit text (A text editor. We're catching up, Pokemon hacking!!!). If at any point you feel like I'm doing all the work while people hack for fun, don't, I love programming and finding data.
So, you may be asking yourself: "When will ZOLE be released?!". Well, when beta testing is over, which will probably be tomorrow. I'll make a post and link you to the forums. Note the forums currently use ULMB's free host, but depending on how well they go, I will pay and get a domain and such.
But until tomorrow, see ya later!
Lots and Lots of New Stuff
Today's (late...) post is going to be semi-short but packed with lots of stuff. However, I'm extremely tired right now so there will be no screenshots.
For starts, an option to change the map's music has been added. It's a simple numeric text box below the Area Information group box.
A new window has been added to edit the dungeon portals. There is a numeric text box controlling the dungeon and two more for the linked maps.
Something I'm very happy about is the warp editor is now 100% finished and fully functional. This includes small indoor map exiting, which was a very simple fix. Shame I didn't get it earlier.
The next thing is a new window to choose the script a map gets (Basically setting the index of the script and the pointer the script points to). It works like chests where you can only search and swap, but there's plenty of maps to go around.
A small, yet useful feature, has been added to clear out enemy spawn groups. I personally hate to hex edit when working with a level editor as I have to reload the ROM, and since ZOLE doesn't support editing these groups, you can clear them out which leaves the space for other interactions.
Finally, a new patch has been added, which is (what really now makes Ages match with Seasons...) to make it so in Ages, you can go to the bounding maps so instead of the maps really being 14x14. This basically allows us to use several more maps for the overworld and less indoor ones.
The only remaining thing to be added in ZOLE before its first release is a Gale Seed Warp Editor. I have started this and found the Present warp data (Past most likely works the same way, I just haven't looked for it) but am too tired to continue. I wanted to make sure I got tonight's blog in because there's a lot I pushed in today. AND! That's not it. Aside from the level editor, I have created a forum and started writing up some tutorials, but no one will know about it until beta testing is done and it is released.
So, until tomorrow, see ya later!
For starts, an option to change the map's music has been added. It's a simple numeric text box below the Area Information group box.
A new window has been added to edit the dungeon portals. There is a numeric text box controlling the dungeon and two more for the linked maps.
Something I'm very happy about is the warp editor is now 100% finished and fully functional. This includes small indoor map exiting, which was a very simple fix. Shame I didn't get it earlier.
The next thing is a new window to choose the script a map gets (Basically setting the index of the script and the pointer the script points to). It works like chests where you can only search and swap, but there's plenty of maps to go around.
A small, yet useful feature, has been added to clear out enemy spawn groups. I personally hate to hex edit when working with a level editor as I have to reload the ROM, and since ZOLE doesn't support editing these groups, you can clear them out which leaves the space for other interactions.
Finally, a new patch has been added, which is (what really now makes Ages match with Seasons...) to make it so in Ages, you can go to the bounding maps so instead of the maps really being 14x14. This basically allows us to use several more maps for the overworld and less indoor ones.
The only remaining thing to be added in ZOLE before its first release is a Gale Seed Warp Editor. I have started this and found the Present warp data (Past most likely works the same way, I just haven't looked for it) but am too tired to continue. I wanted to make sure I got tonight's blog in because there's a lot I pushed in today. AND! That's not it. Aside from the level editor, I have created a forum and started writing up some tutorials, but no one will know about it until beta testing is done and it is released.
So, until tomorrow, see ya later!
Sunday, June 20, 2010
Soon Release, New Feature
Well, today's feature was a simple one but surely effective. It gets its own window and is titled "Arrange Rooms". Basically you can order the way dungeons are formed. This does not effect minimaps.

Oh, and that's Level 1 with a few hacked rooms with hacked graphics and palette to resemble Link's Awakening DX rooms. This just shows it works. Also, please ignore the "Map: 0" when it should be "Map: 10". I simply forgot to make it update the numeric box as soon as the window is opened. Other than that it's flawless.
So I've decided the only thing I'm sure of adding before the release is a Gale Seed warp editor, and some more patches. I really want to add a minimap editor since it's kind of important but data findings for it haven't been successful. But, like most editors, there will of course be another release of ZOLE sometime after the first, and more after that.
Until tomorrow, see ya later!

Oh, and that's Level 1 with a few hacked rooms with hacked graphics and palette to resemble Link's Awakening DX rooms. This just shows it works. Also, please ignore the "Map: 0" when it should be "Map: 10". I simply forgot to make it update the numeric box as soon as the window is opened. Other than that it's flawless.
So I've decided the only thing I'm sure of adding before the release is a Gale Seed warp editor, and some more patches. I really want to add a minimap editor since it's kind of important but data findings for it haven't been successful. But, like most editors, there will of course be another release of ZOLE sometime after the first, and more after that.
Until tomorrow, see ya later!
Saturday, June 19, 2010
Some Stuff
Well, today I've been mainly focusing on my new phone and setting everything up and making it all perfect took a while. But, when that was all done I picked up ZOLE and redid that VRAM decompressing system.
Right now, it works fine and I haven't noticed any other corrupted tilesets. However, I did struggle a bit while writing the ASM script because the unexpected interrupts were messing up the data the emulator was reading from. Although it took me a while to realize this was the reason tiles weren't showing up properly, a simple "di" and "ei" fixed it all.
But anyway, for some bad news (Well, we haven't had any bad news in a while, so it's time I give you some!), I'm afraid 'unique' and 'tileset' tiles won't be editable until a future release of ZOLE. The reason being is I forgot the compression also includes "destination" values for data, and the only way to really avoid it is to make the VRAM be completely raw and not load any other tiles, which would require an ASM hack and I'd have to redo some stuff in ZOLE I don't want to.
However, there is good news to that! I will try to add a feature that basically will clear the write data of the other tiles so only the VRAM shows, but honestly, it isn't very good for overworld tiles sets because nearly every (Or maybe even every) overworld room uses the same VRAM set. Although, that's not really a bad thing, since ZOLE will allow the exporting and important of raw graphics data so VRAM sets will be "copyable".
I still haven't gotten around to making the tileset editor, or even brainstormed about it, but since tilesets are compressed (If I remember correctly) I'm going to be making it like VRAM and decompress them and add a new ASM script(Although there yet again isn't enough space. This would require another MB for all tilesets to be decompressed).
I haven't heard any complaints about using and auto-applying custom ASM scripts, but if you're against it, leave a comment and I'll make them all optional (Except for the raw map loading). But if not, they'll be automatically added. But anyway, until tomorrow, see ya later!
Right now, it works fine and I haven't noticed any other corrupted tilesets. However, I did struggle a bit while writing the ASM script because the unexpected interrupts were messing up the data the emulator was reading from. Although it took me a while to realize this was the reason tiles weren't showing up properly, a simple "di" and "ei" fixed it all.
But anyway, for some bad news (Well, we haven't had any bad news in a while, so it's time I give you some!), I'm afraid 'unique' and 'tileset' tiles won't be editable until a future release of ZOLE. The reason being is I forgot the compression also includes "destination" values for data, and the only way to really avoid it is to make the VRAM be completely raw and not load any other tiles, which would require an ASM hack and I'd have to redo some stuff in ZOLE I don't want to.
However, there is good news to that! I will try to add a feature that basically will clear the write data of the other tiles so only the VRAM shows, but honestly, it isn't very good for overworld tiles sets because nearly every (Or maybe even every) overworld room uses the same VRAM set. Although, that's not really a bad thing, since ZOLE will allow the exporting and important of raw graphics data so VRAM sets will be "copyable".
I still haven't gotten around to making the tileset editor, or even brainstormed about it, but since tilesets are compressed (If I remember correctly) I'm going to be making it like VRAM and decompress them and add a new ASM script(Although there yet again isn't enough space. This would require another MB for all tilesets to be decompressed).
I haven't heard any complaints about using and auto-applying custom ASM scripts, but if you're against it, leave a comment and I'll make them all optional (Except for the raw map loading). But if not, they'll be automatically added. But anyway, until tomorrow, see ya later!
Friday, June 18, 2010
Nothing New, Again...
Well, today was a really busy day and I'm lucky I finally got time to post. But anyway, the only thing I did today relating to ZOLE was figure out I wasn't thinking properly yesterday and have to redo basically the whole decompressed tile system. No biggy though, I should have more time tomorrow. Until tomorrow, see ya later!
Thursday, June 17, 2010
Something Brief
Well, this isn't really an official post, but it's pretty cool so I thought I'd share it. Today has been a pretty busy day and it just going to get worse later so I wanted to make sure I got atleast SOMETHING in. But anyway, what I added today is pretty sweet. Basically, ZOLE can write the decompressed VRAM (base tileset) graphics and supports loading them raw. A custom ASM script is added to support loading completely uncompressed VRAM data, and it's pretty fun to mess with. The editor makes sure it writes to an address where the right 4 nybbles are unset so it appears fine in a tile editor (such as TLP) to edit. Here's something I made for testing.

So there's everything. Before the tiles were completely unrecognizable compressed. This feature isn't complete though, as I have to make it do the same for the unique and 'tileset' tiles. Then, I have to make the tileset configuration editable (Note all of these will require another ASM script to make things easier for the user and me), and finally something that will dump and import other tiles, mainly for swapping Ages and Seasons graphics, since I wanna add a Subrosia area in Ages instead of the ugly underwater (Gosh that was a long sentence). But anyway, just a heads up of what to expect in the next couple posts. See ya later!

So there's everything. Before the tiles were completely unrecognizable compressed. This feature isn't complete though, as I have to make it do the same for the unique and 'tileset' tiles. Then, I have to make the tileset configuration editable (Note all of these will require another ASM script to make things easier for the user and me), and finally something that will dump and import other tiles, mainly for swapping Ages and Seasons graphics, since I wanna add a Subrosia area in Ages instead of the ugly underwater (Gosh that was a long sentence). But anyway, just a heads up of what to expect in the next couple posts. See ya later!
Subscribe to:
Posts (Atom)