Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - Tales: Tails Adventures Level Editor Suite

Reply to topic
Author Message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Tales: Tails Adventures Level Editor Suite
Post Posted: Wed Nov 18, 2015 1:35 am
Last edited by Supper on Tue Mar 29, 2016 3:57 am; edited 11 times in total
Current version: release 8
Windows binary (32-bit): Github Mediafire
Get the source on Github

Tails Adventures Level Editor Suite (Tales) is a more-or-less comprehensive editing program for Tails Adventures. It can fully edit most aspects of the game, such as levels, graphics, and power-ups, to create a completely different experience from the original.

List of features:
* Level editing (level layout, object layout, pretty much everything you can think of)
* VRAM layout editing, so different objects can be placed in levels
* Metatile structure and behavior editing
* Graphics editing, with import/export support
* Tilemap editing
* Palette and palette cycle editing
* Music assignment editing (different music for levels)
* Chaos Emerald power-up editing
* Some miscellaneous hacks and enhancements, like an improved inventory system
* A really long manual that hopefully explains most of the quirks in the editor and the game

Known issues:
* Although I tried to avoid this, currently, ROMs exported by the program are automatically expanded from 512 KB to 1 MB. The problem is a maddening 1-byte inconsistency in how the game compresses graphics, as well as an oddity with level layout compression I haven't fully figured out.
* On Windows 7 and probably other versions, the sidebar and the metatile structure editor look bad if the program window is too small. Until it's fixed, just expand the window so it's not a problem.
* Sometimes, loading area 9-3 (Cavern Island boss) or its alternate version in the level editor causes the program to crash for some reason.

***Original content of this post follows***

Quote
Sort-of crossposted from Sonic Retro sort-of by nineko's request -- sorry it took forever, but I wanted the editor a bit closer to completion before I started a topic.

I'm currently programming an editing utility for the Game Gear Tails Adventures. At this point, I've completed all of the low-level editing functionality I intend to have in the initial release -- you can edit the levels, graphics, and so on all you want as long as you don't mind programming your hack by hand in C++ -- and I've just begun working on a GUI to turn it into something useful. I'm aiming to have it ready for release in a month or so, though that's somewhat contingent on how busy my classes keep me. When it's ready, I'll most likely repurpose this as a general topic for the editor.

A more immediately interesting tidbit is that in the course of making the editor, I put together a hack that tries to rework the game's cumbersome manual inventory management into something that's less of a headache to deal with. Here's an overview, copypasted from Sonic Retro:

Quote

[pretty picture would go here if my account had permission to post them]

Instead of being stuck with four items, you can equip any item you've collected, removing the tedious backtracking from forgetting to bring an item you need to beat a level. To make this manageable, there's a new "hotswap" system that lets you assign four items to slots that you can instantly equip from the pause screen.

Controls on pause screen:
* Left/right: switch items as usual
* Button 1 + direction: equip the item in the corresponding slot
* Button 2 + direction: place the currently equipped item in the corresponding slot
* As a shortcut, if you hold down the Start button when you pause the game, then press a direction while keeping Start held, that item will be equipped and the game will immediately unpause.


There are two versions of this hack in the attached ZIP -- one that lets you carry all your items, and a "regitems" version that still limits you to four at a time. Both systems will be available as optional enhancements in the editor once it's finished.

tales.png (173.57 KB)
tales.png
tailsadv_hotswap.zip (479.52 KB)

  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14745
  • Location: London
Reply with quote
Post Posted: Wed Nov 18, 2015 8:20 am
Sounds good - can we host the two hacks as game enhancement patches? I couldn't find the Sonic Retro page else I'd link and copy the images over. You should be able to attach images, which we like because then they don't rot.
  View user's profile Send private message Visit poster's website
  • Joined: 16 Dec 2008
  • Posts: 38
  • Location: UK
Reply with quote
Post Posted: Wed Nov 18, 2015 9:55 am
Source: http://forums.sonicretro.org/index.php?showtopic=15930&st=645&p=841998&#entry841998.
w3wJaDh.png (7.12 KB)
w3wJaDh.png

  View user's profile Send private message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Post Posted: Wed Nov 18, 2015 3:38 pm
