Hi Neil!
Hey Ben! Welcome back, it's great to see you here again!
This is incredible, I used to have Demon Driver growing up and loved it! Can you imagine if back in the day it played/looked as good as you have made this, it would be every kid's dream! You have done an amazing job getting this working.
Thanks so much. That's why I do these projects. I like to imagine what the toy & game designers could have achieved back then if they had access to the kind of technology we have today. And yeah, to create the toys I wanted to see back then too!
I've been reading your previous posts and I'm sorry about all the hoops you've had to jump through to get to where you are.
No appologies necessary. You don't owe me or anyone else on here anything. We're all lucky to be able to play this game at all without an expensive original cab or FPGA remake! (OK, there are the Sega Ages versions but they have their own issues!) I went into this with eyes open knowing full well that a native version could likely become available at any time and invalidate all that work, and I still hope that happens!
I'm thinking of doing a build using the latest version of Raspbian desktop, would that run on all issues of Pi ? I guess people wanting to run it would have to update their Pi OS...
That would be amazing! Yeah, you'd probably want to target the latest Pi OS 'Bullseye' They've just moved over to the open MESA drivers for Linux native DRM/KMS GL rendering instead of the legacy proprietary VideoCore stuff they had since day one. I needed to build box86/box64 to have its wrapped GL libs use DRM/KMS to get any decent performance from the game.
You'll also probably want to make both 32-bit and 64-bit versions. Only Pis made since the 3B have 64-bit SOCs but as my video shows it can run quite reasonably on a Pi 2B even under x86 user space emulation! Unfortunately - unlike Windows - a 32-bit executable will not run directly on a 64-bit OS. There is Debian multi-arch of course, but that's going to be a pain for users so better to just build both versions!
At the time when I did my last Unix builds, I wasn't sure what to do about the shared memory stuff (Allowing you to read score board / time information as you play the game). I'm sure I could do something about that now for unix and also have it also output speedo information.
I'm guessing you used the native Win32 APIs (e.g.
MapViewOfFile etc) for the Arduino work on the Windows version? Linux has similar capabilities, e.g.
POSIX shared memory mapping If you're looking for a cross platform approach, then maybe
boost::interprocess could help (assuming you're working in C++ with Allegro?)
Anyways, going off on a bit of a tangent now, just wanted to say absolutely superb work!
PS. I've seen your other youtube projects too, your Tomy Turbo Dashboard playing OutRun with all its dash console display, excellent stuff!
Thanks again for your kind comments and also for making this amazing remake in the first place. I'd be happy to help/contribute in any way I can to a native Pi version. If you don't want to open source the game (and I can understand why you might not want to) I would respect any NDA you wanted to apply to source sharing if you wanted to collaborate. Feel free to reach out. There's an email address on the
'About' page on my Youtube channel, or DM me on
Instagram if you use that?