Users browsing this thread: 1 Guest(s)
ZONE DOCTOR - FF6 Editor v3.18.4 (formerly FF6LE) *EVENT EDITING SUPPORT*

#1
Posts: 8
Threads: 1
Thanks Received: 5
Thanks Given: 0
Joined: Jul 2013
Reputation: 0
Status
None
Download ZONE DOCTOR v3.18.4 | Visit ZONE DOCTOR's home page

What is ZONE DOCTOR?
Zone Doctor is a third party .NET application written in the C# programming language which is capable of editing the locations and event scripts in the Final Fantasy 6/3 (US) ROM image file. It's code base, GUI, and additional features are based off of the Lazy Shell application, with a number of changes to accomodate the different format of the source ROM image. Resources and documents consulted include but are not limited to Evil Peer's FF6 Offsets Guide, Geiger's offsets compendium, Lord J's event disassembly source code, Imzogelmo's updated event disassembly, and Yousei's compression code. To see the complete history of changes made from version to version, view the changelog.txt file.

Note: Zone Doctor is capable of working with both headered and headerless ROMs, but if you wish to view/modify the source files remember that the program is designed to work with a headerless ROM buffer array. Thus all offset values in the source files reference a headerless ROM.

Notes on latest/recent release(s)...
Full event script editing is now supported. v3.18.x is an update from FF6LE v1.0, the changes of which are almost identical to the changes undergone from Lazy Shell v2.0 to v3.18.0. The most notable, of course, is event script editing support as well as a much more highly functioning level editor. I've incorporated Lord J's location map fix code from his FF6LE rogue source (credit is given in the editor's "About" window) to make it compatible with FF3usME. Despite this being a bugfix of the beta, there still may be a possibility of ROM corruption (particularly in the event scripts editor). That is why this thread exists for posting bug reports.

Screenshots...
[Image: locations_thumb.png] [Image: scripts_thumb.png]

From the changelog.txt file:
Code:
v3.18.4 (2013-08-26)
--------------------------------------
Additions:
*Can now import world map data from a fresh ROM

Changes:
*Image drawing code now safer and much faster
*Locations: world maps draw yet another 2x faster than before!

Fixes:
*Never removed header after save b/c romLength not being updated
*Some problems with new history logging format, dragging objects
*Locations: shouldn't be asking to save if already saved
*Locations: changing world map's tile properties not updating tilemap


v3.18.3 (2013-08-16)
--------------------------------------
Changes:
*History logging now more practical, loading times now faster
*Locations: locations now draw 2x faster, world maps 4x faster!
*Locations: raised maximum exits per location to 64

Fixes:
*Event Scripts: fixed and updated command $A0 (countdown timer)
*Locations: crash if try to drag bars in palette editor
*Locations: tilemaps and tilesets were not clearing if all set to 0
*Locations: shouldn't be checking if 0 tilemap for world maps
*Locations: crashes sometimes drawing if layers different sizes


v3.18.2 (2013-08-06)
--------------------------------------
Fixes:
*Graphics Editor: crash when making selection < 4 pixels wide/high
*Graphics Editor: not nulling selection when delselecting
*Locations: sizing image when updating tilemap was ignoring zoom factor
*Locations: assembler code for solidity set still had bugs, now perfect


v3.18.1 (2013-07-30)
--------------------------------------
Additions:
*Locations: gave several unknown values descriptive labels/controls
*Locations: architecture importing/exporting added

Changes:
*Now recalculates checksum when saving a modified ROM
*Locations: long exits can be click/dragged anywhere on the field
*Locations: tags containing script stubs now more offset precise

Fixes:
*Restore elements storing location map data to tilemaps, corrupting them
*Graphics Editor: wrong picture size for world map graphics
*Event Scripts: crash when update offsets if on very last script
*Locations: finally got layer 3 drawing correctly, colors and all
*Locations: adding new exits, events, NPCs, etc. not enabling groupboxes
*Locations: changing exit destination not updating tag
*Locations: crash closing tile editor b/c solidity tiles bad assembler
*Locations: world map tile editor not redrawing in world map format
*Locations: tile editor loading tile 0 if doing auto-update
*Locations: changing destination of exit casting as byte and not short
*Locations: minimaps not saving b/c never actually decompressing first
*Locations: crash when close locations if a subwindow still open
*Locations: ignores/won't load long exits if no short exits in location
*Locations: not calculating free short exit space correctly
*Locations: couldn't draw tiles to lower part of tilemaps
*Locations: crash if try to draw tile beyond boundaries of tilemap
*Locations: never was actually saving the graphics!
*Locations: undo not being set to manual count on load/reload
*Locations: BG color should always be filled with solid black
*Locations: NPCs not redrawing when sprite # changed
*Previewer: not using correct sprites for characters in save state

If you find or encounter a bug...
As is the case with releases containing several additions, there is always the possibility of new bugs surfacing. As usual, any bugs encountered please report them here. The recently added custom exception/error message box makes this easier and less trivial. If you encounter an error read the brief instructions in the message and make a new post here. You can click "ignore error" if you don't want to close and lose your work. Always remember to frequently save your work. Make back-ups using the options in the settings. Use the notes feature to keep track of changes and keep organized, etc.

CRASHES
If the editor crashes, copy/paste the contents in the crash window here, explaining what you did before the crash occurred.

CORRUPTED DATA
For corrupted data issues such as garbled/glitched graphics, text, etc. that you encounter after modifying the ROM, please answer each of the following FOUR questions:
1. What was the last thing you changed before you first encountered the problem?
2. Were you using a fresh ROM with OK checksum (see box at top of main window)?
3. If answer "no" to #2, what portions of the ROM did you modify before the problem? Is it a hack?
4. Do the problems appear in the *editor*, the *emulator*, or *both*?

OTHER BUGS
For all other bugs encountered, such as failure of the editor to perform a task like saving or changing data, incorrectly modifying or displaying data, etc. just briefly explain what the problem is and what you're doing to cause it.
Quote  
[-] The following 4 users say Thank You to giangurgolo for this post:
  • Astaroth_ (07-22-2013), Gi Nattak (07-22-2013), GrayShadows (07-22-2013), SSJ Rick (07-23-2013)

#2
Posts: 2,548
Threads: 98
Thanks Received: 147
Thanks Given: 156
Joined: Aug 2009
Reputation: 52
Status
Nattak\'d
Christmas came very early this year! I am incredibly excited to play with this awesome new tool. =)

