the snickerblog


01 Jun 2019

Long story short: sometimes doctors over-estimate how serious something is, and it turns out that the combination tumor/blood-clot from the last post is actually something far less life-threatening than what was initially believed. So it looks like I’ll be getting back to work on WashingtonDC sooner rather than later.


28 May 2019

Soooo, despite the optimistic tone of last week’s post, it looks like I’m going to be forced to take a hiatus from WashingtonDC, which means that I won’t be able to release in time for the 20th anniversary of 9/9/99. I found out over the weekend that I have a tumor growing in my leg, and a Deep Vein Thrombosis (DVT) that was formed because the tumor is compressing a blood vein. I don’t know if the tumor is cancerous or not yet, but even if it’s benign the DVT could still kill me by dislodging and causing a stroke. I’m in a lot of pain, and I’m not supposed to be sitting in office chairs so this means that for at least a month (and possibly longer) I will not be making any commits to WashingtonDC.


22 May 2019

Once again, the snickerblog is back after 6 months of inactivity. Luckily, WashingtonDC hasn’t been nearly as dead, as I’ve been making a commitment to regular commits to the github. I’m generally the sort of person who prefers getting work done over talking about how much work I’m doing. Maybe I should be doing more to evangelize WashingtonDC, but ultimately I’m still afraid of doing too much advertising too early; my worst nightmare would be for it to be one of those vaporware emulators that makes a big splash on /r/emulation but ultimately never accomplishes anything.

Dreamcast's 20th birthday

28 Nov 2018

Today’s the big anniversary: Dreamcast was released in Japan twenty years ago on November 27, 1998. For some reason this makes me feel like I’m having a mid-life crisis, which is weird because I’m only 8 years older than the Dreamcast. I feel much better about Genesis turning 30 (that also happened this year!) since I wasn’t even born until a couple years later. I guess there’s something unnervinf about being able to remember hearing about Dreamcast back when it was the future instead of the distant past.

snickerbockers/aica_audio branch

29 Sep 2018

I’ve mentioned before in previous snickerblog posts that the reason why so many games don’t even boot in WashingtonDC is that I’ve yet to implement the AICA audio hardware. I’m working on getting that done in the snickerbockers/aica_audio branch over on github. On that branch, I recently implemented sample timer interrupts which go to the ARM7, and that has unblocked at least three games. Jet Set Radio, Space Channel 5 and Skies of Arcadia are now in-game on the aica_audio branch. Additionally, the full SoulCalibur intro movie now plays. Previously, it would end prematurely after the camera goes over Mitsurugi’s shoulder during the first shot and then go straight to the title screen.


11 Sep 2018

Aerowings works now. This game necessitated the implementation of 32-bit ARGB paletted textures.

The House of the Dead 2

20 Aug 2018

I just discovered that HotD2 is in-game. As with Zombie Revenge and Crazy Taxi 2, this is a game which worked the first time I tried it, meaning that it has probably been working for a while and I just didn’t know it.

Evolution: The World of Sacred Device

10 Aug 2018

Evolution is now in-game. This is a JRPG featuring a cast of cute characters and randomly-generated dungeons. It has some really memorable music, too (not that you’d know playing it on WashingtonDC…I still haven’t implemented sound yet). Some of the enemies look like they belong in a PSX game, but the main party is pretty high-polygon and the lighting model this game uses looks amazing.

Crazy Taxi 2 and Zombie Revenge

02 Aug 2018

Looks like we got ourselves a twofer in today’s snickerblog update! Crazy Taxi 2 and Zombie Revenge are both games which I tried to run for the first time in the past week and both of them got in-game without needing any changes to WashingtonDC, so probably they’ve both been working for a while now and I just didn’t know it.


27 Jul 2018

Here’s SoulCalibur running on the snickerbockers/soulcalibur branch. This game does some strange things with the PowerVR2’s TAFIFO register, so to get it working I had to make some changes which might not be correct. One of those changes ended up breaking Crazy Taxi, so I need to do some more research and development before this can get merged into master.

Namco Museum

26 Jul 2018

Namco Museum has joined Crazy Taxi, Daytona USA, and Power Stone to become the fourth (known) game to get in-game in WashingtonDC. This game was previously unbootable because WashingtonDC was exposing a bug in the game itself. All of WashingtonDC’s IRQs happen instantly, and it seems that was causing this game to miss a PowerVR2 interrupt and hang forever.

WashingtonDC now running on Windows via cygwin

18 Jul 2018

This blog update is actually about a month and half late because I got this working way back in late May, but WashingtonDC is finally workin in Windows via Cygwin.

T-minus six months to liftoff!

09 May 2018

Wow, it’s already been five months since I wrote the post about regression testing! This site might not have changed much, but there’s been a lot going on with WashingtonDC in that time. When I wrote that last update, WashingtonDC was barely rendering the Dreamcast’s spiral-swirl bootup at a mere 8% speed (on my PC). Back then WashingtonDC only had a simple interpreter. Now it has a dynamic recompiler (sometimes called a dynarec) which crushes the spiral-swirl at an average speed of 140%. That’s faster than a real Dreamcast!

Regression Testing WashingtonDC

11 Dec 2017

One of the difficult things about starting my emulator was trying to test it without having anything to test against. During the early stages there wasn’t any software I could boot, and I didn’t even have any form of visual feedback from the emulator until I had been working on it for six months. By my count there are 236 opcodes in the SuperH-4 instructin set, and most of them get used during the boot process. If one of those opcodes is wrong, the emulated software might loop forever (best-case scenario), or it might call the wrong function, or it might write a garbage-value somewhere and corrupt its own state. In the latter two cases it’s very difficult to figure out what went wrong because the root-cause of a bug could be very far removed from its symptons. Worse still, without any form of feedback from the emulated software I might not even know that something did go wrong.

Bootstrapping WashingtonDC

10 Oct 2017

WashingtonDC is an in-development SEGA Dreamcast emulator I started working on almost a year ago as a pet project. It’s my first attempt at emulation development, and I’m quite pleased with the progress I’ve made so far. This is something I started last year as a pet project. It’s the most complicated program I’ve ever worked on, and a year ago I didn’t know if it was going to work out, or if it would turn out to be a waste of time.