don't click here

Utility ClownMapEd - The Open Source SonMapEd Clone

Discussion in 'Engineering & Reverse Engineering' started by Clownacy, Apr 19, 2023.

  1. I think it would be really useful to be able to save art in .asm form, like SonMapEd does. That function comes in handy every so often, esp. in Sonic 3 for making and adjusting secondary tiles, and the lack of it here is pretty much the only reason I don’t use ClownMapEd over it still.
     
  2. Clownacy

    Clownacy

    Tech Member
    1,076
    638
    93
    Here is v1.1.1.

    Changes:
    • Saving tiles/palettes/mappings/DPLCs no longer requires permission to overwrite existing files.
    • Non-MapMacro mappings/DPLCs no longer use local labels, to improve compatibility with old disassemblies.
    • Tiles can now be saved in assembly format.

    Dammit, sorry. I have a bad habit of reading a message, deciding to respond to it later, and then forgetting about it. I've made it so that non-MapMacro mappings/DPLCs use SonMapEd-style labels, which should work in your hack.

    I've added the option to save tiles in assembly format.
     
  3. Selbi

    Selbi

    The Euphonic Mess Member
    1,503
    58
    28
    Northern Germany
    Sonic ERaZor
    Haha, don't worry, happens to all of us from time to time. Thank you so much for the update, it works like a charm now! :D
     
  4. Brainulator

    Brainulator

    Regular garden-variety member Member
    If anything, I'd like an option to set the label styles myself. This can be useful if you find yourself using, say, "itempat" instead of "Map_Monitor".
     
  5. Clownacy

    Clownacy

    Tech Member
    1,076
    638
    93
    The label style only affects the internal labels: the main label that refers to the entire file is not determined by ClownMapEd.
     
  6. Brainulator

    Brainulator

    Regular garden-variety member Member
    Even then, I'd like those to be modifiable as well.
     
  7. Clownacy

    Clownacy

    Tech Member
    1,076
    638
    93
    v1.1.2
    https://github.com/Clownacy/ClownMapEd/releases/tag/v1.1.2
    General changes
    • Fixed cycling backwards through sprite pieces getting stuck at piece 0.
    • Fixed the selected sprite piece not being visually highlighted.
    • The editor now gracefully recovers when loading invalid mappings and DPLCs.
    • Sprite importing now only matches the background colour if it is exact.
    • Sprite importing now allows bitmaps which do not mark their unbounded areas.
    Technical changes
    • Added support for Qt 6.
    • Made compatible with Qt 5.12.
    • Offloaded asset processing to the libsonassmd library.
    • Added an AppImage build.
    • Switched to the static MSVC runtime library, avoiding the need for users to install any redistributables.
    This release marks the first time that any of my projects have been released as a Linux AppImage! An AppImage works like a Windows EXE, allowing people to download and try the program with ease; no installer, package manager, or compiling from source code necessary!
     
  8. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    Dang, go big or go home! libsonassmd is dope AF :-)

    I saw your comment on Boost, and although the maintainers insist it's just an upstream of STL, I agree. They seem to have a lot of half-eaten sandwiches around their source tree; a lot of stuff that has zero chance of ever being promoted to the next C++ standard, from a JSON parser to a memory-mapped file API that are either incomplete or have a vastly-superior portable implementation somewhere else.

    I see you're also a fan of static linking as well! I usually statically link everything except the core runtimes, and LibreSSL/OpenSSL, but Microsoft has such a nasty habit of recklessly introducing breaking changes into successive versions of their libc/libc++ (MSVC runtime) that anybody who has a Steam library and uses Windows has at least 3 versions of the Visual Studio runtime installed. Good call!
     
    Last edited: Apr 14, 2024
  9. Selbi

    Selbi

    The Euphonic Mess Member
    1,503
    58
    28
    Northern Germany
    Sonic ERaZor
    There's one more annoying legacy problem with the old 2005 S1 disassembly that the tool currently is a bit ill-equipped to deal with: object mapping files don't have the headers inside the maps file, but rather above the include:

    Code (Text):
    1. ; in sonic1.asm
    2. Map_obj36:
    3.         include    "_maps\obj36.asm"
    4.  
    5. ...
    6.  
    7. ; in _maps/obj36.asm
    8.         dc.w byte_CFF4-Map_obj36
    9.         dc.w byte_D004-Map_obj36
    10.         dc.w byte_D014-Map_obj36
    11.         dc.w byte_D01A-Map_obj36
    12.         dc.w byte_D02A-Map_obj36
    13.         dc.w byte_D049-Map_obj36
    14. byte_CFF4:    dc.b 3            ; 3 spikes
    15.         dc.b $F0, 3, 0,    4, $EC
    16.         dc.b $F0, 3, 0,    4, $FC
    17.         dc.b $F0, 3, 0,    4, $C
    18. byte_D004:    dc.b 3            ; 3 spikes facing sideways
    19.         dc.b $EC, $C, 0, 0, $F0
    20.         dc.b $FC, $C, 0, 0, $F0
    21.         dc.b $C, $C, 0,    0, $F0
    22. ...
    23.  

    Unfortunately, ClownMapEd requires this header (Map_obj36 in this case). It gives me this error otherwise:
    upload_2024-5-31_12-58-52.png

    Not a huge problem, since simply moving the header inside the file fixes the issue. It is a bit annoying though.
     
  10. Brainulator

    Brainulator

    Regular garden-variety member Member
    This is somewhat by design, according to a comment by Clownacy on GitHub: