Update: July 2024
What a year 2024 has been, I can't believe we have made it to July already. Whether it has been moving home, working on cade or iOS development it has been a really busy time.
Moving and holidays
I will begin my update with my real life updates. The year began with an impromptu house move. While we weren't surprised when we had to move it doesn't make the move any left stressful. However after a crazy six weeks of looking at new properties and packing we finally found ourselves in a new place. While I won't go into details we have a lovely view of the River Derwent in Hobart and I don't think that I have ever seen so much wildlife 🦆🪿.
We also managed to get away for a two week cruise earlier this year. It is the first true holiday that we have managed to get away for in years and it was a fantastic reset to get into the next half of the year.
Now while I had a lot of time away from the computer this year that doesn't mean that progress hasn't happened. Let's get into it.
Updates to my website
You may have already noticed the change but I have finally moved over to my new domain glenn.digital. If you have been bookmarking my old posts these should still work but if not please reach out to me. X or Threads are your best bets. In other changes I have moved the site over to using a headless CMS (Ghost in this case). This was an interesting challenge but easier then I would guessed. I will do a write up on this one in more detail soon.
Holiday Hack results
My last post was all about my first ever holiday hack. This was a lot of fun and if you would like some background on the hack then please go take a look.
Well the results are in. Before I reveal these though let me re-cap the goals.
I was trying to use Swift to build a Gameboy Platform library as a PoC, after playing around with Swift. The goals were:
- The library should match or succeed in passing the current tests being past by the rust version of the library
- The library should be able to output to a MacOS application either via software rendering or GPU rendering
- The Library should output sound
So how did I do well pretty good actually. I was able to complete the first two goals within the time frame.
The tests went green
So when I began the hack the initial implementation for the Gameboy library was in Rust. As I was quite early on in building it I was only pass a few of the Blargg CPU instruction tests. (These are usually some of the firsts tests to pass when working on a Gameboy emulator) with the break down below
Blargg Test | Passed |
---|---|
01-special | ✅ |
02-interrupts | ❌ |
03-op sp,hl | 🏗️ |
04-op r,imm | ✅ |
05-op rp | ✅ |
06-ld r,r | ✅ |
07-jr,jp,call,ret,rst | ❌ |
08-misc instrs | ❌ |
09-op r,r | ✅ |
10-bit ops | ✅ |
11-op a,(hl) | ✅ |
Key
❌ = Fatal Error
🏗️ = Runs but test(s) fail
✅ = All tests pass
Now by the end of the tests this is what we had in the Swift version
Blargg Test | Passed |
---|---|
01-special | ✅ |
02-interrupts | ✅ |
03-op sp,hl | ✅ |
04-op r,imm | ✅ |
05-op rp | ✅ |
06-ld r,r | ✅ |
07-jr,jp,call,ret,rst | ✅ |
08-misc instrs | ✅ |
09-op r,r | ✅ |
10-bit ops | ✅ |
11-op a,(hl) | ✅ |
Green across the board... party!!!
Number 5 is alive
If you don't know that reference well then I am sorry you missed out on a great era to be in. Back to goal two. To get outputs of the gameboy. We this one was also passed with great success. As you can see below.
While it still runs slow we can see that the bootrom and Tetris are loading. Success!!
iOS Development
So what I took away from the Holiday Hack is that I really enjoyed my time writing swift code. With this in mind I pivoted some of my development time to iOS development this year and so I began working on my first iOS application.
This work has been enjoyable and I can't wait to discuss more on this one. You won't have to take long and I will be discussing technical pieces over on my threads account
What next
So that is what I have been working on, so what about next well I have two goals for the end of 2024. One is for the Retro/Cade projects and the other is for this iOS application.
Retro and Cade
To begin with let's discuss the Retro and Cade projects. These are still being worked on in the background and my plan is to have alpha builds out before the end of year for RetroDMG, RetroC8 and Cade. I will do a separate writeup on these in the future.
My first iOS application
I also will be releasing my first iOS application to the App Store before the end of the year. I am doing this to get a feel for the process of delivering from idea to download. Again I will doing a separate post on this and how I found the deployment process. I am hoping it will be interesting to some of you.
If you have made it this far then I applaud you and hope you keep an eye on my works. If you would like to reach you can find me on my socials so reach out. 😄