Other Projects

Other intersting projects I've worked on. Usually not games.

(Dates may be slightly off)

USB Cable Tester

13 November 2023 USB Cable Tester

Perhaps slightly over-complicated USB cable test thing. Because I have too many cables.

... and then I bought more to test it.

Built a significantly less functional board a few months earlier.

PicoVision 3D Demo

7 November 2023 PicoVision 3D Demo

Tile-based renderer rendering a model of a PicoVision on a PicoVision. (Maybe the model is running the same code, who knows?)

Uses both cores and ALL the interpolators.

Definitely not motivated by any kind of demo competition or anything.

More DERP Board support

6 September 2023 More DERP Board support

Big pile of cleanups in an attempt to add PicoVision support (had some fun problems to debug). Didn't get that far but it can emulate a Tufty slightly better than before.

Source

32Blit PicoVision Port

21 July 2023 32Blit PicoVision Port

Because I have to port it to the shiny new device with video output!

Also resulted in a bunch of improvements to the experimental launcher code due to finally having something that can do hires output and has an SD card slot. Still sitting on a branch though...

Thumb Test

11 July 2023 Thumb Test

Needed something to test the new compilers. Runs on GBA and PicoSystem and fails in some way on most emulators.

Source

DaftBoy(Advance) JIT... Returns?

11 July 2023 DaftBoy(Advance) JIT... Returns?

Mashed the two recompilers together into something slightly more generic, gaining x86 support for DaftBoyAdvance... but losing the Thumb->Thumb translator. Also probably broke Windows support (mumble calling conventions mumble).

Somehow ended up generating smaller code and getting faster in the process.

Experimentally ported to DERP, which has a lot more of a performance impact.

More DERP Features

24 May 2023 More DERP Features

In a burst of activity this very serious emulator gained:

  • USB device support using a USBIP server
  • slightly nicer logging
  • a built-in GDB server
  • more GPIO support and PWM
  • PicoSystem sound output (beep boop)

The USB support is good enough to handle the UF2 loader, which is much less convenient than running DERP_SDL file.uf2 but uh, why not?

Source

Grey Blob People Game Part 2

4 April 2023 Grey Blob People Game Part 2

Some attempt to make this into an actual game. Includes a clock, bars that go down and "using" objects to make them go up again.

Also a "build" mode and less rainbows.

32blit-pico Launcher

10 March 2023 32blit-pico Launcher

Porting a big pile of the 32blit launcher/API stuff to the "pico" port. Allows fun features like multiple games (at this point just the launcher + one game) and running the same game build on different devices.

Sitting on a branch somewhere until I get around to cleaning up and merging...

Not a 32Blit Emulator

17 February 2023 Not a 32Blit Emulator

Okay, so maybe it is... but it's really high-level as emulating all the peripherals would be too much work. Fortunately I just needed to translate the firmware API and almost everything works at reasonable speed.

Source

Suspiciously Shaped PCB

16 January 2023 Suspiciously Shaped PCB

Definitely not the same shape as a handheld game console that I've written an emulator for.

Interstate 75 Snow Demo... but Bigger

17 December 2022 Interstate 75 Snow Demo... but Bigger

Last years demo, but with 4x the panels! (and some 3D-printed brackets)

Source

RP2040/PicoSystem Emulator

30 November 2022 RP2040/PicoSystem Emulator

Because I didn't already have enough emulators, I decided to remove half of DaftBoyAdvance's CPU core then hack on extra bits until I had created:

Daft's Emulator for RP2040.

Which is a sensible name and not a joke at all because I definitely expected it to go somewhere. At this point there are just enough of the peripherals stubbed out to run PicoSystem games (without any sound).

Source

DaftBoyAdvance JIT

6 October 2022 DaftBoyAdvance JIT

Learning my lesson from the previous one I... did the same thing again?

This one only does Thumb -> Thumb. So no Arm mode and it only runs on the same arch as it's emulating... and isn't much faster.

Uh...

32Blit... With WiFi

2 September 2022 32Blit... With WiFi

32blit with a Pico W connected via I2C that can download games directly from BlitHub.

I should maybe dig up the code for this... Probably got the firmware changes in somewhere though.

DaftBoy JIT

11 August 2022 DaftBoy JIT

A Game Boy emulator with a JIT recompiler is a silly idea and I didn't...

Okay I did. Has x86(_64) and Thumb targets, passes all the same tests and is ~1.2x-2x faster... which is completely unnecessary as it could already do 80-100x speed.

I guess if nothing else, I learned something?

GBA Cartridge Reader

21 June 2022 GBA Cartridge Reader

PGA2040-based GBA Cartridge reader that presents the cartridge as a USB mass storage device with two files. (Goes well with having an emulator lying around...)

Built a giant mess of wires a month earlier that sort-of worked sometimes.

Source (including board)

ZX Spectrum Emulator

2 May 2022 ZX Spectrum Emulator

Found a mostly-working +2 and the Game Boy's CPU is similar so... this happened.

Doesn't look like I released anything though...

