Emulating Sonic Adventure – is this a good or a bad idea?

NOTES:

  1. This post discusses various Dreamcast emulators in the context of emulating Sonic Adventure on a Windows PC based on my personal experience using them for this purpose. You may have a different experience with these emulators and other games. This post was last updated in October 2019, and Dreamcast emulators may have improved since then.
  2. There is some controversy regarding unethical behavior of some developers of the flycast emulator and the RetroArch project in general (which was part of the reason the redream emulator went closed source), which you can look up elsewhere. I decided to leave the emulator drama out of this blog (we’re having enough fun with the base game as it is). I do recommend looking it up if you are interested in RetroArch and/or support its development.

As discussed on this blog, SADX Gamecube, SADX PC 2004 and the Steam/nextgen console versions of the game suffer from an alarming number of downgrades in almost every area imaginable, up to the point of completely misrepresenting the original Dreamcast version. In this situation one might wonder how to get the “definitive” version of Sonic Adventure. The most obvious option is playing the game on a real Dreamcast, which is perhaps the closest to the “definitive” way to play the game. However, using real hardware has its disadvantages:

  • Obviously you need to own a functional Dreamcast and a copy of the game to be able to play it. The Dreamcast is prone to hardware problems (laser degradation, PSU) that eventually make it unable to read discs or boot at all, and the more reliable replacements (such as the GDEMU or USB-GDROM) are expensive and sometimes difficult to obtain. Unless you are a big fan of the Dreamcast and play other games on it, or use it for other purposes such as homebrew, getting a Dreamcast just to play SA1 isn’t a good investment.
  • If you play the game on anything other than a CRT or something with the native resolution of 640×480, it’s going to look terrible. Don’t be misled by people claiming that the Dreamcast looks “amazingly clean” when upscaled to 1080p/4K* – this is not the case at all, and even with the most expensive upscalers picture clarity is nowhere near as good as playing the game in actual 1080p or 4K, which you can do using an emulator or a modded PC version.
    *When people say that, they usually compare the Dreamcast’s video output to the likes of Playstation 2, which is indeed a lot worse. The Dreamcast is capable of outputting a native 480p VGA signal, which is the “cleanest” looking signal for that generation of consoles. There is even a hardware mod to make the Dreamcast output a “pure” digital signal through HDMI. However, no matter what you do, the Dreamcast game’s internal resolution is still going to be 480p, and no amount of upscaling and cleaning up is going to make it look as good as native 1080p that you can get with an emulator or the PC version.
    Want to see how SA1 would approximately look on your monitor/TV? Take a 640×480 screenshot from the game and blow it up to your screen’s native resolution with bilinear scaling like this.
  • You’ll have to deal with all of the criticized aspects of the original version – 30 FPS, unskippable cutscenes, the old Chao system etc. Although there are 60 FPS codes for the Dreamcast version, real hardware can’t handle it most of the time and the game will go into slow motion (you may get better results on an overclocked console). When the game does run at 60 FPS, several of the problems described here will return because some aspects of the game’s logic aren’t optimized for 60 FPS. Unlike the PC version, fixing these on the Dreamcast is much more difficult for hackers/modders. It is generally much harder to make mods for the Dreamcast version, and I think it is safe to say we aren’t getting anything more involved than simplest model, level layout and texture edits (if at all) anytime soon.
  • If you want to play in widescreen, there are hacks for SA1 that work on real hardware. While these hacks provide some benefits (such as an increased field of view), what they ultimately do is squeeze a widescreen image into a 640×480 frame, which is then stretched by your display to the applicable widescreen size. Needless to say, combined with upscaling to 1080p/4K this degrades picture quality even further, but it still remains a viable solution to play games in widescreen on real hardware – not only for the Dreamcast, but for other consoles too, such as the Wii.

Using an emulator can mitigate some of the above issues. For example, you’ll be able to multiply the internal resolution of the Dreamcast and play the game at 1440p. Note: the point about widescreen still applies*.

*Using the “extra geom” widescreen hack in NullDC or reicast/flycast can also cause pop-in to be more visible near the sides of the screen, and fadeouts will fail to cover the entire screen. Other widescreen hacks can make menus and HUD look stretched. Some cutscenes will also show things that you aren’t supposed to see, such as two Chaoses in Sonic’s intro. Most widescreen-related cutscene issues except pop-in also occur on the PC version.