***EDIT***

A couple things - there was a bug in the old Level Editor that would not let you place an exit past map #100, and I see it is still doing it but now it's after map #255, for example making an exit to map #256 will change to map #000. An exit to #257 will get changed to map #001. It seems to be resetting after 255 back to 0.

Also, the Event Scripts part of the editor is not getting along with my hack at all, it denies me access as soon as I click the tab for it. I'm not sure if it's due to a certain change or just the amount of changes (new and relocated events) I've done or what. Here's the error info I'm getting:

"Error accessing data at $55 in 65 byte array."

ZONEDOCTOR, Version=3.18.0.0, Culture=neutral, PublicKeyToken=null

**************Exception Text**************
Exception of type 'System.Exception' was thrown.
at ZONEDOCTOR.Bits.GetByteArray(Byte[] data, Int32 offset, Int32 size)
at ZONEDOCTOR.ScriptsEditor.ActionScript.ParseScript()
at ZONEDOCTOR.ScriptsEditor.ActionScript.Disassemble()
at ZONEDOCTOR.ScriptsEditor.Commands.EventCommand..ctor(Byte[] commandData, Int32 offset, Int32 register)
at ZONEDOCTOR.ScriptsEditor.EventScript.ParseScript(Int32& offset)
at ZONEDOCTOR.Model.get_EventScripts()
at ZONEDOCTOR.EventScripts..ctor()
at ZONEDOCTOR.Program.CreateEventScriptsWindow()
at ZONEDOCTOR.Editor.openEventScripts_Click(Object sender, EventArgs e)