PicoSystem Gamepad

18 February 2022 PicoSystem Gamepad

Use a PicoSystem as a basic gamepad! (Because real gamepads are a massive pain to get working...)

Not-so-exciting source

(Can't really get a good picture for this so imagine the screen is off...)

Isometric The Sims-like Game

31 January 2022 Isometric The Sims-like Game

Mostly just a demo of a very colourful house at this point. Added some furniture a bit later.

Interstate 75 Snow Demo

18 December 2021 Interstate 75 Snow Demo

A little demo of falling snow, because someone bought an Interstate 75 + a panel and I couldn't just leave it lying around doing nothing!

Also made me realize that I have Twitter notifications turned on, as people apparently liked that one.

GBA (not-)HDMI Adapter

11 November 2021 GBA (not-)HDMI Adapter

Okay, 99% of the code here is PicoDVI, which is very cool but not mine...

Connecting a GBA to a big screen with a < £4 microcontroller board (and a lot of jumper jerky) still seems worth mentioning here though.

Tweeted a few more pictures of this.

Also built a Tiny2040-based link cable (multiplayer-mode PIO hacks). Which was very useful for booting test ROMs for emulator stuff...

DaftBoyAdvance... again

22 October 2021 DaftBoyAdvance... again

Ended up back here after just over a year (and a lot of lessons learned from improving the non-advance version...)

After a few more months of hacking it now actually works (most of the time) for the games I own.

Somehow still runs on in the 32blit (with a little hacking) and isn't entirely unusable... (That wasn't a goal while working this emulator as I thought it was unreasonable, but apparently not?)

DaftBoyPico

22 October 2021 DaftBoyPico

DaftBoy32 ported to run on the PicoSystem (with everything from the 32Blit version... except the performance). Also included a huge amount of accuracy and performance fixes.

(A more hacky partial PicoSystem port existed in July, and an even hackier "pico" port existed in April.)

RP2040/Pico 32Blit SDK Port

20 August 2021 RP2040/Pico 32Blit SDK Port

Existed as a bunch of hacks for most of the year (running on a Pico Explorer Base, then a VGA Demo Board). Became a lot more useful with the PicoSystem and ended up getting merged. (It's almost like the SDL Emscripten port again!)

(The date is when it was merged)

I still have a bunch of patches for using the SDK on pretty-much everything that has a screen of some kind....

Super Blit Kart

28 February 2021 Super Blit Kart

"Mode7" style kart racing game. Still a bit unfinished (content problems as usual).

Was ported to the PicoSystem later, surprisingly.

Source

FourBlock Descent

9 February 2021 FourBlock Descent

Another 32blit port of some old JS stuff, this time my unfinished Tetris clone. (The original code was called "ketris", if you recognise that you win a prize.)

Was ported to the PicoSystem later.

Source

32Blit... uh "word game"

19 September 2020 32Blit... uh "word game"

A 32blit remake of the best word game on this site. Has most of the game, though is missing anything related to leaderboards.

Source is here. (Unlike the original JS/PHP version which is still super-secret... or something)

DaftBoyAdvance?

11 August 2020 DaftBoyAdvance?

An attempt to write a GBA emulator based on DaftBoy. Got as far as running a game in about a month... with no sound and extremely basic display handling (no rotating/scaling anything).

Also really slow... and inaccurate.

DaftBoy32

20 March 2020 DaftBoy32

A 32Blit Game Boy Emulator.

Needed something to do after DOOM, decided to build an emulator. Got to the point of running Tetris in about a week. And then significantly longer fixing bugs...

Not the most accurate emulator ever, but does run the few ROMs I had around to test with.

In July/August it got (partial) Game Boy Color support (and a pile of fixes).

The source was released in Jan 2021... with even more fixes!

32Blit DOOM Port

22 February 2020 32Blit DOOM Port

It didn't run DOOM... It does now!

I think this is my first port of anything. It involved a lot of memory trimming and allocation adjustments. Also resulted in more API improvements, including adding a palleted scren mode to the API.

Get the source here.

(Image is from an early video, it does fill the screen now.)

32Blit MJPEG Video Player

20 February 2020 32Blit MJPEG Video Player

The logical next step after audio, right?

This was made easier by the fact that the hardware has a JPEG decoder, just had to add an API for it...

Get the source here.

(Yes, the screenshot is from the music player. The UI is mostly the same and if a video was playing it would just be a picture of a video...)

32Blit Music Player

12 February 2020 32Blit Music Player

MP3/Ogg Vorbis player for the 32Blit console.

Wanted to see if it was practical to stream audio into the recently added audio buffer support. After finding a small MP3 decoder this grew into a full music player app.

Also resulted in some API improvements and bugfixes for the 32Blit code.

Get the source here.

SDL2 Emscripten Port

18 December 2014 SDL2 Emscripten Port

This started as something I was working on for myself, but quickly ended up with more contributors.

The date above is when it was merged upstream, which was slighly unexpected as this was one of my first open-source projects.

You can see the original work here and current work here.