Page 1 of 1

Most up to date Mega Drive cart pinout?

Posted: Tue Dec 31, 2019 11:33 am
by MrD
I'm troubleshooting my own cart design (thread), and one of the issues I'm having is that I don't have a good source for the Mega Drive cart pinout.

There's lots of resources online, but they all seem to use different names for the same pins (is B16 named '/CAS0', '/RAS0', '/OE', '/C_OE', '/ROMO', '/REF'?), and some of them are incomplete (pins marked unknown) or contradictory at first glance (a pin marked as an input on one might be marked as an output on the other - possibly a misunderstanding, or the sources were written from the point of view of the slot being an 'input' to the MD by one author, and an 'output' from the cartridge by another author). Some signals have non-intuitive conditions applied to them, like /AS not being lowered during DMA, so it's all bit confusing. My WIP cartridge attempts to combine (B17/C_OE or B18/AS or (B28/LWR nand B29/UWR)) to generate an internal /OE for my PROM, but since I didn't know about the /AS DMA behaviour, many of my tiles are coming out solid $FFFF.

So in 2020, where can I find the most up-to-date and complete version of the MD cart pinout? Which signals are asserted and when, and what levels (including what the audio pins would accept)? :D

Re: Most up to date Mega Drive cart pinout?

Posted: Wed Jan 01, 2020 5:56 am
by Sik
This is something I should have documented in Plutiedev long ago… eh. I'll try to get around that soon.

Leaving this here meanwhile (B side is the front of the cartridge):

Image

I was going to write a list of everything but I have doubts about some lines (I'm not the expert here) so I'll leave others to explain in detail. That said, I think the /AS signal comes straight from the 68000's /AS line (nearly all of the signals come directly from the 68000 bus). 68000 asserts /AS when it puts a valid address on the address lines (VA23-VA1). Also note that /UWR and /LWR are for write accesses, not reads (use /CAS0 as a read strobe and /CE_0 to tell if it's the cartridge range).

From what I remember, for a plain ROM (or equivalent) /CE_0 would be chip enable and /CAS0 would be output enable.

Also the reason input/output can be muddy is because some signals don't have a well defined direction. /MRES and /VRES are directly tied to their respective reset lines, so they get asserted to tell the cartridge when reset happens, but the cartridge can also pull them low to get the console to reset. Similar thing with /DTACK, it's there so the cartridge can assert it when the console won't (e.g. the 32X address range is like this), but you have to be aware that the cartridge won't be the only one outputting a signal there.

DISCLAIMER AGAIN: would be nice if somebody else chimed in to confirm to make sure I didn't make an idiot of myself yet again :​P

Re: Most up to date Mega Drive cart pinout?

Posted: Thu Jan 02, 2020 8:46 am
by TmEE co.(TM)

Re: Most up to date Mega Drive cart pinout?

Posted: Fri Jan 03, 2020 11:00 am
by MrD
Thank you both. :)

There are a few things that I'm still not sure of.

Are the cart port's B28 !LWr and B29 !UWr asserted for the whole address space?

Does B31 !Time being asserted by itself with no write indicate !OE from the !Time address region? (in other words TIME!CE = !TIME, TIME!OE = (!Time or (!LWr nand !UWr)) ? )

Re: Most up to date Mega Drive cart pinout?

Posted: Fri Jan 03, 2020 6:08 pm
by Sik
MrD wrote:
Fri Jan 03, 2020 11:00 am
Are the cart port's B28 !LWr and B29 !UWr asserted for the whole address space?
As far as I know, yes. /UWR is for the upper byte, /LWR is for the lower byte (i.e. they're the write enables for each half of the word). For byte accesses only one is asserted, for word accesses both are asserted.
MrD wrote:
Fri Jan 03, 2020 11:00 am
Does B31 !Time being asserted by itself with no write indicate !OE from the !Time address region? (in other words TIME!CE = !TIME, TIME!OE = (!Time or (!LWr nand !UWr)) ? )
/TIME = chip enable
/CAS0 = output enable
/UWR & /LWR = write enable

So in other words:
  • /CE_0 + /CAS0 = read from $000000-$3FFFFF
  • /CE_0 + /UWR/LWR = write to $000000-$3FFFFF
  • /TIME + /CAS0 = read from $A13000-$A130FF
  • /TIME + /UWR/LWR = write to $A13000-$A130FF

Re: Most up to date Mega Drive cart pinout?

Posted: Fri Jan 03, 2020 7:32 pm
by MrD
Ah, thank you! That makes more sense. I was working off a document that said /CAS0 was active in $000000-$7FFFFF (but that range is /ASEL, if I remember right). (Also confusing me is that the Sonic 3 cart uses !TIME as the clock to a D-type register for bankswitching without combining it with an output enable or read strobe.)

Re: Most up to date Mega Drive cart pinout?

Posted: Fri Jan 03, 2020 9:26 pm
by Sik
MrD wrote:
Fri Jan 03, 2020 7:32 pm
(Also confusing me is that the Sonic 3 cart uses !TIME as the clock to a D-type register for bankswitching without combining it with an output enable or read strobe.)
I don't think it ever bothers to read back the value (only write), makes sense that it won't allow reads from it. They were trying to keep costs down by simplifying the mapper, after all.