LocalH, on Sat Jan 28, 2006 4:43 PM, said:
Pretty much, yeah. I've never actually done any SMS code myself, so I don't know, but Charles MacDonald says that you can indeed access all Genesis buttons from SMS mode. You can even switch the VDP to mode 5 (Genesis mode) while still otherwise in SMS mode, so you can also write pseudo-SMS games that use some of the added graphics capabilities of the Genesis VDP.
I looked into the tech info for the SMS last night. It really is more like the ColecoVision than I thought.
Apparently the SMS VDP has a full TMS9918A implementation (for backward compatibility with earlier Sega systems), adding a mode 4 which is the normal SMS display mode. This is not the MSX mode 4; the SMS is based on the 9918, but in a different way from MSX. It also has esentially the same sound chip as the ColecoVision, but it was merged into the chipset in the redesign from Mark III. One thing I found interesting was that the 16K VRAM was implemented using two 8K SRAMs, arranged as 16-bits wide. This plus the higher speed of SRAM gave the extra memory bandwidth to display four times as much data. (mode 4 always used 4-bit pixels)
The Genesis/MD adds a mode 5, which is the standard Genesis graphics mode (I didn't look into the details on that), but removes the TMS9918A compatibility. There were very few SMS games that didn't use mode 4, and the most notable is F-16 Fighting Falcon. I always thought that the reason it didn't work on the PBC was because it was the only 32K card game. Nope, it's because it used a TMS9918A graphics mode!
The Genesis/MD is put into backward compatibility mode by using the "M3" pin (which apparently refers to the Sega Mark III) in the cartridge slot. This disables the 68000 and changes the cartridge connector to the Z-80 bus. Both the Z-80 and the 68000 can use both modes 4 and 5, but nobody bothered to use mode 4 on a 68000 game. There was a proof of concept demo a few years back, but that's it. And the M3 pin was apparently removed from the Genesis 3.
So with a bit of code patching to handle the different ports, and remove the BIOS usage, you could make a ColecoVision game run on the SMS, but not via the PBC or SMS emulation mode on a Genesis/MD. At that point you would have to do major work to a game to convert the graphics to mode 4. You could also convert a pre-M3 game to Coleco, if you could live with 1K CPU RAM.
FWIW, the NES PPU also was clearly inspired by the TMS9918A, but went in a different direction.
Edited by Bruce Tomlin, Mon Feb 6, 2006 9:17 AM.