Other Projects

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

(Dates may be slightly off)

2.8" Display Handheld Prototype

21 December 2024 2.8" Display Handheld Prototype

Combining the previous two boards into something very close to a finished device...

Mastodon thread

Bluesky thread

2.8" Display Prototype

20 December 2024 2.8" Display Prototype

A much more functional successor to the 3.5" board with working display, power button, microSD slot, sound and battery power.

Oh, and connectors that are the right way around.

(Using a different display because... reasons)

Mastodon thread

Bluesky thread

Gamepad Board

17 December 2024 Gamepad Board

Almost working version of my own gamepad board with a joystick, four buttons and an LED. Made a few mistakes with the LED and had to disconnect red to get anything to work.

Good enough to start working on bigger things though...

Mastodon thread

Bluesky thread

(Prototype Mastodon/Bluesky)

Interstate 75 Snow Demo... with Time

6 December 2024 Interstate 75 Snow Demo... with Time

Added Wi-Fi and tried to find something to use it for. Ended up using it to get the time and calculated local (-ish) sunrise/set times to display a day/night cycle.

Source

Mastodon thread

Bluesky thread

DERP Interstate75 Support

4 December 2024 DERP Interstate75 Support

Two things I can't escape from:

  • writing emulators
  • that snow demo

So why not do both at the same time?

Kinda slow and about as hacky as the other devices, but it works.

Source

Mastodon thread

Bluesky thread

More Handheld Prototypes

20 November 2024 More Handheld Prototypes

Got some new mini gamepads so had to try combining them with some displays!

May have went a little too far.

Mastodon thread

RP2350 PC Emulator

7 November 2024 RP2350 PC Emulator

Port of the PicoVision code, but a lot faster and with more sane memory management. Went straight for the last thing the old one had run: Windows 3.0.

(I need to upgrade the emulated hardware at some point...)

Source

Mastodon thread part 1, part 2

Bluesky thread part 1, part 2

3.5" Display Prototype

19 October 2024 3.5" Display Prototype

It's a bit hard to assemble, the power button doesn't work and the I2C connectors are all backwards but... the display works.

32blit-pico Launcher (again)

5 September 2024 32blit-pico Launcher (again)

Back to working on this as the new RP2350 soles the multiple games problem with its address translation feature. A lot closer to merging now...

Mastodon thread

Bluesky thread

GBA Cartridge Reader Case

9 August 2024 GBA Cartridge Reader Case

More case printing! It may have taken more than two years, but now it looks like a finished thing.

Printables

Related thread

Cybiko (Xtreme) Emulator

22 July 2024 Cybiko (Xtreme) Emulator

Everyone's favourite handheld computer from the early 2000s! Okay, not really but I have a pile of these things.

Technically a much older project (predates DaftBoy) but I upgraded it with features from my newer emulators, allowing silly things like connecting them together and to a PC.

Source (including other tools)

DERP PicoVision Support

17 July 2024 DERP PicoVision Support

More attempts at this, now runs some things. Slowly.

Source

RP2040 GBA Cartridge

13 June 2024 RP2040 GBA Cartridge

A fully custom board based on the prototype that fits in a cartridge. Makes a few sacrifices to squeeze in a microSD slot.

Related thread

Source

PicoVision Case

5 June 2024 PicoVision Case

Another case, but a bit more fancy with my new multi-material powers.

(Earlier version made in May for my pre-release device)

Printables

Keyboard with Pi 5

3 March 2024 Keyboard with Pi 5

It's a keyboard. It has a Raspberry Pi 5 on it. (Also usable without one.)

All the switches are the wrong way up for the backlight to work, whoops.

PicoSystem Case

4 February 2024 PicoSystem Case

Got a new printer, started sorting out things that could do with a case.

(Making my modified PicoSystem significantly less stabby)

Printables

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.

Source

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.