Sega Master System/Hardware comparison

From Sega Retro

"8/16-bit" hybrid?

The Master System is most definitely not an "8/16-bit hybrid" system:

  • The Z80 has 16-bit arithmetic instructions, but its ALU is 4-bit, and its registers are 8-bit (though register pairs can be used to simulate 16-bit). It's universally considered an 8-bit CPU because the primary registers are 8 bits wide.
  • The Master System VDP does not have a 16-bit data bus, at least to the CPU. The VRAM might be wired up for 16-bit, but that isn't relevant here.
  • NEC's 780C is a second-sourced Z80. The use of 780C compared to Z80 is irrelevant here. Some systems might have a Z80 from a different supplier. (For comparison, the Ricoh 2A03 does have additional hardware that isn't present in the MOS 6502, e.g. sound generation.)
1. The Z80 does in fact support 16-bit registers, as you can see here. However, the Z80 has an 8-bit data bus. Which makes it mostly an 8-bit CPU with 16-bit features. But fair point about the 4-bit ALU. I've now added that to the article.
2. The Master System's VDP DOES have a 16-bit data bus, as a matter of fact. As you can see in the schematics here and here, its VRAM bus is entirely 16-bit, NOT 8-bit. And the CPU-VDP connection is irrelevant. That's only a bridge between the CPU and the VDP (allowing them to communicate with each other), not an actual memory data bus in itself. The CPU and VDP each have their own separate memory data buses, the CPU with its own 8-bit RAM bus and the VDP with its own 16-bit VRAM bus. The way "bits" are defined for most CPUs and GPUs is the memory data bus width, as that tells us how many bits a processor can access in a single clock cycle. The Master System's VDP can access 16-bit data in a single clock cycle, which makes it a 16-bit processor.
3. Fair enough. I've explained in the article that it's a second-sourced Z80, and have changed the 780C references to Z80.
4. The Master System is no less of a "16-bit" system than the PC-Engine/TurboGrafx-16. They both have 8-bit CPUs and 16-bit GPUs. The Master System and PC-Engine both have GPUs with 16-bit VRAM buses. And like the Master System, the PC Engine also has an 8-bit CPU-GPU connector bridge. If anything, the PC-Engine is even less of a 16-bit system than the Master System, since the PC-Engine's CPU has no 16-bit registers at all. Yet the PC-Engine/TurboGrafx-16 is widely accepted as a hybrid 8/16-bit system, due to its 16-bit GPU data bus. By that same reasoning, the Master System is also a hybrid 8/16-bit system.
Turbo (talk) 19:41, 1 May 2019 (EDT)
On second thoughts, I've changed the wording to "hybrid 8/16-bit memory architecture", which is more specific. As simply stating "hybrid 8/16-bit system" is open to interpretation, whereas stating "hybrid 8/16-bit memory architecture" is more concise and unambiguous. Turbo (talk) 20:25, 1 May 2019 (EDT)

While we're here

Did you ever wonder why I made a template with a load of red links? It wasn't so they could all point to the same page.

The idea was that each system would be compared on a different page. Because you can't have a massive comparison table of everything and still hope to fit it on screen. Case in point - even on a 1080p monitor it currently doesn't fit on-screen. And you've only got three systems up there.

To avoid typing the same thing over and over again, the idea would be to store hardware specifications in a database table and recall them where necessary. As far as Master System numbers go, this would be the only page that would be changed. Something similar would be written for the NES, and wiki magic would be able to compare like-for-like. Although it's still nice to have the prose bits.

e.g. {{HardwareCompare|CPU|SMS|NES}} might generate

CPU Zilog Z80 Ricoh 2A03

The code behind this wouldn't be difficult - the problem I have is data entry, because I don't want to become an expert in low-level hardware specifications in addition to the 348902489032 Sega-related topics I'm also an "expert" in, particularly when there are a bazillion people who actually know what they're talking about.

-Black Squirrel (talk) 06:00, 1 May 2019 (EDT)

That sounds like a good idea. But how might we go about implementing this? I wouldn't mind helping out with the data entry side of things. Turbo (talk) 19:51, 1 May 2019 (EDT)
I've changed the width to be variable, rather than fixed-width. This should be a solution to the width issue for now. Although your database solution sounds better. Turbo (talk) 20:30, 1 May 2019 (EDT)