PC Engine CPU

I’ve been working on a PC Engine emulator (aka TurboGrafx-16) after getting the bug to start looking at a new system, and I’ve found it to be pretty interesting hardware-wise. Originally released in 1987, its hardware is in a sort of awkward spot between the 3rd generation gaming conoles (NES, Sega Master System) and the 4th generation consoles (Genesis / Mega Drive, SNES), though it’s generally grouped with the latter due to featuring notably improved graphics over NES and SMS.

A Way to Do Emulator Audio Resampling

As with some/most of my previous posts, this is me writing something I wish I’d had when I started doing this: how can an emulator translate the audio samples generated by the emulated console audio hardware into something that the host computer’s audio device can play back, without compromising on audio quality?

Game Boy Advance Audio Interpolation

This post describes an audio enhancement that a Game Boy Advance emulator can implement to reduce audio aliasing and noise, at a fairly high level. To start with, here’s a comparison from Metroid: Zero Mission as an example of what this can do:

Emulator Bugs: Sega CD, Part 2

This is a continuation of the previous post on Sega CD issues. Where that post described two bugs caused by bad emulation of the CD-ROM hardware, this one describes several bugs that were completely unrelated to CD-ROM emulation. (This post was mostly finished months ago but I didn’t want to upload it before publishing a release tag that fixed one of the Snatcher bugs described below.

Emulator Bugs: Sega CD

Here are two bugs that I ran into while adding Sega CD support to my Genesis emulator, both related to emulating the Sega CD’s CD-ROM hardware. These are from a while ago but I think they’re still interesting enough to write about.

Emulator Bugs: Metal Max 2 Kai

This is a post on a bug that broke Metal Max 2 Kai for the Game Boy Advance, a port of the Super Famicom game Metal Max 2. The text box is definitely not supposed to do that! This was caused by slightly inaccurate timing.

Game Boy Advance Audio

This is a moderately low-level overview of the Game Boy Advance audio hardware, from the perspective of having recently emulated it. GBA audio has a reputation for being very low-quality, one that I personally think is deserved, but this is not entirely caused by the audio hardware.

Emulator Bugs: Fatal Rewind

This is a post on a bug that broke Fatal Rewind for the Sega Genesis, a port of the Amiga/Atari ST game The Killing Game Show. I’m not sure why some Amiga-to-Genesis ports changed the game’s title. Leander is another one, which got ported to Genesis under the title Galahad.

Emulator Bugs: Game Boy Color HDMA

Rather than covering a single game, this is a topic post that covers six different bugs in my implementation of the Game Boy Color’s HDMA feature (HBlank direct memory access). Not every GBC game uses this feature, but a decent number do, and a few games will break pretty badly if it’s not emulated fairly accurately (moreso in terms of behavior than timing).

Emulator Bugs: Zenki - Tenchi Meidou

This is maybe the start of a series of posts on games/software that exposed bugs in one of my emulators, depending on how many I find interesting enough to write about. In most cases I think the interesting part is usually the game behavior that triggered the bug rather than the bug itself.