Shadow-MSP gets gta3sc support
I already mentioned it in my previous post, but I am tired of the Chip-8 on N64 project… I got distracted once again.
This time by an old favorite of mine; Shadow-MSP. The Intellij plugin that I build to support GTA 3D mission scripting.
A couple of years ago the original mission script sources got leaked (thanks Grovestreet games!) which helped understand the original SCM structure. TheLink2012 build an amazing toolchain and compiler called gta3sc. This can be used to compile the original sources to the main.scm as we know it.
There is a plugin for VSCode, but nothing for Intellij. Luckily I already had a plugin lying around for exactly this purpose, mission script support in Intellij. So I started adding support for the original GTA 3D scripting languages using gta3sc as the compiler.
Of course, we are not there yet; the plugin is very slow, and it’s missing some key features like compiling. Features I am working on as we speak. Expect more details soon!
Chip-8 64 Update
I’ve found this amazing Chip-8 database that contains a huge set of rom info; this info includes common button mappings, color mappings and supported platforms. I am planning to use this database to provide pre-build button configs for all original Chip-8 roms in the database.
If I am being honest, I am a little bit tired of this project. Chip-8 doesn’t interest me at all, the only part I enjoy is the emulation and N64 part. Still, I’m determined to push through and wrap something up this year.
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.