Sonic and Sega Retro Message Board: SonLVL - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
  • 46 Pages +
  • ◄ First
  • 3
  • 4
  • 5
  • 6
  • 7
  • Last ►
    Locked
    Locked Forum

SonLVL Level Editor for S1, SCD, S2NA, S2, S3K, SKC, SCDPC - 11/15/2016

#61 User is offline Relick 

Posted 18 February 2011 - 03:27 AM

  • Posts: 197
  • Joined: 20-March 10
  • Gender:Male
  • Location:England
  • Project:C++/DX10 Engine (not sonic related)
  • Wiki edits:5
I'm horribly looking forward to the S3K one, however I reckon a complete disassembly is going to be needed first. :P (Unless there is one. In which case I'm slooooow.)

#62 User is offline Azu 

Posted 18 February 2011 - 04:27 AM

  • I must be stupid.
  • Posts: 1527
  • Joined: 23-February 08
  • Gender:Male
  • Location:Home
There is a Sonic and Knuckles disassembly , but I don't know of a complete one.

#63 User is offline MainMemory 

Posted 19 February 2011 - 11:24 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 4134
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
Beta 4 is here:
  • Added object definitions for Casino Night.
  • Added support for CNZ's special bumpers.
  • Added support for Sonic 1.


INI files for the 2005 disassembly can be found with the download, SVN version, on the SVN in the Sonic 1 Split Disassembly folder. However, due to the large number of differences between the two disassemblies, I don't think I'll be able to continue supporting both disassemblies. It took about as long to make the 2005 INIs as the originals.

You'll also notice that in Sonic 1, rings only show up as one sprite, and give no information related to subtype. I have an idea to fix this and other objects that don't display properly, by having C# code files (.cs) for each object, but this would make the properties a bit more difficult to edit for people that don't know C# (which I'm assuming is most of you). And it would increase load time a bit, compiling all the files. But it's pretty much that, or live with the limits the system has now.

As for S3K, I have access to a private disassembly emot-ssh.gif

#64 User is offline Skeledroid 

Posted 20 February 2011 - 11:33 AM

  • Posts: 227
  • Joined: 17-November 06
  • Gender:Male
  • Wiki edits:1
Best new app beside the Special Stage editor, fo sho.

#65 User is offline MainMemory 

Posted 23 February 2011 - 12:46 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 4134
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
Rewriting the object definitions so that they can control how they draw (to fix S1 rings, EHZ bridge, etc), I've also made it possible for objects to define custom properties:


#66 User is offline FeliciaVal 

Posted 23 February 2011 - 01:17 PM

  • Posts: 690
  • Joined: 04-March 10
  • Gender:Female
  • Location:Spain
looks nice so far. Too bad I tried to open up the S1 level editor and it crashed sad.png

#67 User is offline MainMemory 

Posted 23 February 2011 - 01:20 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 4134
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
Did it pop up a message box, or just crash? If it did, what did it say?

#68 User is offline FeliciaVal 

Posted 23 February 2011 - 01:47 PM

  • Posts: 690
  • Joined: 04-March 10
  • Gender:Female
  • Location:Spain
QUOTE (MainMemory @ Feb 23 2011, 02:20 PM)
Did it pop up a message box, or just crash? If it did, what did it say?

popped up a message box.
I can't remember the message, but I remember it was caused when I tried to remove or add a new chunk

#69 User is offline MainMemory 

Posted 23 February 2011 - 01:51 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 4134
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
You can't add or remove chunks in S2LVL...

#70 User is offline FeliciaVal 

Posted 23 February 2011 - 02:15 PM

  • Posts: 690
  • Joined: 04-March 10
  • Gender:Female
  • Location:Spain
ow no idea then...I just remember clicking on some chunk and then the message appeared. Ill try looking at it again soon

#71 User is offline sonicblur 

Posted 24 February 2011 - 12:54 AM

  • Posts: 1161
  • Joined: 18-February 08
  • Gender:Male
  • Wiki edits:6
Here is a very experimental Mac OS X port if anyone wants it. (Requires OS 10.6 or higher)

You can load data, but you can't save. (I've only re-written the decompression parts of the Windows COM DLL's into .NET, not the compression parts yet.) Fairly useless, but you can use it to export level maps at least. It's also very unstable.

This was mostly an experiment to see how quickly I could decompile someone else's code and get it to build again. (About 2 hours, minus the effort to rewrite the decompression routines from the DLL's) If there is any interest, I can continue working on this port until it's usable. Or I can at least provide native .NET (de)compression DLL's if MM wants them, so that it would be possible to make it work anywhere Mono can run.

