[an error occurred while processing this directive]PLAYSTATION 1 [an error occurred while processing this directive]SEGA MEGADRIVE/GENESIS  


About

The dev cable is a simple cable that connects the parallel port of a PC to the controller 2 port of the Megadrive/Genesis. Along with the relevant software (see links below) you can transfer programs to the flash chips on the candu megacart.

The dev cable is provided with ABSOLUTELY NO WARRANTEE OF ANY KIND. Use it AT YOUR OWN RISK. It is not my fault if it blows up your Megadrive or your PC.

Version History

2009-07-301.0First version of  DevCable

Schematic

Technical Info

Data is transfered to the Megadrive 5 bits at a time (lines D4-D0). The highest bit indicates whether the data sent is a command or not (high = command), so actual ROM data is sent in nibbles.

The BUSY and ~STROBE lines are used to handshake data as follows:

  • Megadrive lowers BUSY when ready to receive data
  • PC sets data values on D4-D0
  • PC lowers ~STROBE to indicate the presence of data
  • Megadrive takes data value
  • Megadrive raises BUSY to indicate data is received
  • PC raises ~STROBE ready to send the next data (when BUSY goes low)

  • This is a slight variation on Centronics handshaking, it is not compatible but saves on the ACK line.

    Once transfered, data is compared with the expected CRC value sent (CRC16), then written to the flash memory. This is done by running the memcpy16 type function from RAM, something not often done on the Megadrive. The function writes to the memory using the command interface described in the M29F040B Datasheet. In reality both flash chips are programmed simultaneously.

    Transfer Rates

    Using my linux dev machine (AMD Duron 1.2 GHz), I am getting the transfer times below. These times include transfering and writing the data, along with clearing the blocks.

    512KB game ROM (full)3 mins 9 secs2.7 KB/s
    256KB game ROM (full)1 mins 26 secs3.0 KB/s
    128K mdxserve ROM (10KB of data)4.3 secs2.3 KB/s


    5 seconds to test a program you are developing is a huge improvement on using an EPROM programmer, since you save a lot of time by not needing to remove the cart from the Megadrive, remove the chips from the cart, program one then the other and place it all back together. Its almost fast enough not to bother testing with Gens first!

    Links

    latest mdxfer and mdxserv (see SMD main page for older versions)
    PC parallel port pinouts
    Megadrive controller pinouts
    CRC16
    M29F040B datasheet