**************Recent Event History**************
MouseDown "openEventScripts" | X:45,Y:17 | Form "Editor" | 7/21/2013 11:27:07 PM
MouseDown "loadRom" | X:29,Y:8 | Form "Editor" | 7/21/2013 11:27:01 PM
LOADED ZONE DOCTOR APPLICATION | 7/21/2013 11:26:59 PM
MouseDown "openEventScripts" | X:41,Y:16 | Form "Editor" | 7/21/2013 11:26:37 PM
MouseDown "loadRom" | X:21,Y:14 | Form "Editor" | 7/21/2013 11:26:32 PM
MouseDown "openEventScripts" | X:45,Y:12 | Form "Editor" | 7/21/2013 11:26:27 PM
MouseDown "openLocations" | X:51,Y:8 | Form "Editor" | 7/21/2013 11:23:06 PM
MouseDown "loadRom" | X:24,Y:8 | Form "Editor" | 7/21/2013 11:22:53 PM
LOADED ZONE DOCTOR APPLICATION | 7/21/2013 11:22:51 PM
MouseDown "openLocations" | X:47,Y:10 | Form "Editor" | 7/21/2013 11:17:43 PM

---

I'm also getting an error message & crash when I try to enable/view the NPC tab, the other 3 tabs (exits, events, treasures) are working fine for me, it's just the NPC box that crashes when I try to select it. Again, this seems to be just with my hack as it is working fine I see on a clean ROM. Here's the error message:

"Error accessing data at $55 in 65 byte array."

ZONEDOCTOR, Version=3.18.0.0, Culture=neutral, PublicKeyToken=null

**************Exception Text**************
Exception of type 'System.Exception' was thrown.
at ZONEDOCTOR.Bits.GetByteArray(Byte[] data, Int32 offset, Int32 size)
at ZONEDOCTOR.ScriptsEditor.ActionScript.ParseScript()
at ZONEDOCTOR.ScriptsEditor.ActionScript.Disassemble()
at ZONEDOCTOR.ScriptsEditor.Commands.EventCommand..ctor(Byte[] commandData, Int32 offset, Int32 register)
at ZONEDOCTOR.ScriptsEditor.EventScript.ParseScript(Int32& offset)
at ZONEDOCTOR.Model.get_EventScripts()
at ZONEDOCTOR.Model.GetEventScript(Int32 offset)
at ZONEDOCTOR.Overlay.DrawLocationNPCTag(Graphics g, LocationNPCs npcs, NPC npc, Int32 index, NPC parent, Int32 z)
at ZONEDOCTOR.Overlay.DrawLocationNPCTags(Graphics g, LocationNPCs npcs, Int32 z)
at ZONEDOCTOR.TilemapEditor.pictureBoxLocation_Paint(Object sender, PaintEventArgs e)
at ZONEDOCTOR.NewPictureBox.OnPaint(PaintEventArgs pe)

