• Bad habit

    Oh man, it’s starting to become a bad habit that I post something at the end of the month. I need to step up my game; otherwise, I won’t accomplish those New Year’s resolutions.

    Anyway, I’ve spent some time improving my Chip-8 emulator. It now has basic program selection, and the input mapping is fully working, even if not very intuitive yet.

  • A slow month

    I am lucky this month has an extra day, I almost forgot to post something in February!

    Things have been a bit slow this month due to a nice skiing trip and life in general. Work kept me busy!

    But I did have a bit of time to work on a project. This time it wasn’t OASE but a Chip-8 Emulator for the N64. I’ve already written a Chip-8 emulator in Kotlin Multiplatform, but for the N64 I had to write it in C. Even though my C isn’t great it was a much nicer experience then the Kotlin version. Kotlin just isn’t nice to work with when dealing with unsigned types or binary operators, which are used a lot when dealing with file formats or emulation.

    Anyway the emulator is not fully done yet, currently working on input mapping support once I’ve got a fully working version I’ll put the emulator on my GitHub.

  • We are on the air!

    In my previous post I mentioned OASE and the things I would like to improve. One of the big things that was missing is audio, radio stations to be specific. Vice City just doesn’t feel the same without those 80’s songs blasting from the radio.

    So I decided to start the new year with some good vibes by adding MP3 playback to my engine. I am using NAudio to create PCM streams together with NLayer to parse MP3 data.

    Boom we have sound!

    But there was a little bump on the road, Vice City doesn’t use MP3s for the radio stations instead it’s using ADF, which isn’t a known file format. Luckily the smart folks at GTAForums.com already figured out that the files are just ordinary MP3’s but “encoded” by XORing all bytes with 0x22. So after 3 lines of code to XOR the data.

    Billie jean is not my lover.

  • 2024!

    Last week, we looked back at 2023. Now, let’s turn our gaze toward 2024!

    As always, I have many projects swirling around in my head simultaneously. I aim to set a goal for the upcoming year: to finish or release at least one of my projects.

    So, what projects do I have in mind for this year?

    Game using OASE

    I would like to create a small game using my own engine. I’ve been contemplating some concepts and am eager to bring those ideas to life.

    Elevating OASE VC to the Next Level

    The engine can currently run a basic and very buggy version of the game, and there is still much room for improvement. The aspects I would like to enhance the most are player/vehicle movement, map streaming, and audio.

    Wake-Up Light

    For my son, I’ve developed an Arduino-based wake-up light. You can use your phone to set different times to turn the light on and choose the color that should be used. The various colors indicate different states.

    For example:

    • Dark blue: Go back to sleep; it’s the middle of the night.
    • Orange: It’s almost time to get out of bed.
    • Green: You are allowed to get out of bed.

    III Era Modding YouTube Channel

    As someone who began their programming career in the III era modding scene (thanks to Mission Builder!), I’ve always had a soft spot for III era modding. I’ve been contemplating a return to it and creating YouTube tutorials about III era modding.

    That’s it for this year; see you in 2024!

    Some exciting projects to anticipate. I hope to successfully tackle at least one of them.

    I wish you all the best for 2024!

  • 2023 what a year!

    The holiday season has started, and we are nearing the end of the year. Which is always a good time to look back at the previous year!

    You might have noticed that I’ve been a bit more active since March 2023. That’s the moment I challenged myself into writing a post at least once a month. This also explains the random Pocket Ball post from November ;).

    2023 has been an interesting year, I’ve worked on many projects and became a proud dad once again.

    Let’s talk about some of the Highlights.

    Retro Trophies 64

    I’ve always been nostalgic for retro games, with the N64 era in particular. But whenever I replay the old games I miss a sense of achievement. This gave me the idea to implement a trophy system for the N64 Everdrive.

    I dived into the N64 homebrew scene and discovered the amazing libdragon SDK, which makes interacting with the Everdrive SD card (which contains save data) a breeze.

    Now all I had to do was figure out the save format of the games, luckily the N64 didn’t have much storage space which made the saves pretty easy to bi-sect and in some cases this was already done by others. I’ve shared my research on GitHub in the N64 save file repository.

    After a few weeks of research and coding I released the first version of Retro Trophies 64.

    OASE Engine

    I’ve mentioned OASE for the first time ever on my blog. OASE is my custom engine implementation of GTA: Vice City.

    I didn’t take enough time to work on this project this year. The changes I did make where minor; tweaked the start menu and added loading / saving of the original settings file.

    Model viewer

    I took a step back from the engine and decided to rewrite some of the model loading and rendering code from scratch. This gave me the opportunity to fix some of the design issues I made in the past which blocked a lot of innovation in OASE.

    Personal life

    I became a proud dad of a beautiful baby girl. She’s the reason I haven’t been able to work on my projects as much, but it’s all worth it. Waking up and seeing a big smile on her face when I get her out of bed is the best thing someone can imagine. <3