Maxim wrote
Sounds good - can we host the two hacks as game enhancement patches? I couldn't find the Sonic Retro page else I'd link and copy the images over. You should be able to attach images, which we like because then they don't rot.


Sure, feel free to host them if you like. I've attached the patches in IPS and BPS format -- not sure what you'd prefer for this.

Glitch wrote
Source: http://forums.sonicretro.org/index.php?showtopic=15930&st=645&p=841998&#entry841998.


Ah, thank you :)

  View user's profile Send private message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Post Posted: Sat Dec 26, 2015 3:04 am
I doubt anyone's been holding their breath on this, but since it's been over a month now I thought I'd post a progress update. I wound up being quite busy and wasn't able to work on the editor as much as I'd hoped, but I've been hammering away at it over the holidays. As of today, the two most substantial and complicated features, the level and VRAM editors, are basically feature-complete. You can change the graphics for a level, modify the metatile layout, alter objects, and preview levels both visually and in terms of metatile behavior. I've even set things up so you can add new objects to levels, which wasn't possible without a good bit of hacking and shuffling code around.

The other features to be added should be simpler, so hopefully development will go a bit faster from here on. In the meantime, here are a few WIP screens.
tales1.png (176.23 KB)
tales1.png
tales2.png (142.46 KB)
tales2.png
tales3.png (105.63 KB)
tales3.png

  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14745
  • Location: London
Reply with quote
Post Posted: Sat Dec 26, 2015 10:56 am
That's a great achievement, I found it a lot harder to progress from a level viewer to a level editor in my unfinished project :)
  View user's profile Send private message Visit poster's website
Revo
  • Guest
Reply with quote
Post Posted: Sat Dec 26, 2015 11:50 am
Nice job ;)

You can maybe help me with something. I'm trying to delete the garbage screen around the map and the menu of equipment for the Master System conversion.

Hex value of garbage screen is: 14 F3 ED 56 31 F0 DF 3E 00

At $0000 there is: F3 ED 56 31 F0 DF 3E 00 that I replaced by 00. But I can't find the 14... Now there is no garbage screen around the map but still one tile (#20) making garbage around the menu of equipment.

Followed the last version of the SMS conversion ;)

 
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Post Posted: Sat Dec 26, 2015 8:43 pm
Maxim wrote
That's a great achievement, I found it a lot harder to progress from a level viewer to a level editor in my unfinished project :)


Thank you. Most of the time-consuming hacking is already done, so the bulk of the work I'm doing here is just wrangling with Qt to cobble together an intuitive interface -- which is trickier than I'd hoped, but not nearly as bad as the months it took to do the editing library.

Revo wrote
Nice job ;)

You can maybe help me with something. I'm trying to delete the garbage screen around the map and the menu of equipment for the Master System conversion.

Hex value of garbage screen is: 14 F3 ED 56 31 F0 DF 3E 00

At $0000 there is: F3 ED 56 31 F0 DF 3E 00 that I replaced by 00. But I can't find the 14... Now there is no garbage screen around the map but still one tile (#20) making garbage around the menu of equipment.

Followed the last version of the SMS conversion ;)


Sure thing. The root cause of the problem is that, for some reason, the game initially loads the world map as if it was a regular level. This means that before loading the special world map tilemap, it loads some metatile layout data and tries to use it to draw the screen. The world map actually has some unique layout data that is successfully loaded (and immediately hidden by the real world map tilemap), but the pointer to its metatile structure pointer table just points to some garbage filler data of 0xFF at the end of a bank. Hence when the game looks up the metatiles, it always tries to read 8 bytes of tile nametable data from RAM $FFFF, causing it to wrap around to ROM 0x0000. This results in the nametable containing a repeating pattern of the byte at $FFFF (the slot 2 paging register, which happens to be 0x14 during the metatile lookup) followed by the first 7 bytes of program code at 0x0000.

This is the quickest fix I can come up with:

1. Change the 512 bytes at 0x53630-0x5382F to the pattern 01 C0 01 C0 01 C0 .... This causes all of the metatile definitions for the world map to point to RAM $C001.
2. Change the 8 bytes at 0x69B1F-0x69B26 to 0F 00 0F 00 0F 00 0F 00. This is actually part of the world map's normally-unseen layout data, which is loaded to $C001. When the game reads the four tile definitions from that address, it will now always load tile 0x0F, which appears to be blank in all relevant situations. (Tile 0 is actually used for the claw arm sprites in Tails' House, so it doesn't work on the Dock subscreen.)

Here's the fixed ROM (I restored the code at 0000, although it apparently doesn't do anything important). There's still a row of garbage at the bottom of some screens, but that's an unrelated issue I didn't look into.

EDIT: Whoops, forgot the ROM.

  View user's profile Send private message
Revo
  • Guest
Reply with quote
Post Posted: Sat Dec 26, 2015 9:32 pm
Thanks for the explanations and the rom ;)

I will put the new rom on the right section tomorrow.
 
  • Joined: 16 Dec 2008
  • Posts: 38
  • Location: UK
Reply with quote
Post Posted: Sat Dec 26, 2015 10:50 pm
That's looking really good so far. I'm looking forward to a release.
  View user's profile Send private message
Revo
  • Guest
Reply with quote
Post Posted: Sun Dec 27, 2015 12:46 am
Quote
There's still a row of garbage at the bottom of some screens, but that's an unrelated issue I didn't look into.


Like the tilemap are not compressed it's not a problem for me ;)

