11

In recent years, I've learned that the Super Game Boy peripheral for the SNES did not run Game Boy games at the exact right speed; they were slightly faster.

Now I'm worrying that the same (or something similar) goes for the Game Boy Color playing Game Boy games.

Since I just paid a lot of money for a Game Boy Color (with a new screen and parts, but the original hardware inside), and I will be playing many Game Boy games on it as well as Game Boy Color games, I'd like to know if its simulation of Game Boy is really 100% perfect.

I had a GBC back in the day, and tried old GB games on it, but I can hardly use my foggy memory to determine how well they played. Frankly, I might not even be able to tell the difference in speed even with the Super Game Boy (it's been a while since I tried that). But I'm still interested in just how exact it simulated the original GB.

I don't think it "emulates" anything, but rather has the "GB on a chip". But I don't really know.

I've been unable to find any comments about this online prior to asking.

1
  • Some game boy games released after the release of the game boy color, such as Pokemon Gold and Silver, had the ability to detect that they were running on a GBC and take advantage of the improved hardware, while still running fine on an original GB. This could maybe be considered "imperfect simulation", but given that it's still the same game but in color, and behaving exactly as intended, I wouldn't really agree.
    – Hearth
    Jan 10 at 0:08

2 Answers 2

19

The Game Boy Color does not 'simulate' anything (*1), nor does it execute an emulation. It is simply an upward compatible and enhanced Game Boy design. The Game Boy Color is a Game Boy in all details, plus a colour screen added. Much like adding a 3dfx Voodoo card to a VGA equipped PC will add 3D capabilities, but not make any of the existing hardware incompatible.

All Game Boy games run unchanged without any issue - apart from using one of the 12 predefined colour palettes that is.


Now. Of course software running on an enhanced system, may show prior invisible side effects. That means software that was already non-compatible to begin with - like accessing reserved addresses, handle undefined/reserved register bits - may show 'glitches' or fail to run. The important part is that this software was already at fault with the original Gameboy, it was just not/less noticeable to the user.

With more than 1000 licensed GB games (plus many more unlicensed and home brew) the number of offending titles seems extraordinary low.


*1 - Nor could there be any 'perfect' one, as any enhancement of a design has to be visible to the system and thus in turn at the mercy of all software.

This is an important difference between an enhanced/upgraded system and an emulation. An emulation (on a more powerful system) may create a 1:1 environment, without an difference to the system it emulates, but the GBC is not such, but simply an enhanced Gameboy, compatible with it's predecessor as much as possible.

10
  • 11
    The GBC section of this page lists gameboy games that are broken on the gameboy color, so this isn't quite true: nerdlypleasures.blogspot.com/2018/03/…
    – namey
    Dec 23, 2021 at 20:55
  • 3
    @namey Let me see, there are more than 1000 known games for the GB and that site lists what? FIVE? Sounds like a pretty decent compatibility to me.And improved hardware will always offer ways to screw it, as it can only improve within the boundaries set by the base system.
    – Raffzahn
    Dec 23, 2021 at 21:02
  • @namey I read that entire page and it was very enlightening. But also disturbing. Now I will be so annoyed when playing through the Donkey Kong Land games on my brand new modded GBC...
    – Talan
    Dec 23, 2021 at 22:10
  • 4
    @Raffzahn “All Game Boy games run unchanged without any issue” but there are (at least; I haven't read the whole page) three games that crash completely.
    – wizzwizz4
    Dec 24, 2021 at 16:22
  • 5
    @Raffzahn But I'm not critiquing your assessment of it as “compatible”. The question is about perfect simulation; the correct answer should be “no”. (And the bit of your answer I quoted is wrong, because it says “all”. “Almost all” or something would be correct.)
    – wizzwizz4
    Dec 24, 2021 at 16:49
8

Some game systems are designed so that when running games for older systems, they will behave in a way which would be indistinguishable from the earlier systems even by code which was trying to identify the new machine. Such machines behave consistently not only with respect to documented features of the original, but also with regard to undocumented features, with the exception of some slight differences in signal timings and voltages where one most assembled machines for one kind of system would be at the high end of a specified tolerance range, while those for the other would be at the low end. The Atari 7800 is an example of such a system. Obviously a cartridge which had an extended connector would be able to tell it was running on a 7800 (by virtue of the fact that it wouldn't physically fit into an Atari 2600 cartridge port!), but otherwise the only way a cartridge would be able to tell which machine it was running on would be by comparing the voltages and timings on A12 with those on A11.

I don't think there is any way to configure a GBC to behave in such a fashion. All documented features of the GB work identically on the GBC, but some actions which would have no effect on the GB, but aren't explicitly documented as having no effect, might have unwanted effects if performed on a GBC. Most GB games would have no reason to include code that might perform any such actions, and thus would behave identically on both machines, but it would be possible that a developer wired in some extra hardware for a machine he was using for development which would e.g. cause writes to certain I/O address to be sent out a serial port. Code which wrote to that address would have had no effect on anything other than the developer's machine, but could have aided in debugging and might plausibly get left in the release version of a game. If a newer machine makes use of that address for some other purpose (e.g. configuring screen colors), however, such code could have unwanted effects that might make a game unplayable on a GBC.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.