5

Sega must have thought about upgradability prior to the Genesis’s release, as there is a expansion slot to the right of the unit when looked at from the front. Is this the only expansion slot? Is it part of a standard or a bespoke Sega implementation?

Here is a guess of how the games are loaded. For the Genesis, the 68000 starts at address 0h where a ROM is present, which initiallises it and then starts the cartridge game. If the Sega CD is being used then its 68000 will start at address 0h but this will be a ROM within the Sega CD, and then it starts a CD game. So when using the Sega CD there cannot be a cartridge present otherwise the Genesis will automatically load this?

Does the Genesis 68000 do anything if the Sega CD is playing a game? If it does, is synchronisation needed, and if so how is this done? More broadly, what Genesis resources does the Sega CD utilise?

A story like answer of how the Sega CD works from bootup may make it easier to understand.

  • From wikipedia: "The Sega CD plays CD-based games and adds hardware functionality such as a faster central processing unit and graphic enhancements like sprite scaling and rotation." Sounds like the Sega CD hardware takes over completely. – fadden Aug 15 at 15:03
  • The 68000 doesn’t start from address zero, although it does read a vector from there; and I had the impression that the expansion connector just repackages the cartridge port. So both 68000s run at once. But I’d need to look that up. – Tommy Aug 15 at 20:53
  • Reading through the Sega Retro site, it does seem the Sega CD does the majority of the heavy lifting, but the Genesis CPU runs simultaneously and is needed (at least) for moves. @Tommy what address does the 68k start from (I thought the 8086 was one of the few CPUs of that era that did not start at 0h, and thus thought the 68k did start at 0h). The expansion connector is a second cartridge port according to the Sega Retro link. – Single Malt Aug 16 at 16:27
  • 1
    @SingleMalt it considers reset to be an exception, so it goes to its exception vector table and reads an initial stack pointer from address 0 and an initial program counter from address 4. So I’m splitting hairs; whomever controls the first bytes of address space at rest gets to pick what code to run. It’s usually somewhere a decent distance from 0 though, as the rest of the exception vector table runs at least up to 0xc0 (up to 0x100 was reserved but, well, it’s a Mega Drive. You know for sure it’ll only ever be a plain 68000). – Tommy Aug 16 at 16:46
7

To answer the first half of your questions:

The right-side 60-pin expansion slot is bespoke, and found on Mega Drive / Genesis 1 and 2 only. It is not present on the Genesis 3 or Nomad.

It exposes the address and data buses and a lot of other signals. In that respect it's very similar to the 86-pin expansion slot on the left side of an Amiga 500 (and the 56-pin trapdoor), but isn't compatible.

There is a second expansion slot, labelled EXT, found only on early Mega Drive 1s. It's a DE-9 female port similar to the front controller ports; is programmable and can act as a serial port. There are very few peripherals designed for this port, the main one being the Mega Modem, exclusive to Japan.

On the Sega Multi-Mega, the two 68000s are discrete as shown in this photograph from Wikipedia.

--

Your assumption about booting is wrong. If a Sega CD is installed, the memory map changes. The Sega CD takes ownership of $000000-$3FFFFF causing the system to boot into the Sega CD BIOS on power-on, and the 4 Megabyte cartridge slot address space becomes $400000-$7FFFFF.

--

According to Christian Schiller's Mega CD programming FAQ:

Both 68k processors run simultaneously. Only the Genesis 68k has access to the VDP and sound registers of the Genesis soundchip. That leaves only three tasks for the SCD´s 68k:

  1. accessing the CD drive,
  2. accessing the custom chips and
  3. computing. The SCD´s 68k (or the special graphics chip) for example does all the sprite/playfield zooming and rotation in games like Sonic CD or Thunderhawk. Then the Genesis 68k simply downloads the pre-calulated data via the connector port (which is, simply said, "just" a second cartridge port) and displays it on screen.

Let´s imagine we load some bitmap graphics from CD in order to display them onscreen. We´d need to do the following:

  1. give a load command to load the gfx file into the CD buffer
  2. copy the gfx from the cd buffer to the main RAM (512K?) of the CD processor
  3. maybe rotate/zoom the gfx using the CD graphics chip...
  4. switch main RAM to Genesis CPU
  5. copy gfx data from main RAM to Genesis RAM
  6. copy gfx data from Genesis RAM to VDP RAM to display it onscreen.
| improve this answer | |
  • I wouldn't be so quick to accept in case I'm wrong :p – knol Aug 17 at 20:07
  • Would the compact variant of the that contains the built-in CD-ROM have used two 68000 chips on the same board, or was there some higher-integration approach? – supercat Aug 17 at 22:04
  • Added that info to answer – knol Aug 17 at 23:10
  • Cool. Interesting the English-language web page title doesn't match the Spanish one. – supercat Aug 19 at 3:01

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.