Current Projects - March 26, 2023
Added 2023-03-27 05:08:35 +0000 UTCA little over a week ago, I shared some photos of a custom PC case I built, and it's been great to see everyone's reactions. I've been using it for a while now and the experience has been... interesting. I'm not sure how much to spoil just yet (it should be my next video) but suffice it to say it's definitely been a bit of a rollercoaster...
---
In the mean time, I want to talk about other things I've been working on that I hope will turn into videos very soon. I tend to naturally bounce around a few projects at once so you may have to get used to hearing about one project sometimes and another project at other times. Either way, you can treat this as an introduction to the main things I've got going on right now.
Olive
Something I've mentioned on and off on my channel is that for the last few years I've been working on an open source video editor called Olive. Something that's solid enough to not just produce my videos in, but hopefully also bigger stuff too. I'm a big believer in open source - while a lot of people see it as just a way to get software for free, I think it's really important for users to have options where they can have full control over the software they use.
As someone who has used proprietary video editing software for over a decade now, it's been a frequent frustration whenever a bug, crash, or memory leak gets introduced, and all you can do is hope and pray that it'll get fixed in the next release. While open source is certainly not immune to these things, at least then there's a chance you could dive into the code and find a way to fix it yourself. Similarly, if there's a niche feature or automated action that helps your workflow, it's significantly easier to add this to an open source program than a closed source program (assuming it's even possible at all).
Olive has been a longterm project that started when I still had less than 1,000 subscribers on YouTube, and is something I've essentially always been working on between videos. It even has its own separate Patreon from before I even set up this one (and despite the fact it says "team", it's been almost entirely me as the driving force behind it the whole time). Some people ask why I don't talk about it more on my channel, and for the most part I just haven't wanted it to get swamped with attention while it's still in a "semi-broken" development state.
But I've started mentioning it a little more to smaller audiences like my streams and this Patreon, largely because it's actually getting pretty close to usable now. It's still not quite there yet, but a few recent videos on my main channel (namely the Suspended story, the 3 PS3s video, and before that the Japanese LEGO Island and Windows 98 on a modern laptop videos) have been edited entirely in Olive. My hope is that, as soon as I've ironed out the last of the major usability/stability issues, I'll be editing all of my videos with it.
When I'm not working on stuff specifically for my YouTube channel, this is usually what I'm working on (which in a roundabout way, actually is something for my YouTube channel). But some time this year, once I'm making videos regularly with it, I'm hoping to make a video actually about Olive, going over the whole journey of making something like this completely from scratch.
Mac OS Preservation Project
Another thing I've been working on recently is something I call my "Mac OS preservation project".
Usually when we talk about software preservation, we're talking about video game consoles, and for good reason - old games are usually something that we have the most memories attached to and therefore mean the most to us.
However I have a big soft spot for early versions of Mac OS X - specifically Tiger through Snow Leopard - and it's not just me. To this day, Snow Leopard is still considered one of, if not the, best single OS release in Apple's history, and it was the last one capable of running old PowerPC apps through emulation.
That being said, there are no real ways to run it properly without original hardware. While it is possible to get it running in most of the major VM apps, there is no way to get 3D hardware accelerated graphics like you can with Windows and Linux guests. Apple, as you might expect, have staunchly prevented any kind of VM graphics driver being written for Mac OS, lest it cut into any of their valuable hardware sales.
While trying to write a virtual machine GPU driver and reverse engineer the Mac OS APIs necessary to drive it would be extremely cool, it's also probably way more effort than it's worth here. But something that's relatively easy to do is pass a hardware GPU through to a virtual machine to get real near-native performance, and those early versions of OS X support GPUs that are as cheap as $5 today. While this does still rely on hardware a little bit, compared to only being able to run it on old Macs, this opens it up much wider so that anyone could get it working on just about any PC with cheap, plentiful, off-the-shelf parts. These VMs are not only convenient, but also tend to run much faster than the original hardware since modern CPUs/SSDs/RAM are an order of magnitude faster than what was available back then.
Much of the information about this era of Mac OS has been lost to time, so I'm taking it upon myself to collect as much of it as I can, and then produce a series of guides and (where necessary) software hacks that reliably get Mac OS running with readily available, cheap GPUs (either natively or passed through to a VM) so that essentially anyone could do it.
Burnout 3 PC Port
I've been wanting a Burnout 3 PC port for years. I know it can be emulated relatively well in PCSX2, but at the end of the day nothing beats a good PC port.
Unofficial PC ports have gained a lot of notoriety in recent years, largely thanks to successful community projects such as the Super Mario 64 decompilation. Decomps are definitely the best solution to portability, however the downside is they're extremely time consuming, often taking years to produce even with a team of dedicated people. As such, I've never been able to find enough time to contibute to one myself.
But that's okay because there are actually some pretty viable alternatives. While B3 was never officially released on PC, what it was released on was the Xbox, a console famously similar to a Wintel PC of the day. Obviously there are significant differences between them, but they share enough similarities (particularly the x86 CPU), that it's theoretically possible to simply "inject" the Xbox system calls with equivalent Windows system calls, therefore effectively porting the game to Windows. In fact, this is the main principle (albeit an overly simplified explanation of it) behind the emulator known as Cxbx; technically it does very little "emulation" at all, instead mostly doing runtime code injection like a standard PC game modding tool.
Unfortunately, due to various quirks regarding the Xbox and its hardware (particularly its GPU), Cxbx's approach suffers from some fairly severe compatibility issues. Some games work unbelievably well, while others don't work at all. B3 is mostly in the latter case - the menus work almost flawlessly, but the game itself doesn't render at all, making it virtually unplayable.
That being said, it's a good start, and in all honesty, Cxbx's issues mostly arise because its goal is to emulate the entire Xbox library. This requires their injections and patches to be as automatic and global as possible, limiting what they can do to get things working on a per-game basis. But if we focus on one game only, we can do much more game-specific stuff that I feel is bound to eventually make it work. After all, with that much flexibility we could even rewrite the game's own rendering code if we have to!
There are a lot of resources out there that may help too. While for legal reasons I can't incorporate any of the code from these, old leaks of the XDK, RenderWare, and even a debug build of B3 itself have already proven to be tremendously helpful in figuring out exactly why the game isn't rendering and what to do about it. There's also librw, an open source reimplementation of RenderWare from the re3 project, which could also come in handy.
So really it feels like it's mostly a matter of solving a few problems and connecting all of these things up, and if I can get it to work, then technically that's all it'll take to get a real PC port! After which, we can start adding all the niceties we'd expect from a port done right (HD resolutions, XInput support, etc. etc.)
---
So these are the main things I'm working on right now - if you read it all, thanks, and I hope you're as excited as I am! However, since they're all somewhat longform projects, it may take some time for each of them to manifest into videos. As always, your support is what's going to make a lot of this possible.
Also as I've mentioned, I think I'll start streaming a lot of the progress of each of these projects. While I've been streaming for a little while now, I've mostly seen it as a form of "entertainment"; mostly chatting, joking, and playing games together. However, since these projects are in various states of development, and are probably weeks to months away from completion, it could be a useful way to keep people involved and engaged rather than simply disappearing for months at a time. While I worry it might get a little boring, so far people haven't seemed to mind when I do "work" streams, so I may start doing those more in the near future.
Anyways, thanks again for reading and I can't wait to get more done!
Comments
I LOVE B3 on the PS2
Patrick and Rachel
2025-02-02 02:28:23 +0000 UTC@MattKC when is your next stream?
TTGJeremy
2024-04-12 15:08:58 +0000 UTC