There are only two real advantages of using an emulator as opposed to a modded PC version:

  • Some emulators (reicast/flycast, redream) have Android builds, which means you can play SA1 on your phone or tablet, provided that it’s powerful enough to handle a Dreamcast emulator.
  • Playing the game on an emulator delivers the closest experience possible to a real Dreamcast version on PC (with enhancements), whereas SADXPC with mods may not always be accurate to the original Dreamcast game.

On the other hand, all emulators have issues with SA1 that make the experience sub-optimal.

  • The biggest problem is that you won’t be able to control the character properly unless you have a sensitive analog stick with no deadzone. Some controllers, such as the X360 one, work relatively well, though they are not exactly the same as the original Dreamcast controller. Even third-party controllers for the Dreamcast will cause issues in SA1 and SA2. This nuance is described in more detail on the Miscellaneous page. For an optimal experience you would have to buy an authentic Dreamcast controller and an adapter to use it on PC, in which case you might as well buy a real Dreamcast.
    If your controller behaves similar to this (jittering when pressing all the way up/down, “round” shape of diagonal limits), you should be able to use it with a Dreamcast emulator to play SA1:
    • Emulating the Dreamcast’s order-independent transparency is a major issue. Some games look acceptable without it or with less accurate transparency sorting methods, but in the case of SA1 you’re going to need the most accurate per-pixel sorting. You need at least 16 layers to be able to play the game without noticeable visual glitches, and for maximum accuracy (particularly for particles) you would want 32, ideally 64 or more.
      Per-pixel transparency sorting is extremely taxing on the GPU, so to be able to play the game at any decent resolution without glitches you’re going to need a powerful PC. For example, a mid-range gaming laptop from 2013-2014 is barely able to handle 1440p/32 layers on Demul, and the game is relatively comfortable to play only at 1280×960. Emulating OIT on Android is even more difficult due to limited performance of most phones and tablets, though still possible.
      In addition, not all emulators support order-independent transparency. As of August 2018, only Demul, redream and reicast/flycast have support for it. Here are some typical glitches you will see if you play the game on an emulator without OIT (some of these may look better or worse depending on the emulator, but the general issue remains the same):



      And here’s the kind of glitches you will see if the layer count for per-pixel sorting is not enough. This usually happens to particles, such as fire or smoke:

The above general issues are applicable to all Dreamcast emulators. There are also issues or nuances with each specific emulator. Let’s go through the most common emulators currently available for PC.

NullDC was an open-source emulator for Windows that was discontinued in 2013. Besides reicast/flycast that are based on it, NullDC is the only emulator that has a built-in widescreen hack (“extra geom”) that doesn’t rely on stretching the picture, which is why you can find videos demonstrating Sonic Adventure in “real” widescreen/1080p using footage from this emulator. It’s also one of the less demanding emulators, so you can run it on a weaker PC. However, the emulator itself has two issues that make it sub-optimal for SA1:
1) Lack of support for per-pixel order-independent transparency, which means the game will always have visual glitches.
2) Emulation inaccuracies causing issues with collision, particularly the issue with Sonic hopping in place and being unable to jump.
In 2013 NullDC was discontinued in favor of another emulator, reicast.

Demul is a closed-source emulator for Windows that has the best compatibility and emulation accuracy to date. It also has the best sound emulation. This is your best bet when trying to emulate SA1 as close as possible to the original Dreamcast. However, Demul’s system requirements are quite high, and there are several nuances that are worth mentioning:
1) Demul has two GPU plugins: the “new” plugin, which is recommended for maximum accuracy, and the “old” one, which, according to the author, is very hacky and has many issues. However, the “new” plugin does not allow to increase the Dreamcast’s internal resolution, and that isn’t going to change anytime soon. That makes the “new” plugin useless for those who want to play the game in anything other than 640×480, which provides no advantage over playing on original hardware. The “old” plugin allows to use a higher internal resolution and works quite well with SA1.
2) Demul needs to compile shaders to emulate specific features of the Dreamcast’s GPU, so it is prone to momentary stuttering whenever a shader is compiled*. This means the game will have noticeable hiccups several times a minute unless you’ve completed the game multiple times, exploring every corner and trying every move until all possible combinations of shaders are compiled and cached. The shaders to compile are different depending on your GPU, and changing settings (such as the layer count for transparency) will require a different set of shaders. If you play the game a lot on the same PC without changing graphical settings, eventually this will become less of an issue because Demul will build shader cache that it will reuse the next time a specific effect is used.
* This isn’t a problem with Demul specifically, many other emulators rely on shader compilation and have to deal with this problem somehow. Dolphin, for example, has a feature called “Ubershaders”, which is meant to address the stutter during shader compilation.