I only saw raw of garbage at the password screen and at the equipment screen, I hope there is nothing more.
 
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Release 0
Post Posted: Sat Jan 16, 2016 1:08 am
Last edited by Supper on Sat Jan 16, 2016 8:53 pm; edited 1 time in total
I'm pleased to announce that Tails Adventures Level Editor Suite is finally ready for an initial release! I've attached the source code, which should build on anything Windows- or Linux-like that supports Qt. The Windows binary is too big to upload (blame Qt's DLLs), so you can find it here: http://www.mediafire.com/download/b5c8yjyjkczvzpt/tales-bin-r0-win32.zip

If anyone gives this a try, I'd appreciate your feedback. Questions, complaints, comments, and especially bug reports and feature requests are all welcome. If nothing else, it would be good to know that the program runs on computers other than my own.

Features in release 0:
* Level editing (level layout, object layout, pretty much everything you can think of)
* VRAM layout editing, so different objects can be placed in levels
* Metatile structure and behavior editing
* Graphics and sprite mapping editing (rudimentary, but fully functional)
* Palette and palette cycle editing
* Music assignment editing (different music for levels)
* Chaos Emerald power-up editing
* Some miscellaneous hacks and enhancements, like the improved inventory system
* A really long manual that hopefully explains most of the quirks in the editor and the game

Things the program doesn't do that I'd like to add, in approximate order of priority:
* Editing of fixed tilemaps, such as the title screen
* World map editor
* Hack to save the game to SRAM instead of using passwords
* Improved graphics editing tools
* Proper support for exporting ROMs at original size (see below)
* Importing of replacement music/sound data
* PCM data importer (for the Sega sound)

Known issues:
* Although I tried to avoid this, currently, ROMs exported by the program are automatically expanded from 512 KB to 1 MB. The problem is a maddening 1-byte inconsistency in how the game compresses graphics, as well as an oddity with level layout compression I haven't fully figured out.
* On Windows 7 and probably other versions, the sidebar and the metatile structure editor look bad if the program window is too small. Until it's fixed, just expand the window so it's not a problem.
* There seems to be some condition that can occasionally cause exported ROMs to get stuck after the Sega screen. If this happens to anyone, please send me your project file so I can try to figure out what's causing it.
* Sometimes, loading area 9-3 (Cavern Island boss) or its alternate version in the level editor causes the program to crash for some reason.

EDIT 1/16: Replaced binary link with a new version that moves a Qt DLL to the correct location.
tales-src-r0.zip (1.67 MB)
Tales source code r0

  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14745
  • Location: London
Reply with quote
Post Posted: Sat Jan 16, 2016 7:05 am
If you don't have a host then we can do something here. Previous game editors have just been tacked onto development pages but we could add a section, there's enough to make it worth doing now.
  View user's profile Send private message Visit poster's website
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Post Posted: Sat Jan 16, 2016 9:02 pm
A couple of people reported an error due to a Qt DLL being in the wrong place in the binary package. I've moved the DLL to the correct location and updated the download link. If you had problems with an error message like 'This application failed to start because it could not find or load the Qt platform plugin "windows"', it should be fixed now.

Maxim wrote
If you don't have a host then we can do something here. Previous game editors have just been tacked onto development pages but we could add a section, there's enough to make it worth doing now.


I certainly wouldn't object if you feel it's worth doing. I'm not expecting this to be updated frequently over an extremely long period of time the way the popular Sonic editors are, so just a download on the Development page is fine too.
  View user's profile Send private message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Release 1
Post Posted: Sun Jan 17, 2016 2:11 am
Sorry for the double post, but I've put out an "emergency" release to fix a Qt issue that was causing the program to crash when the VRAM editor display was clicked. Binary here: http://www.mediafire.com/download/xm4m3nfn4rn2rs2/libtales-bin-r1-win32.zip
tales-src-r1.zip (1.65 MB)

  View user's profile Send private message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Release 2
Post Posted: Sun Jan 17, 2016 6:32 am
Sorry, one more release for a program-breaking bug that crept in during the last few days. Some deprecated metatile structure exporting code I forgot to remove broke the save system. Fixed binary: http://www.mediafire.com/download/8f30kypindo3hfv/libtales-bin-r2-win32.zip

Hopefully there won't be any more of these, at least for a while.
tales-src-r2.zip (1.65 MB)

  View user's profile Send private message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Release 3
Post Posted: Mon Jan 18, 2016 6:30 am
Release 3 out: http://www.mediafire.com/download/71gbazg46393a9v/libtales-bin-r3-win32.zip

This fixes a few bugs, including a nasty underallocation that was causing erratic behavior on loading a project file. I've also put the source on Github, so I won't attach every new release to my posts from now on.
  View user's profile Send private message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Release 4
Post Posted: Wed Jan 20, 2016 2:47 am
Release 4: http://www.mediafire.com/download/jmqknxp2mhfjiwl/libtales-bin-r4-win32.zip

This adds the ability to add new metatile structures to a set, and also fixes a bug that could cause exported ROMs to crash after the Sega screen.
  View user's profile Send private message
  • Joined: 04 Nov 2011
  • Posts: 95
  • Location: Scotland
Reply with quote
Post Posted: Wed Jan 20, 2016 11:06 am
Thank you so much for the editor. I haven't had much time to play around with it yet but I'm looking forward to getting stuck in when I can find the time.

It looks really great. :)
  View user's profile Send private message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Post Posted: Thu Jan 21, 2016 5:10 am
Hot_Violet wrote
Thank you so much for the editor. I haven't had much time to play around with it yet but I'm looking forward to getting stuck in when I can find the time.

It looks really great. :)


Thanks! I'm still actively working on new features and improvements, so let me know if you have any suggestions.
  View user's profile Send private message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Post Posted: Mon Jan 25, 2016 11:39 pm
Release 5 out: http://www.mediafire.com/download/fa1bsdh6f2i0a8l/libtales-bin-r5-win32.zip

* Added tilemap editor for modifying fixed tilemaps.
* Added resource export dialog for exporting maps, metatiles, tilemaps, and
graphics to PNGs.
* Added no game over hack.
* Fixed conversion of Game Gear colors (previously, brighter colors appeared too
dark).
* Changed display of mappings in the graphics editor so that non-mapped
(non-editable) areas appear transparent.
* Added to level editor a count of total objects in all levels and the maximum
total allowed.
* Many internal improvements made to the code courtesy of GerbilSoft.
  View user's profile Send private message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Release 6
Post Posted: Thu Jan 28, 2016 8:43 am
Release 6 out: http://www.mediafire.com/download/yzlvz054a3984wh/libtales-bin-r6-win32.zip

