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.)
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
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:
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
ow no idea then...I just remember clicking on some chunk and then the message appeared. Ill try looking at it again soon
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
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 (Text): 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 (Text): 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).
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.
Because he spelled "Kosinski" wrong in his INI files. The split disassembly produces a kosinski folder, while his INI file expects 'kozinski' You can fix this by opening the INI file in Notepad and fixing it.
For some reason, the copy of the 2007 disassembly I have calls it kozinski. If I'm the only one that has it, then I'll change it (and then the SVN INIs will work for both).
well mine says kosinski too. just one of those weird things I could've sworn I checked, lol EDIT: nope, renamed and it still chucks the error.
The copy I grabbed from the wiki just last week has kosinski, so I assume it's correct. I ported from the original C code to C#. Wasn't aware there was a C++ port. And this is exactly why I released as soon as I had it far enough along to work, instead of finishing it first. Because this is the 2nd time I've posted something that someone else was working on but didn't bother to post it in a public place where I can read it. It only took about an hour to do each of the decompressors, it should be feasible for me to do the compression this weekend if there's still a reason for me to do so.