reicast is an open-source emulator that was originally targeting Android phones and tablets, but builds for Windows, Linux, iOS, RetroArch, openPANDORA and Ouya are also available. An independent fork called flycast is also available. As of October 2019, minor sound issues aside these two emulators are gradually becoming a viable alternative to Demul. My personal experience with these two emulators has improved considerably since the last time I tried reicast in 2018. While I would still put these two emulators below Demul (which has better sound emulation) and redream (which has nicer UI that is easier to use), reicast/flycast are a viable option to consider when emulating SA1 on PC.

redream is a closed-source emulator for Windows, Linux, Mac OS and (eventually) Android. Out of all Dreamcast emulators it’s the easiest to set up, and has the nicest GUI. Like Demul, the emulator was originally open-source, but in early 2018 it went closed source (see Note 2 at the top of this page). redream is a promising emulator, but there are a few concerns when it comes to using it in general and specifically for emulating SA1:
1) You need to register on the website before you can download the emulator.
2) The free version of the emulator only supports 1x internal resolution, which means you can’t play Dreamcast games in anything other than 640×480, like with Demul’s “new” GPU plugin. The paid version costs $5 and removes the limitation.
3) The same point about shader compilation on Demul applies to redream, although it happens less often (this may change in the future when more features are emulated properly).
4) As of October 2019, redream has issues with SA1 stemming from emulation inaccuracy:

  • Audio emulation is still not completely accurate. This manifests in some sound effects being too loud/quiet or missing DSP effects. You can check progress on SA1 sound emulation here.

With the above things taken into account I can’t recommend redream over Demul for emulating SA1, but it certainly has the potential to become the best Dreamcast emulator for this purpose. Like reicast/flycast, it’s updated almost daily, and has a nice community on Discord, where you can talk with the developer directly to receive support, report bugs and suggest new features.

To sum up, if you want to emulate SA1 comfortably on PC, you will need:

  • A modern PC with a powerful GPU
  • The latest version of Demul configured for 16-32, ideally 64+ transparent layers. Use the old GPU plugin if you want to play at higher resolutions.
  • A GDI rip of the game. Note: don’t use CDI rips with emulators – in most cases CDI rips have downsampled video and audio, and older SA1 rips had a glitch that made it difficult to get out of the sewers after obtaining the Light Speed Dash upgrade. GDI rips don’t have this problem.
  • A Dreamcast controller with a USB adapter for PC, or something like the X360 controller. Note: depending on the controller you may be unable to make Sonic run in a straight line, or use Amy’s spinning hammer attack.
  • Be ready for minor stuttering as the emulator builds shader cache.

Before you try the above, you might want to give the modded PC version a chance. Using the PC version has a lot of advantages:

  • System requirements are going to be much lower. Although the Lantern Engine (Dreamcast lighting) mod is quite taxing on the CPU, the game is still much less demanding than a Dreamcast emulator.
  • You can run the game at 60 FPS and use any resolution you want without performing any complicated hacks yourself. The Mod Loader allows the game to run in true widescreen without stretching.
  • While the PC version doesn’t have order-independent transparency (although that might change someday), the majority of transparency issues with Dreamcast assets have been fixed, up to the point that the game is visually indistinguishable from the Dreamcast version most of the time. There are still some things missing, but for the majority of people who aren’t obsessed with 100% accuracy this isn’t a problem.
  • You can run in a straight line using the keyboard or any controller, and with the input mod you don’t have to worry about your controller not being sensitive enough for SA1.
  • You can install HD textures for the majority of menus instead of having to deal with stretched 640×480 assets from the original game.
  • The debatably superior SA2B Chao system is still in the game, and you can keep using it with or without Dreamcast gardens.
  • Most importanly, you can customize the game in any way you want! The mods are highly configurable: you can toggle between SA1/SADX looks for any stage, and enable or disable various extras (such as the Casinopolis Cowgirl from the Japanese 1998 release of SA1). Of course, you can also make your own mods that change levels, lighting, models etc.

For a closing remark, I’d like to say that sometime in the future we may start recommending Dreamcast emulators more often for a “genuine” Sonic Adventure experience. The emulators are becoming increasingly easier to set up and use, their optimization (and overall performance increase with newer hardware) makes Dreamcast emulation feasible on lower-end PCs and phones/tablets, and emulation accuracy is improving too. Eventually we may also be able to play the Dreamcast version on an emulator with HD textures, 60 FPS+widescreen and other fixes and enhancements. With recent progress in Dreamcast emulation this is no longer unrealistic. Before this is achieved, however, I still recommend a modded PC version over an emulator at this point.