FW-KENSC Windows Shell Extension

Discussion in 'Engineering & Reverse Engineering' started by Clownacy, Dec 6, 2016.

  1. Clownacy

    Clownacy

    Tech Member
    781
    6
    18
    [​IMG]

    This is a Windows shell extension for flamewing's FW-KENSC (and MarkeyJester's Twizzler), made by MainMemory and I.

    If you're like me, you were constantly juggling the command line set of FW-KENSC tools around with the KENSSharp shell extension, jumping between the two when you either wanted something easy to use, or something with a better compression ratio. Now, with this, you can have both!

    This uses the (as of writing) latest version of FW-KENSC, complete with Rocket/Kosinski+ support.

    Source is available at https://github.com/MainMemory/FW-KENSC-ShellExt
    Download here: https://github.com/MainMemory/FW-KENSC-ShellExt/releases/tag/v1.1.1
     
  2. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,313
    16
    18
    SonLVL
    To be clear on who did what here, I took the basic skeleton of the KENSSharp shell extension and wrote some code for the context menu handler to interface with the compressors, Clownacy made it actually work, updated the compressors to the latest versions, and added all the extra format options.

    This extension should actually use less resources than the KENSSharp one, because the compressors are native code that runs in-process, instead of having to call out to a separate C# program.

    Glad to see this finally getting a proper release.
     
  3. rata

    rata

    Member
    513
    0
    16
    Argentina
    Trying to be useful somehow.
    This is nothing but great news for people who hate command line on almost 2017. Thank you for sharing this thing.
     
  4. winterhell

    winterhell

    Member
    1,160
    0
    16
    I think 2 mouse clicks beats writing up 2 filenames and arguments.
     
  5. Caverns 4

    Caverns 4

    Member
    339
    0
    16
    Sanik Quest: Journey To The Right
    Okay, this is just awesome, and it's gonna be a HUGE timesaver for us all!

    ... But what is Kosinski+ ?
     
  6. Clownacy

    Clownacy

    Tech Member
    781
    6
    18
    https://github.com/flamewing/mdcomp/commit/252183dffba867dcef9366f8460fb19199782fb2

    The Kosinski format is poorly-optimised for the 68k: for example, an 'add' instruction is faster than an 'lsr #1' instruction, so the Description Field should have been big-endian instead. Also, the Description Field would have been better off 8-bits long instead of 16, and the Fields in general should not be fetched early. Patching all of this up produces a new format this is incompatible with standard Kosinski, but decompresses quicker. flamewing also tried to improve the compression ratio, but the situations for the improvements to kick in never occur in S1-S&K's data, so it has no effect.
     
  7. Caverns 4

    Caverns 4

    Member
    339
    0
    16
    Sanik Quest: Journey To The Right
    Thank you. I tried searching it on Retro and Google, but well, as for google, when your second result is titled "Oral Pleasure: Kosinski as storyteller" on GoogleBooks, that's a pretty good tell that search won't end well.
     
  8. rata

    rata

    Member
    513
    0
    16
    Argentina
    Trying to be useful somehow.
    What is pretty much what I said.
     
  9. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,138
    0
    16
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Kosinski+ is a Kosinski tweak I made based on ideas Vladikcomper and I discussed on IRC some time ago. There was another tweak that Vladik created (MegaKosinski) based on some of those ideas which unfortunately had worse compression than Kosinski.

    Kosinski+ theoretically has better compression than Kosinki (in practice, it ends up being either the same or 2 bytes smaller) and is designed to decompress faster due to not making some mistakes that Kosinski format does.

    At some point I will actually release a decompressor; I just need ssome time to work on this again.

    And FYI, command line vs mouse depends on use case: in SCH and BFD, the build script recompresses all compressed files that were modified since the last build, and having a GUI for that would be horribly inefficient. As is, the build script finds the new files and generates the command line to recompress them.
     
  10. rata

    rata

    Member
    513
    0
    16
    Argentina
    Trying to be useful somehow.
    Well, yes, for blast batch processing something you're going to do modify every time you build the ROM then of course it's better if you automatize it, but if you're going to do one file, compress it, do another one, etcetera, then mouse wins.
     
  11. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,138
    0
    16
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Even the case you describe might be better done in batch: instead of doing one file, compress, repeat, you can do all files and compress them all in batch at the end :v:

    But yes, I did say it depends on use case.
     
  12. Natsumi

    Natsumi

    Miss Fox Tech Member
    191
    2
    18
    Long and dangerous river
    Navigating said river
    This is great that this is finally released; Too often I'd have to recompress one or few files to another format or uncompress, edit, and recompress. So much time wasted with crappy quick batch scripts and finding the file paths, etc.. Finally I can be actually efficient about this!
     
  13. MarkeyJester

    MarkeyJester

    My predecessors have nothing on me. Resident Jester
    I had been using MainMemory's original KENS Windows Shell for months, and I can tell you, the amount of time saved is absolutely useful. I am pleased to see the more efficient compressors applied to with it now too, I shall now pop ahead and install.

    Fantastic work guys, you are true pioneers~

    ...having said that, if I supplied the source code, any chance of including Twizzler?
     
  14. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,138
    0
    16
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Speaking for myself, I would love to include it on my mdcomp repository (with proper attribution, of course).
     
  15. Clownacy

    Clownacy

    Tech Member
    781
    6
    18
    Sure, I could add it in. That'd mean I could use it on my 32-bit machine, too :U
     
  16. Clownacy

    Clownacy

    Tech Member
    781
    6
    18
  17. KingofHarts

    KingofHarts

    Member
    1,619
    0
    16
    Project Sonic 8x16
    And all of KoH's command problems went away...
    And they say his bone grew three sizes that day...

    Srsly though this is fantastic. Downloading now. Thank you all who put this together.
     
  18. MarkeyJester

    MarkeyJester

    My predecessors have nothing on me. Resident Jester
    Seeing as this was bumped... I appear to have a problem with it.

    I had installed it, tried it out, making sure it worked and so forth. Then much later on, I uninstalled MainMemory's original version, however, it appeared to have no effect, so I thought there might be the "slightest" chance that this version may have had an effect on that. So I uninstalled this one too, and started a fresh... only to find that after reinstallation, I get nothing. Not even reinstalling MainMemory's one did anything...

    Any help would be appreciated (for the record, this is a Windows 7 64-bit OS).
     
  19. Overlord

    Overlord

    ...did we just switch realities? Moderator
    17,434
    15
    18
    Berkshire, England
    Learning Cymraeg
    It isn't because the utility was programmed for 32bit versions given you have a 64bit OS, is it? I've had issues with a couple of programs not showing up because of that (hkSFV, to be specific, which doesn't have a 64bit build).
     
  20. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,313
    16
    18
    SonLVL
    The shell extension has 64-bit and 32-bit builds, and installs both versions on 64-bit systems (so it shows up in file dialogs in 32-bit programs).

    Personally, I was able to uninstall KensSharp's shell extension without affecting the FW-KENSC one at all. I don't know why a reinstall would produce no results though, maybe some registry entry got screwed up?