This version adds support for exporting and importing graphics as PNGs so you can edit them in an external program. Note that if you use GIMP, you'll need to disable transparency when exporting due to GIMP's rather obtuse way of assigning the transparency index -- see the manual for details.
  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14745
  • Location: London
Reply with quote
Post Posted: Thu Feb 04, 2016 7:30 pm
I've created a Game Editors section for the site and added a bunch of pages, including:

http://www.smspower.org/GameEditors/TailsAdventuresLevelEditorSuite

You should be able to edit the page and upload new versions and screenshots if you so wish, although I see you're also doing GitHub releases now - which is probably better than MediaFire anyway.
  View user's profile Send private message Visit poster's website
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Post Posted: Sat Feb 06, 2016 12:10 am
Maxim wrote
I've created a Game Editors section for the site and added a bunch of pages, including:

http://www.smspower.org/GameEditors/TailsAdventuresLevelEditorSuite

You should be able to edit the page and upload new versions and screenshots if you so wish, although I see you're also doing GitHub releases now - which is probably better than MediaFire anyway.


Cool, thanks! I'll try to keep that up-to-date.
  View user's profile Send private message
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Release 7
Post Posted: Mon Feb 08, 2016 7:50 pm
Release 7: http://www.mediafire.com/download/gqbn1132vakum9x/libtales-bin-r7-win32.zip

Minor update that adds a couple of options to the Level Properties dialog: one to import the layout from another level, and another to delete all objects from the current level. I also fixed a crash that sometimes occurred when there were no objects in a level.

Edit: Also, I can't seem to upload the new release to the wiki -- it's larger than the max size for ZIP files, unless I misunderstand how the upload/attachment system works.
  View user's profile Send private message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14745
  • Location: London
Reply with quote
Post Posted: Tue Feb 09, 2016 8:34 am
I probably need to increase that limit then :) Qt is a bit big...
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8652
  • Location: Paris, France
Reply with quote
Post Posted: Tue Feb 09, 2016 12:17 pm
QT size is absurd.. perhaps create a "runtime" ZIP file with all the DLL that you won't change and release the rest separately. A little annoyance for first-time but it'll save on storage space.
  View user's profile Send private message Visit poster's website
  • Joined: 31 Jan 2014
  • Posts: 39
Reply with quote
Release 8
Post Posted: Tue Mar 29, 2016 3:55 am
r8 binaries: Github Mediafire

New release incorporating features/bugfixes I added while working on my competition entry. Will look into resolving the Qt bloat for the wiki page... sometime.

* Added option to the enhancements editor to make a new game start directly from
a level instead of the world map.
* Added option to the enhancements editor to change the starting inventory
items.
* Added option to manually set the map and spawn numbers in the Warp Edit dialog
instead of restricting it to nominally valid values.
* Added ability to make warps point to spawn 0 of the world map (Tails' House).
* Fixed bug that caused exported ROMs to fail/freeze when loading graphics from
bank 0x20 or higher.
* Fixed camera boundaries display -- previously, it was one tile too far to the
left.
* Sorted the object list in the Object Properties dialog alphabetically instead
of by internal ID number.
* Changed names of some objects and graphics for consistency and accuracy.
  View user's profile Send private message
Revo
  • Guest
Reply with quote
Post Posted: Sun Jan 15, 2017 2:58 pm
Here 2 news (well from last year now) hack of Tails Adventure:

Tails Adventure LX: http://shc.sonicresearch.org/entry/56
Tails Adventures for Über Players: http://shc.sonicresearch.org/entry/34

I added Tails Adventure LX to the "hack/game modifications" section.
The link to download Tails Adventures for Über Players is dead, I will add it to the hack section when I found it.

Tails Kicks Ass and LX mods are compatible with v1.3 GG2SMS patch, so you can play them on Master System (checksum need to be changed if you don't use an everdrive).
 
Revo
  • Guest
Reply with quote
Post Posted: Mon Jan 16, 2017 12:22 pm
Uber players mod now added to the hack/game modifications section.

Also compatible with v1.3 GG2SMS patch to play on Master System.
 
Reply to topic



Back to the top of this page

Back to SMS Power!