**************Recent Event History**************
MouseDown "openLocations" | X:32,Y:9 | Form "Editor" | 7/21/2013 11:16:17 PM
MouseDown "loadRom" | X:43,Y:11 | Form "Editor" | 7/21/2013 11:16:01 PM
LOADED ZONE DOCTOR APPLICATION | 7/21/2013 11:13:44 PM
MouseDown "locationName" | X:191,Y:3 | SelectedIndex = 228 | Form "Locations" | 7/21/2013 11:11:25 PM | Element = {22Hold on ___nothing
MouseDown "locationName" | X:190,Y:7 | SelectedIndex = 227 | Form "Locations" | 7/21/2013 11:11:19 PM | Element = {227} ___nothing
MouseDown "npcListBox" | X:20,Y:10 | SelectedIndex = 0 | Form "Locations" | 7/21/2013 11:11:17 PM | Element = {227} ___nothing
MouseDown "npcListBox" | X:17,Y:111 | SelectedIndex = 8 | Form "Locations" | 7/21/2013 11:11:17 PM | Element = {227} ___nothing
MouseDown "npcListBox" | X:20,Y:97 | SelectedIndex = 7 | Form "Locations" | 7/21/2013 11:11:16 PM | Element = {227} ___nothing
MouseDown "npcListBox" | X:21,Y:83 | SelectedIndex = 6 | Form "Locations" | 7/21/2013 11:11:15 PM | Element = {227} ___nothing
MouseDown "npcListBox" | X:25,Y:55 | SelectedIndex = 4 | Form "Locations" | 7/21/2013 11:


We are born, live, die and then do the same thing over again.
Quote  

#3
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
Wow, this is really awesome. I know there are a lot of things that could become problematic for making an event editor, so I really appreciate the value of the expanded event functions.
  Find
Quote  

#4
Posts: 174
Threads: 23
Thanks Received: 0
Thanks Given: 6
Joined: Feb 2011
Reputation: 0
Status
None
Forgive my limited understanding, but will this help make event editing easier and more user friendly?
  Find
Quote  

#5
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
That is exactly what this will do. Wink
  Find
Quote  

#6
Posts: 85
Threads: 4
Thanks Received: 0
Thanks Given: 0
Joined: Jul 2013
Reputation: 0
Status
None
After downloading and looking through it, this program seems like it'll help out a lot. I was wondering just how I was going to remap places... now, is there a way to edit the tilesets? Cause what I need for my hack, is the map to look a little more... cartoony, in a way, for the mario rpg hack I'm trying to do.
  Find
Quote  

#7
Posts: 8
Threads: 1
Thanks Received: 5
Thanks Given: 0
Joined: Jul 2013
Reputation: 0
Status
None
Thanks for the bug reports and comments. All debugging has been done with a clean ROM, so expect bugs to pop up if working with a hack.

Quote:A couple things - there was a bug in the old Level Editor that would not let you place an exit past map #100, and I see it is still doing it but now it's after map #255, for example making an exit to map #256 will change to map #000. An exit to #257 will get changed to map #001. It seems to be resetting after 255 back to 0.

EDIT: now I understand the problem, it was a simple issue with casting as a byte instead of a ushort. The problem's now been fixed.

Quote:is there a way to edit the tilesets?

Only on a tile-by-tile basis via the tile editor, you cannot import full images into the tileset. Although such a feature would be possible with the implementation of architecture importation/exportation into Zone Doctor as it does with the SD3 location viewing program I've written.

Keep the reports coming, it's the only way the editor can improve it's functionality. Any suggestions, requests, or general comments are also welcome -- these will help make the program more user friendly.

Thanks for using the editor!
Quote  

#8
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
I noticed that my custom map is having its exits deleted as soon as I launch the editor and so I was trying to track down when exactly this happens, after opening and closing the editor a few times, I got this error when launching the Level Editor without making a single change.
Code:
ZONEDOCTOR, Version=3.18.0.0, Culture=neutral, PublicKeyToken=null
**************Exception Text**************Index was outside the bounds of the array.  
at ZONEDOCTOR.Comp.Decompress(Byte[] data, Int32 offset, Int32 length, UInt16& orig_size)   at ZONEDOCTOR.Model.get_WOBTilemap()  
at ZONEDOCTOR.Model.DecompressWorldMaps()  
at ZONEDOCTOR.Locations..ctor()  
at ZONEDOCTOR.Program.CreateLocationsWindow()  
at ZONEDOCTOR.Editor.openLocations_Click(Object sender, EventArgs e)

**************Recent Event History**************
MouseDown "openLocations" | X:68,Y:9 | Form "Editor" | 7/22/2013 1:07:00 PM
MouseDown "saveToolStripMenuItem" | X:9,Y:15 | Form "Editor" | 7/22/2013 1:06:43 PM
MouseDown "locationName" | X:179,Y:4 | SelectedIndex = 297 | Form "Locations" | 7/22/2013 1:06:17 PM | Element = {297}  Darill's Tomb, Outside
MouseDown "openLocations" | X:35,Y:9 | Form "Editor" | 7/22/2013 1:06:07 PM
MouseDown "loadRom" | X:35,Y:10 | Form "Editor" | 7/22/2013 1:06:03 PM
LOADED ZONE DOCTOR APPLICATION | 7/22/2013 1:06:01 PM
MouseDown "openLocations" | X:51,Y:12 | Form "Editor" | 7/22/2013 1:04:48 PM
MouseDown "loadRom" | X:61,Y:9 | Form "Editor" | 7/22/2013 1:04:45 PM
LOADED ZONE DOCTOR APPLICATION | 7/22/2013 1:04:44 PM
MouseDown "openLocations" | X:43,Y:15 | Form "Editor" | 7/22/2013 1:03:06 PM
Closing and opening the Editor fixed the error.

It looks like the exits get deleted on my custom map, but my new exits on existing maps still seem in-tact. I only have one custom map to check against and its Darill's Tomb Outside #297.

I would also like to note that I get the "Stopped saving at TILE MAP #349" every time I save. I had the problem in the old editor too, even though I am working within the bounds of the original map and it appears to still save and work properly in game. Even if I delete every tile of every layer it still gives the error, I eventually just started ignoring it since the map saves just fine and works in-game.
  Find
Quote  

#9
Posts: 2,548
Threads: 98
Thanks Received: 147
Thanks Given: 156
Joined: Aug 2009
Reputation: 52
Status
Nattak\'d
Upon trying to save (again with my hack):

"Could not save all SOLIDITY SETS. Stopped saving at solidity set #42"

Thing is, I am getting this even when not making any changes at all.

This error causes my overworld mini-map to vanish all together, or something is causing my mini-map to vanish upon saving. Could be more damage too, but I just noticed that here.
This issue is not present for me in your other level editor, I'm not sure why it would do it here unless this program compresses/decompresses everything differently.

When trying to close the application after this error, I get an error of "accessing data at 813355839 in 4194816 byte array." This occurs right before the decompressing tile maps when closing down.

ZONEDOCTOR, Version=3.18.0.0, Culture=neutral, PublicKeyToken=null

**************Exception Text**************
Exception of type 'System.Exception' was thrown.
at ZONEDOCTOR.Bits.GetByteArray(Byte[] data, Int32 offset, Int32 size)
at ZONEDOCTOR.Model.get_GraphicSets()
at ZONEDOCTOR.Locations.Locations_FormClosing(Object sender, FormClosingEventArgs e)

**************Recent Event History**************
MouseDown "saveToolStripMenuItem" | X:10,Y:10 | Form "Editor" | 7/22/2013 3:52:21 PM
MouseDown "save" | X:13,Y:8 | Form "Locations" | 7/22/2013 3:49:47 PM | Element = {000} World of Balance, World Map
MouseDown "openLocations" | X:42,Y:15 | Form "Editor" | 7/22/2013 3:48:38 PM
MouseDown "loadRom" | X:45,Y:12 | Form "Editor" | 7/22/2013 3:48:31 PM
MouseDown "loadRom" | X:26,Y:10 | Form "Editor" | 7/22/2013 3:48:19 PM
LOADED ZONE DOCTOR APPLICATION | 7/22/2013 3:48:15 PM
MouseDown "saveToolStripMenuItem" | X:4,Y:10 | Form "Editor" | 7/22/2013 3:42:45 PM
MouseDown "save" | X:12,Y:15 | Form "Locations" | 7/22/2013 3:42:01 PM | Element = {000} World of Balance, World Map
MouseDown "save" | X:15,Y:9 | Form "Locations" | 7/22/2013 3:40:49 PM | Element = {000} World of Balance, World Map
MouseDown "openLocations" | X:37,Y:11 | Form "Editor" | 7/22/2013 3:39:35 PM

Sadly for me it's looking like I will not be able to use this tool at all with my current project, if I'm not able to view the NPC's, events, or save.


We are born, live, die and then do the same thing over again.
Quote  

#10
Posts: 8
Threads: 1
Thanks Received: 5
Thanks Given: 0
Joined: Jul 2013
Reputation: 0
Status
None
PM me a patch of your hack so I can test it against the program's functions.
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite