SonLVL

Discussion in 'Engineering & Reverse Engineering' started by MainMemory, Feb 7, 2011.

  1. Pacca

    Pacca

    ASM amateur Member
    35
    0
    6
    Labyrinth Zone
    Sonic 2 CD Remix
    There's an odd little issue with the RGB color value boxes. It won't save the value in the newest edited box until you select another adjacent box. Doing anything else results in the last value not beings saved, making me go back, change it again, pointlessly select another RGB color box, then move on.
     
  2. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    Yes that's a limitation of the NumericUpDown control, I'm not sure if I can make it immediately update the value when typing.
     
  3. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    I've created a new command-line program which is available via the SonLVL updater: ObjectLayoutDiff. The program has two modes of operation; in create mode, it takes two object layout files, and compares them to see which objects were added and removed in the second file, and records that information in a file (I use .objdiff, but it's just an ini file); in apply mode, it takes an object layout file and a previously generated diff file, and applies the changes in the diff file to create a new object layout file.

    The program is rather basic, if an object is moved the diff records it as a deletion and addition, and if you've altered any objects in a file that you're applying a diff to, it may not be able to delete everything it's meant to.

    The reason I wrote this is so that I could apply the changes made in Knuckles in Sonic 2 to a Sonic 2 hack without having to manually port over all the changes I've made to the KiS2 files. In case anyone is interested, here are the objdiff files to turn S2 object layouts into KiS2 layouts.
     
  4. AkumaYin

    AkumaYin

    ベーパー Member
    Do INI files for MarkeyJester's Two-Eight disasm exist? That's currently what I'm working with.
     
  5. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    Yes, they're listed as "Sonic 1 Project 128 INIs" in the updater.
     
  6. AkumaYin

    AkumaYin

    ベーパー Member
    Okay, thanks.
     
  7. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    SonLVL can now use different compressions for FG and BG layout files in layout formats that use separate files, either by setting fglayoutcmp and/or bglayoutcmp in the INI or by overriding DefaultFGCompression and/or DefaultBGCompression in a custom layout format class. Anything not specified will use the layoutcmp/DefaultCompression data as before.
     
  8. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    4,787
    6
    18
    Lincs, UK
    TurBoa, S1RL
    The rev.1 INI that comes with the disassembly (and possibly others) incorrectly references the original rev.0 object layout for Spring Yard 3 instead of (JP1).


    Also, inserting a new block in the middle of the list correctly updates the first collision layer for subsequent blocks, but not the second collision layer (again, when using Two-Eight, possibly present with others too).
     
  9. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    I've fixed both of those issues.
     
  10. AkumaYin

    AkumaYin

    ベーパー Member
    Is start position editing not supported with the Two-Eight disassembly? I didn't see any code in the .INI referring to start location files, and it still doesn't seem to read said files even after copy-pasting that portion of the code from a 2005 INI.
     
  11. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    It should work, if the startpos data is correct, and the file it refers to exists. You also need to have an entry in the object definition INI for the player sprite.
     
  12. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    I've added support for Chaotix object layouts, and I've added drag-and-drop reordering functionality to the chunk, block, and tile lists (hold Ctrl to swap instead of move).
     
  13. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    I've added "Advanced Remapping..." buttons to the chunk, block and tile lists that open a new dialog:
    [​IMG]
     
  14. HDL

    HDL

    Member
    17
    0
    0
    Sonic Classic Heroes
    Hello, I'm currently doing some editing work for flamewing. Would it be possible to add multiple block selection in the chunk editor?
     
  15. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    I suppose it is possible... I'm not really sure how to handle that though.
     
  16. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    SonLVL now supports Sonic CD.
     
  17. KingofHarts

    KingofHarts

    Member
    1,619
    0
    16
    Project Sonic 8x16
    Anyone else having trouble with the Object Definition Editor??? I recall being able to get it working in the past... Now? Not so much.
     
  18. Clownacy

    Clownacy

    Tech Member
    781
    5
    18
    It's "horribly out of date". I tried using it a while ago, but, as you've noticed... Settled into making the definitions by hand instead.
     
  19. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,310
    16
    18
    SonLVL
    I added a new feature where you can save layout sections to a list in the program and paste them later, rather than just using the clipboard.
    [​IMG]
    They are saved in a file in the INI folder as "Level Name.sls", so if you want the same layout sections available in multiple acts, you'll have to make copies of the file.

    I also updated the build of the object definition editor so it shouldn't crash now, but you should be aware that it never worked all that well to begin with (some controls don't get updated when they should).
     
  20. Sonic Hachelle-Bee

    Sonic Hachelle-Bee

    Flying in the Ocean Wind Tech Member
    732
    4
    18
    Lyon, France
    Sonic 2 Long Version
    This editor is better at each iteration!
    Can I ask for others enhancements?

    In the blocks editor, that would be nice to be able to select multiple blocks in the list, and:
    • Copy / paste them all at once.
    • Apply a property to all their tiles at once.
    While selecting one block to edit its tiles, same thing but with the tiles editor at the far left of the window:

    • Copy / paste multiple tiles all at once.
    • Apply a property on selected tiles all at once.
    Same features for the chunks editor.

    This, because so far, this is a real pain to create a level from scratch only with SonLVL (this is much better than other editors though [​IMG] ). You start with a couple of blocks, and then replicate them (one by one) to do other blocks with little variations. And then you start with a couple of chunks, and replicate them (one by one) to do other chunks with little variations. Examples:

    • You want to copy 25 blocks only to change their palette ID towards the originals: 1 click on the first original block, copy, 1 click on your destination, paste, 1 click for each 4 tiles while typing the "C" shortcut. And this, 25 times = 150 clicks and a lot of mouse moves from left to right of the window. Only for this apparently simple task.
    • You want to change half of a chunk solidity on both planes: click on the first block, if you are not lucky type "S and T" 3 times. And do this 32 times (half of a chunk, 32 blocks). I hope you don't have 15 chunks to edit that way.
    • You want to make the same platform, but put the floor lower in the chunk: click on each block and copy them on a lower row (maybe 64 blocks to edit that way, one by one). Then, zeroes each block on top of the floor (one by one).
    Maybe I'm complaining too much [​IMG]