• Wave Race and Super Smash Bros save file formats

    I’ve added binary templates for Wave Race 64 and Super Smash Bros save files. They are not 100% complete but contain most of the interesting data. Enjoy!

  • N64 save file formats

    For one of my (many) side projects I required information about save file formats for N64 games. After some searching I noticed that only a few of the most popular (Zelda OOT, Mario 64 etc) games are documented across the web, but there was not a single place that contained documentation, let alone documentation for all N64 games.

    I started to document the currently available information into a single GitHub repository in consistent 010 templates, which are very easy to read even without 010 editor, for everyone to learn from and add to.

    As of writing this post the repo only contains a template for Mario 64, 1080 Snowboarding and the start of Diddy Kong Racing, but I am planning to add more in the future.

  • Shadow-Mapper lives (sort of)

    After 13+ years I got curious to see if Shadow-Mapper would still build and run. Checked out the git repository and it was immediatly clear that it would not build let alone run.

    So I decided to take up the challenge and see if I could make it run or at least build after all those years.

    Step 1 - Replace build system The old version of Shadow-Mapper was build using netbeans and used the netbeans project files and way of building. I’ve decided to use Gradle as a build/dependency management system. Gradle is supported by many Java IDE’s and has great support in Intellij. After settings up the Gradle build file the project could still not build.

    Step 2 - Find missing dependencies The project was still missing a lot of dependencies which where previously added to the classpath by the Netbeans project. Tracking down those missing dependencies was easy; Just search for the package on Google and in most cases the libs where available on MavenCentral.

    Step 3 - Actually getting the project to work As the project is really old and was one of my first “big” projects, the code is terrible to say the least. I’ve had a few good laughs at the codebase but most of the time it made me sad (Might be worth a post on it’s own), it’s insane that this actually worked!

    Some interesting changes that where required:

    • GTA: IV has been updated so fetching the encryption key from the game needed an update.
    • A lot of resources could not be loaded due to broken file parsing.
    • The OpenGL canvas was only drawn once.

    After a lot of minor changes the project is running again, without textures mind you.

    This is the current status for now, not sure if I will spend more time on it, but at least everyone checking out the repository should be able to build the project!

  • Kotlin Multiplatform Chip-8 Emulator

    I’ve been wanting to do something with Kotlin Multiplatform for a while now but couldn’t think of a nice project. As I’ve been interested in the world of emulation for a while, I thought it could be a nice challenge to create the “ hello world” of emulators, the ‘Chip-8’, using Kotlin Multiplatform.

    The first working version of the emulator is now available on my GitHub https://github.com/KilianSteenman/KEmulation. The emulator works (without sound) on Android, Desktop and Web.

    As much as I love Kotlin, writing an emulator was still annoying due to the lack of proper Unsigned types (Thanks Java!) . The experimental unsigned types implementation is just not that great to work with. Besides that it still feels like early days for Multiplatform, the setup is just not as straightforward and documentation is outdated or lacking.

    Anyway I don’t expect to spend much more time on the emulator as it’s pretty much finished. On to the next coding challenge!

  • Sketchup2GTA: III is now available!

    Export is now available for all 3 RenderWare based games!

    The exporter fully supports GTA: III, VC and SA export options for DFF, TXD, COL, IPL and IDE files.

    As always download is available on the GitHub release page.

    Requests, suggestions and questions can be done by creating a GitHub issue.