don't click here

SonLVL

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

  1. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,735
    334
    63
    SonLVL
    [​IMG]
    This will (hopefully) submit reports to my website where I and other interested parties (as if) will be able to view them and possibly notify me when one is submitted (I have someone else working on the server-side stuff because I don't know much PHP).

    For those of you that care, this will also be seen in SADXLVL2, SAMDL, SALVL, and pretty much anything else I think is "big enough" to have it.
     
  2. Do like, any plans on an auto updater of some sort? If not that's cool :u
     
  3. Selbi

    Selbi

    The Euphonic Mess Member
    1,497
    48
    28
    Northern Germany
    Sonic ERaZor
    So, I actually went ahead and tried this program for once (I used SonED2 for years and it was simply too difficult to even try out something different). I was really looking forward to this, but it just does not work.

    I used the Updater program, downloaded SonLVL along with the S1 2005 INI files straight into my main disassembly root. When I start the program everything looks normal. I load S1LVL.ini and it loads, but when I select any level in the "Change Level..." submenu it always crashes because of an out of an "IndexOutOfRangeException".

    Since this was on my ERaZor disassembly and I kinda understand what's going on, since its system is indeed very hard modified. But the reason why this is making me feel uncomfortable is that SonED2 works just fine with said disassembly, so it's definitely a problem on the program's side. I also tried it with a clean disassembly and it works fine there.

    In case it matters, here's the partially German log file, maybe that helps:

    Code (Text):
    1. Opening INI file "C:\Users\Selbi\Desktop\Disassemblies\Sonic ERaZor\Sonic 1 2005 INIs\S1LVL.ini"...
    2. Game type is S1.
    3. Loading Spring Yard Zone Act 1...
    4. Loading 8x8 tiles from file "../artnem/8x8syz.bin", using compression Nemesis...
    5. Loading 16x16 blocks from file "../map16/SYZ.bin", using compression Enigma...
    6. Loading 256x256 chunks from file "../map256/SYZ.bin", using compression Kosinski...
    7. Loading FG layout from file "../levels/syz1.bin", using compression Uncompressed...
    8. Loading BG layout from file "../levels/syzbg.bin", using compression Uncompressed...
    9. Loading palette file "../pallet/sonic.bin"...
    10. Source: 0 Destination: 0 Length: 16
    11. Loading palette file "../pallet/syz.bin"...
    12. Source: 0 Destination: 16 Length: 48
    13. Loading object definition file "obj.ini".
    14. System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
    15.    bei SonicRetro.SonLVL.S1Mappings..ctor(Byte[] file, Int32 address) in C:\RetroSVN\Programs\SonLVL\SonLVL\DataTypes.cs:Zeile 1126.
    16.    bei SonicRetro.SonLVL.ObjectHelper.MapASMToBmp(Byte[] artfile, String mapfileloc, String label, Int32 startpal, Point& offset) in C:\RetroSVN\Programs\SonLVL\SonLVL\ObjectHelper.cs:Zeile 53.
    17.    bei SonicRetro.SonLVL.DefaultObjectDefinition.Init(Dictionary'2 data) in C:\RetroSVN\Programs\SonLVL\SonLVL\ObjectDefinition.cs:Zeile 74.
    18.    bei SonicRetro.SonLVL.MainForm.LoadObjectDefinitions(String file) in C:\RetroSVN\Programs\SonLVL\SonLVL\MainForm.cs:Zeile 3622.
    19.    bei SonicRetro.SonLVL.MainForm.backgroundWorker1_DoWork(Object sender, DoWorkEventArgs e) in C:\RetroSVN\Programs\SonLVL\SonLVL\MainForm.cs:Zeile 841.
    I left the INI files entirely untouched, just like the SEP files from SonED2, in case that matters as well.
     
  4. Vangar

    Vangar

    Member
    3,654
    62
    28
    I've tried it working on S3K, and it works great :D. Changing level / modifying tiles etc works for good, and the compile built in is awesome to test levels. 2 Questions:

    1) AIZ 1, right at the start of the level. The foreground data allows for blocks lower then the camera lock, but I can't work out how to setup when the camera locks to a certain area. Right now it wont move down and just kills the player.
    2) How does one test their levels efficiently? Building the rom means going into start>game select>level . Do people have saves for every level to make this process easier?
     
  5. Uberham

    Uberham

    King Of Oblivion Member
    The camera lock has to be edited manually in ASM IIRC.

    I usually make a save at the level select screen, and do most of my testing from there.
     
  6. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,735
    334
    63
    SonLVL
    I generally have a DEBUG constant at the top of the main ASM file that when set to 1 skips the checks for the cheat code flags (level select, slow motion, debug).
     
  7. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,735
    334
    63
    SonLVL
    Double-posting because this is important: I have moved my website from X-Hax to ReimuNET. As such, you all need to redownload the updater if you wish to continue receiving updates.

    I have updated SonLVL with:
    • a new error dialog, but no error reporting yet, as the server-side stuff isn't done yet. SonLVL will continue to produce .log files so you can report errors manually.
    • undefined labels in ASM files (sprite mappings) are equivalent to 0. This allows SonLVL to parse files lacking the top label, as in Sonic 1 2005.
    • SonLVL checks for updates at startup if "SonLVL Updater.exe" exists.
    Additionally, I have converted the object definitions from Sonic 1 SVN to Sonic 1 2005 (Common & GHZ only). So now you can see rings and stuff correctly.
     
  8. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,735
    334
    63
    SonLVL
    The bug reporting feature is now online, and I have enabled SonLVL to submit reports.
     
  9. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    If I accidentally delete a folder of INIs that I got from the updater, how can I redownload them? The updater no longer allows me to do so.
     
  10. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,735
    334
    63
    SonLVL
    Open Updater.ini and delete the lines that refer to the INI packs.
     
  11. Vangar

    Vangar

    Member
    3,654
    62
    28
    Could I request this variable be an option to change in the level editor? This would make a lot of sense I think, seeing it is a core part of a level layout.
     
  12. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,735
    334
    63
    SonLVL
    Assuming you're referring to the camera lock, at one point I had it visible in levels (S2 SVN only), but then I decided it was too difficult to add a method for editing it, and have since removed it entirely. I may come back to it, or I may not.
     
  13. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,735
    334
    63
    SonLVL
    You may have noticed that SonLVL can be rather slow, especially at large resolutions. So, I thought that maybe if I used Direct3D it would be able to render faster. And I was right.
    But, it also has some drawbacks:
    • Levels take about a minute to load.
    • The grid option has been removed.
    • The zoom option has been removed.
    • The ability to change the size of the window has been removed (it will always be maximized).
    • The "loop indicator" for Sonic 1 has been removed.
    • Palette changes incur long waits.
    • The update checking functionality has been removed.

    With that said, you may download SonLVLD3D here. I am probably not going to work on this version any further.
     
  14. Yeah, don't :| It's poo.
     
  15. Selbi

    Selbi

    The Euphonic Mess Member
    1,497
    48
    28
    Northern Germany
    Sonic ERaZor
    It does work a lot smoother now, but I prefer stability and extra features to faster processing speed. Stick with what you had.
     
  16. Tidbit

    Tidbit

    Member
    I'm not sure if what I'm about to bring up have been mentioned already, but I suppose a little repetition can't hurt. I feel that it's a little too time consuming to have the user select the tiles and blocks that they'll be placing through a little drop down menu, as opposed to the way that SonED2 uses (selecting blocks and tiles in a repository off to the side and then just right clicking them into the chunk/block space). Aside from what I mentioned, I have to say that I love this editor and I hope to expect even better things from it.
     
  17. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,735
    334
    63
    SonLVL
    The chunk/block editing is the weakest part of SonLVL right now, but I am unsure how to create an interface that works well...
     
  18. Tidbit

    Tidbit

    Member
    Have you thought of creating something similar or even duplicating what SonED2 uses?
     
  19. Yeah, a chunk/tile editor where you can view it in its whole form (8x8,16x16 and so on), being able to select and edit properties of multiple 16x16s in a chunk to set collision or to delete, flip. As far as placing stuff, I think it needs to be more like soned2 where you can click and 'draw'
     
  20. Tidbit

    Tidbit

    Member
    I also have a question about importing a full palette, is there a specific way that the palette file needs to be set up for it to import correctly because I haven't really had much luck with it.