#72 User is offline theocas 

Posted 24 February 2011 - 01:01 AM

  • Posts: 346
  • Joined: 10-February 10
  • Gender:Male
  • Wiki edits:50
QUOTE (sonicblur @ Feb 23 2011, 09:54 PM)
Here is a very experimental Mac OS X port if anyone wants it. (Requires OS 10.6 or higher)

You can load data, but you can't save. (I've only re-written the decompression parts of the Windows COM DLL's into .NET, not the compression parts yet.) Fairly useless, but you can use it to export level maps at least. It's also very unstable.

This was mostly an experiment to see how quickly I could decompile someone else's code and get it to build again. (About 2 hours, minus the effort to rewrite the decompression routines from the DLL's) If there is any interest, I can continue working on this port until it's usable. Or I can at least provide native .NET (de)compression DLL's if MM wants them, so that it would be possible to make it work anywhere Mono can run.

*flails arms*
Mac ports make me feel happy. I must try and report back. *teleports off with a copy of the programme*

INB4 .NET
This post has been edited by theocas: 13 April 2011 - 10:37 PM

#73 User is offline MainMemory 

Posted 24 February 2011 - 09:21 AM

  • Every day's the same old thing... Same place, different day...
  • Posts: 4134
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
FraGag is working on porting Flamewing's C++ port of KENS to C# after I failed to do so (KENSSharp on the SVN). I've always intended to have it cross-platform.

#74 User is offline flamewing 

Posted 24 February 2011 - 02:15 PM

  • Emerald Hunter
  • Posts: 1135
  • Joined: 11-October 10
  • Gender:Male
  • Location:🇫🇷 France
  • Project:Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
  • Wiki edits:12
QUOTE (MainMemory @ Feb 24 2011, 12:21 PM)
FraGag is working on porting Flamewing's C++ port of KENS to C# after I failed to do so (KENSSharp on the SVN). I've always intended to have it cross-platform.

FYI, I found a small bug in my Nemesis decompressor for the case of mode 1 decompression. I still haven't updated SVN with it, but the changes are as follows:
CODE
Index: src/lib/nemesis.cc
===================================================================
--- src/lib/nemesis.cc    (revision 28)
+++ src/lib/nemesis.cc    (working copy)
@@ -406,13 +406,11 @@
    {
        // For alternating decoding, we must now incrementally XOR and output
        // the lines.
-        dst.seekg(0, std::ios::end);
-        std::streampos sz = dst.tellg();
        dst.seekg(0);
        dst.clear();
        unsigned long in = LittleEndian::Read4(dst);
        LittleEndian::Write4(Dst, in);
-        while (dst.tellg() < sz)
+        while (dst.tellg() < rtiles << 5)
        {
            in ^= LittleEndian::Read4(dst);
            LittleEndian::Write4(Dst, in);


To avoid being completely off-topic, I have a suggestion for handling HTZ, WFZ and DEZ zone tiles (and maybe levels in other Sonic games that work similar to these). These levels work by patching the art of another level with zone-specific tiles. So what you need to do is support some form of art patching that works (schematically) like this (using HTZ as example):
CODE
VRAM tile:  $0000               $01FC             $037E               $0393
              v                   v                 v                   v
Buffer 1:     <----------------------- EHZ tiles ----------------------->
Buffer 2:     <--- passthrough ---><-- HTZ tiles --><--- passthrough --->

Here, the passthrough regions simply forward the tile requested to the EHZ tile buffer, while the HTZ tiles are used instead of the EHZ ones in those regions. This allows editing of EHZ and HTZ tiles and allows them to be saved independently on changes to either, without the HTZ tiles gaining duplicate copies of all EHZ tiles and without the EHZ tiles being overwritten by HTZ tiles. (by the way, Rexon uses tiles starting from $037E, so you may want to keep this indirection further along).

#75 User is offline MainMemory 

Posted 24 February 2011 - 02:25 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 4134
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
I have a setup for palette entries that allows any number of entries from any location in any number of files to be loaded, but the problem I have with this is that you can't add or delete palette entries, but you will be able to add and remove tiles.

  • 46 Pages +
  • ◄ First
  • 3
  • 4
  • 5
  • 6
  • 7
  • Last ►
    Locked
    Locked Forum

3 User(s) are reading this topic
0 members, 3 guests, 0 anonymous users