Tales: Tails Adventures Level Editor Suite

Discussion in 'Engineering & Reverse Engineering' started by SupperTails66, Jan 16, 2016.

  1. SupperTails66

    SupperTails66

    Tech Member
    1,103
    6
    18
    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.
     
  2. SupperTails66

    SupperTails66

    Tech Member
    1,103
    6
    18
    Release 8 out: Github Mediafire

    New version which adds some features I used while slapping together an entry for SMS Power's hacking competition.

    Code (Text):
    1.  
    2. * Added option to the enhancements editor to make a new game start directly from
    3. a level instead of the world map.
    4. * Added option to the enhancements editor to change the starting inventory
    5. items.
    6. * Added option to manually set the map and spawn numbers in the Warp Edit dialog
    7. instead of restricting it to nominally valid values.
    8. * Added ability to make warps point to spawn 0 of the world map (Tails' House).
    9. * Fixed bug that caused exported ROMs to fail/freeze when loading graphics from
    10. bank 0x20 or higher.
    11. * Fixed camera boundaries display -- previously, it was one tile too far to the
    12. left.
    13. * Sorted the object list in the Object Properties dialog alphabetically instead
    14. of by internal ID number.
    15. * Changed names of some objects and graphics for consistency and accuracy.
    16.  
     
  3. Any possibility of adding support for more game gear games in the future?
     
  4. SupperTails66

    SupperTails66

    Tech Member
    1,103
    6
    18
    The short answer: not anytime soon.

    The long answer: As far as I've looked into it, all the Aspect-developed games run on basically the same engine, so the code I've written so far is probably a good starting point for a more comprehensive editor. That said, I didn't program this with multi-game support in mind (I'd never made a program on this scale before, so I was more concerned with keeping the project within a scope I could handle), and it would still take a lot of work to turn it into something more general. And the truth is I'm not as interested in the "real" SMS/GG Sonic games, so I'm not really in any rush to try it. If I do, I'll probably make a new utility starting from the same codebase, since there's a lot of sloppy stuff that needs rewriting (especially the GUI).
     
  5. Ah, that's cool. Other things I want to ask for, would you by chance be able to put a paint bucket tool into the level editor? And some kind of undo function for graphic editing too. I'm just starting to mess around with it and for someone who's very stupid with editing this seems very easy to use yet powerful.

    Oh, one thing, what's the best program to convert images to 4-bit or 8-bit PNG's?
     
  6. SupperTails66

    SupperTails66

    Tech Member
    1,103
    6
    18
    A paint bucket for the level editor makes sense and shouldn't be hard, so I'll see about throwing that in. I'm not really planning on expanding the graphics editing stuff since importing renders most of it unnecessary. For any substantial project, it really makes more sense to edit the images externally and use the "import all" function.

    I use GIMP for editing, although it's very finicky about transparency in indexed PNGs, so don't enable transparency if you want to use it. Basically, you should export the graphics you want to edit using Tales, change whatever you need, and import them again. If you copy and paste data into an indexed image, GIMP will try its best to convert the colors to the image's colormap, which is probably your best bet for copying in external sprites. Obviously you might need to play with the palettes if they don't have the colors you need in them.
     
  7. I'll definitely try when I get the chance. Is there a way to turn on our off the burned duck for specific enemies, and if not how hard would it be to implement something like this?
     
  8. SupperTails66

    SupperTails66

    Tech Member
    1,103
    6
    18
    I don't think it would be too complex to implement, but I'd have to take the time to find the relevant portions of each enemy's object code and write suitable patches. I'll look into it, but don't expect anything right away.
     
  9. It still refuses to work even after being exported by GIMP. Any idea as to why?
     
  10. Glisp

    Glisp

    That one weird guy that does stuff. Member
    1,278
    1
    16
    Bloomington, IN
    None at the moment I'm afraid.
    I've been reading through this thread for a bit. It's nice to see an editor of this scale for an obscure yet very fun Game Gear game for a change. I don't think any of our 16-bit modding programs other than SonlevEd and SonEd have this kind of scope of what you're doing. Of course, it's been a long time since I've used those programs let alone been involved in Sonic game hacking so things may have changed a great deal since. Keep up the good work SupperTails.


    With that out of the way, I have just one question: Why aren't you a Tech Member yet?
     
  11. Ravenfreak

    Ravenfreak

    Is actually a guy. Tech Member
    2,969
    109
    43
    O'Fallon Mo
    Hacking Sonic Drift, Writer at Sonic Cage Dome
    Well there is Aspect Edit, made specifically for the Aspect Sonic games. So there is a tool for other 8-bit Sonic games, it could be improved but it's a nifty tool for what it does. :) But I agree, Suppertails is doing a fantastic job!
     
  12. SupperTails66

    SupperTails66

    Tech Member
    1,103
    6
    18
    What specifically is the problem? Are the colors wrong after importing, or is nothing happening period? Are you importing sprite mappings or raw graphics? Is the modified image the same size as the original? Any details will help.

    Thanks. Obviously the 8-bit games are very simple compared to the 16-bit ones, so it's easier to put together a large-scale program for them. I way overdid the featureset relative to how much anyone actually cares about the game (myself included?), but it was a good way to learn how to work with SMS/GG games and write usable utilities.

    I kind of thought there was already a tool for some of the games, but I'd never looked into it. Actually, taking a glance at what that program does, it looks like the other games might be doing something a bit more complicated after all. Oh well. At any rate, thank you -- this has been fun to work on. Fun to have the bulk of the features in the can, anyway.
     
  13. For the most part, nothing happens at all, not even an error screen to tell me what I could've done wrong. The one time anything ever showed up in the editor (Which happened to be when I used GIMP to export it) the colors were all fucked up, which was before I asked in this topic.

    Also, any way to place the regular bomb weapon as a pick up? Would like the player to start without it at first and then find it on the ground. Maybe I just missed it in the object selection screen.
     
  14. SupperTails66

    SupperTails66

    Tech Member
    1,103
    6
    18
    Yeah, sorry, I wasn't exactly meticulous about error messages for that part of the program. I've imported plenty of GIMP-edited graphics into the game myself, so it certainly should work. It might be easiest if you just sent me a graphic you're having trouble with (original and exported versions) and told me what you're trying to replace so I can have a look myself.

    As for the regular bomb, it's the first item in the initial state list for the item pickup object. Since you're not supposed to be able to pick it up, it doesn't have its own pickup label and the game calls it a Chaos Emerald, but otherwise it works fine.
     
  15. I've finally gotten it to work by using the Overwrite function of GIMP instead of the Export to, dunno what the difference made but I'll use that from now on and report any other issues I have in the future.

    EDIT: Never mind, it still seems finicky as ever. It's just at random it'll work.