According to Wikipedia, the ColecoVision and the Sega SG-1000 were almost identical. I'm curious about that "almost" part.

For example, they both used the same video generator (TMS9918/28). They both used the same audio generator (SN76489). They both used a Z80 running at 3.58MHz. And they both had 1K of system RAM.

One difference I am aware of is that the SG-1000 only had 2K (or was it 4K?) of video RAM whereas the ColecoVision had the maximum the TMS9918 allowed (16K).

What other differences were there? And, other than pin configuration, what prevents me from running SG-1000 games on a ColecoVision?

  • Hmm, the Wiki entry also says 2 KiB, which puzzles me a bit. AFAIR the SG-1000 had two RAM chips for the 9918, organized as x4. But 2Ki by 4 sounds strange. Usually RAM chips come in 4 or 16 KiBit. an 8KiBit is something I do not remember at all. But even the Japanese Wiki says so. – Raffzahn Sep 5 '17 at 20:31
  • @Raffzahn I wondered that myself. In my research, the TMS usually had 16K but 4K wasn't uncommon. I've never seen 2K other than the Wikipedia article. Perhaps the Japanese wiki was wrong and it was copied over to Wikipedia (English). – cbmeeks Sep 5 '17 at 20:36
  • In this case it got also copied into the German entry :( Now, the common use of 4 or 16 k population is due the availibility of 4 or 16 k DRAM chips. The 9918 itself works with any RAM that follows the address multiplex protocoll like the 4116. Even static RAMs :)) Also, 2 KiB is extreme low, as it wouldn't allow full usage of mode 2 (0,75KiB Screen + 3x2KiB bitmap data + up to 2 KiB spritedata). Heck, not even mode 0 or 1 could be fully utilized. 4 KiB is the minimum to use them. – Raffzahn Sep 5 '17 at 20:50

They have different memory and IO maps.

The ColecoVision has a boot ROM at address 0000h and an inserted cartridge appears at 8000h. The Sega has no boot ROM so just maps the inserted cartridge at 0000h. RAM is at C000h on the Sega, 6000h on the Coleco. The Coleco's TMS is addressable between ports 40h and 7fh (including mirroring) but the Sega's is at BE and BF.

So code that expected to run on one machine but was somehow inserted into the other would be running from a different location, breaking any absolute jumps or calls, would try to access RAM in the wrong location, causing it not to access RAM at all, and would similarly fail to reach any of the hardware.

If you wanted to write software that compiled for either without modification though, it would be fairly trivial. Nothing an assembler couldn't arrange properly.

| improve this answer | |
  • 1
    Sounds very similar to the differences between the Tandy Color Computer and the Dragon 32 actually. – hippietrail Aug 8 at 6:10
  • @Tommy interesting original question and good answer. Do you know what TMS stands for? – Single Malt Aug 13 at 20:43

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.