CartDisk PC Manual v3.30.a2.1 (http://diskdude.home.ml.org/CartDisk/). Copyright © 1995-1997 John Pappas (DiskDude). All rights reserved.It is a crime to redistribute the CartDisk software and/or hardware in a commercial venture of any kind without written permission or a licensing agreement. Please contact DiskDude
Print this document then read it before you start - you'll be glad you did!
Miscellaneous notes |
As of this release, I have made and tested the ISA card, SNES adapter and test adapter (Genesis and GameBoy adapter PCBs have been etched, but not assembled). As soon as the Genesis and GameBoy adapters have been tested, and software corrected, a beta version will be released. A date has not been set yet, as I am unfortunatly very busy with a Computer Science/Computer Systems Engineering degree which takes up a lot of time (28 contact hrs/week + many hrs at home).
The latest version of this documentation is always available on the Internet at the official CartDisk web site.
I am offering people who register CartDisk while still in alpha a discounted minimum registration donation of $AUS12.50 (which is approx. $US10.00), or $AUS12.00 if you're Australian. This offer is limited; as soon as CartDisk beta is released, the offer will be closed. To take advantage of this fabulous offer, please fill out the registration form.
Table of Contents |
|
|
1.0 Abstract |
CartDisk (one word!) is a software program and hardware combination (ISA card) which acts as a translator between your PC and a console cartridge allowing you to transfer data between the two. It currently supports the SNES, MegaDrive and GameBoy.
This development version of CartDisk is useful for you to backup your own cartridges allowing you to legally play them on the various emulators available on the Internet. It does allow you to write to a cartridge, be it SRAM, DRAM or FlashROM, however it hasn't been implemented in software (completely) and the hardware has not been (completely) developed yet. A circuit which uses standard SIMMs (DRAM) as a cartridge is almost (?) complete. It was developed entirely by Digital Fantasy and can be viewed at the official CartDisk Internet site.
Although the interface can support a wide variety of consoles, the software can't (yet). e.g. I was asked to include TGX16 support. It may be possible, however I don't know much about the system - pin outs, max. ROM size/speed and SRAM selection (if any)... If I did, it would be a matter of writing code and designing an adapter to read and write data to and from the system.
You only have to make the ISA card once! To "adapt" the CartDisk backup system to a different console system, you simply modify the bit which connects to the cartridge - everything stays the same. Who knows? One day it might even support the Ultra64! It all depends on how many people register.... hehehe
In future release(s), I will distribute a PCB for a DRAM cartridge, the circuit designed entirely by Digital Fantasy. It supposedly is able to emulate a SNES FastROM cartridge using SIMMs DRAM. Hopefully it may be "adapted" to the MegaDrive by using double the DRAM to fill the extra 8bits... A FlashROM cartridge design for the GB has been finalised, however it requires that you pull apart two GB carts and remove the MBC1 and MBC2 chips. A PCB for this has not been designed as of yet.
What might happen is that one generic "RAM board" will be designed with adapters for the SNES, Genesis and GameBoy. However this means the GameBoy won't be (very) portable...
2.0 System requirements |
You will need:
3.0 Disclaimer |
No information contained in the CartDisk software or hardware was derived from any confidential source, including this document. You may legally make one copy or backup of a game cartridge that you currently own, although distribution of this copy is prohibited by law, although this may be subject to where you live.
DiskDude accepts no liability for any damages whatsoever including direct, indirect or consequential even if he has been advised of the possibility of such damages from the use, misuse or construction of the CartDisk software and/or interface. Furthermore, DiskDude doesn't make any warranty of any kind, expressed or implied, including without limitation, any warranties of merchantability and/or fitness for a particular purpose.
The CartDisk software is provided "as is". You may distribute the shareware version of CartDisk so long as all accompanying files are also distributed, no charge are applied and NONE of the original files are modified in ANY way.
In no way shall CartDisk be used for acts of piracy. CartDisk was designed for backup and/or development of Super Nintendo Entertainment System, SEGA MegaDrive/Genesis and Nintendo GameBoy games that you own.
All copyrights and trademarks are owned by their respective owners, even if not acknowledged. No infringements are intended.
Have a very, very, very nice day!
4.0 CartDisk Hardware |
Quantity | Part | Description |
2 | 8255a or 72C55a IC | Programmable Peripheral Interface |
1 | 74LS139 or 74HC139 IC | Dual two to four binary decoder |
1 | 74HC688 IC | 8bit equality comparator |
2 | 4.7k ohm resistors | |
4 | 0.1uF capacitors | Any kind - the smaller the better |
1+ | 500mA fast acting fuse (250v) and matching fuseholder | Prevents your motherboard from damage if you short the power on the ISA card |
1 | 50pin IDC | Connector for various adapters (male) |
2 | Jumper pairs | Male connector to house jumper |
1 | Jumper socket | Used to short the jumper connector to select ISA cart I/O address (not needed for address 310hex) |
Test Adapter
Quantity | Part | Description |
1 | 50pin IDC | Connector to connect to the CartDisk ISA card (male) |
1 | LED | Tells you if the adapter is getting a power supply |
1 | 390 ohm | Resistor protecting LED from blowing up :) |
1 | 0.1uF capacitor | Any kind - the smaller the better |
Adapters (SNES, MegaDrive/Genesis, GameBoy)
Quantity | Part | Description |
1 | Edge connector | Buy a Game Genie and remove the connector from that (second-hand Game Genie's are cheap); or use an IBM motherboard edge connector (8 bit version); or any edge connector with 0.1" contact centers to suit your console. |
1 | 50pin IDC | Connector to connect to the CartDisk ISA card (male) |
1 | 0.1uF capacitor | Any kind - the smaller the better |
You can get the GameBoy edge connector as a spare part from the following distributor:
MCM Electronics
650 Congress Park Drive
Centralville, OH 45459-4072
USA
TOLL-FREE: 1-800-543-4330
FAX: 1-513-434-6959
VOICE: 1-513-434-0031
M-F: 7AM-8PM EST Sat: 9AM-6PM EST
Part #83-2285; $3.50; Gameboy Type 32 Pin Connector
From Fil's FAQ-Link-In Corner: MailOrder List about MCM Electronics: Minimum $20 ($25 for charge cards, and they don't take personal checks), handling $1.95 + shipping. Oriented toward repair technicians, really heavy on VCR parts and somewhat overpriced doodads, lots of useful stuff not easily found elsewhere.
Cable to connect adapter(s) to CartDisk ISA card
Quantity | Part/description |
2 | 50pin IDC female sockets |
1 | 1-2m 50 way/wire ribbon cable |
CartDisk ISA card (double sided PCB)
U1 and U2 | 8255a IC's |
U3 | 74LS139 IC |
U4 | 74HC688 IC |
C1-C4 | 0.1uF capacitors |
R1-2 | 4.7k ohm resistors |
Fuse1 | 500mA fuse |
J1-J2 | Jumper pins |
CN1 | 50pin IDC |
Test adapter (single sided PCB)
R1 | 390 ohm resistor |
LED1 | LED :) |
C1 | 0.1uF capacitor |
CN1 | 50pin IDC |
SNES adapter (single sided PCB)
C1 | 0.1uF capacitor |
L1 | A piece of insulated wire to connect between the pads. |
CN1 | 50pin IDC |
MegaDrive/Genesis adapter (double sided PCB)
C1 | 0.1uF capacitor |
L1-4 | Pieces of insulated wire to connect between the pads. |
CN1 | 50pin IDC |
GameBoy adapter (single sided PCB)
C1 | 0.1uF capacitor |
L1 | A piece of insulated wire to connect between the pads. |
CN1 | 50pin IDC |
PCB files are named as follows:
CDSK_ISA.PCB | CartDisk ISA card. |
SUPERNES.PCB | Super Nintendo Entertainment System adapter. |
GENESIS.PCB | SEGA MegaDrive/Genesis adapter. |
GAMEBOY.PCB | Nintendo GameBoy adapter. |
TEST.PCB | CartDisk test adapter. |
The PCB files are supplied in Protel AutoTrax format (*.PCB). To view and print the files, you need a Protel PCB program. There is a demonstration program for MS-Windows which is freely available; it can be downloaded from the official CartDisk web site.
Once you have installed it, run Protel for Windows (PFW). It will ask to open a PCB file. Select "CDSK_ISA.PCB" which is included in the \pcb directory of the CartDisk distribution ZIP file. To print the PCB, you need to enable each layer before printing it otherwise PFW will print blank pages for every layer after the first if you decide to print them all at once (limitation of the demonstration program - only the first layer will print).
Under "Options", select "Layers". Click on "All Layers Off", then on "Used Layers On". Now to print the top layer, make sure "Bottom" is unchecked (not selected) under "Copper Trace Layers" and "Top" under Silkscreen Overlay is also unchecked (Figure 4.1 below). Now click "OK". If you were to print the bottom layer, make sure the top layer under "Copper Trace Layers" is unchecked, the bottom layer is checked, and the silkscreen overlay is unchecked as previously.
Select "File", then "Plot/Print...". Select your printer under "Select Printer", then click on "Printer Options". Windows should now display your printer setup window. Please select the highest resolution your printer is capable of then select OK, or apply, whichever is applicable to exit the printer setup window.
Back in PFW, make sure "Show Holes" is checked, and "Fit Layer on Page" is unchecked (it will scale the image to the whole page resulting in a not-to-scale printout). Also, under "Batch Mode", select "Seperate Page For Each Layer" (Figure 4.2 below). If you are printing a bottom layer and wish it to be mirrored (if your etching kit requires it), then you may do it under "Output Options", then "Layer Mirroring". Finally, to print, select "Generate Prints". Do the same for all other print jobs.
The print should be to scale. To test it, place one of the ICs over the printout and see if the pins line up. If they're not to scale, try fiddling with the DPI setting in your printer setup. If all else fails, then please contact me.
PCB dimensions
Just for reference, the height and width of the PCBs are included below. All measurements are taken from the middle of the cutting guides (crosses on the edges of the PCBs) and are in millimetres. Note: I used a ruler, so I could be a tad off. :)
Printed Circuit Board | Width | Height |
CartDisk ISA card. | 123.5 | 89.5 |
Super Nintendo Entertainment System adapter. | 70.5 | 95.0 |
SEGA MegaDrive/Genesis adapter. | 57.5 | 108.0 |
Nintendo GameBoy adapter. | 85.0 | 103.0 |
CartDisk test adapter. | 46.0 | 79.0 |
The only tip I can offer when making the double sided PCBs is as follows. If you use film and ultraviolet light to define your tracks on the copperclad, then sticky-tape the two films together, one on top of the other, at the top of the films. Use three pieces of tape. Get a long thin strip of PCB material the same thickness of your double sided PCB and place it at the top (horizontally) where you have the three pieces of tape. This will ensure that when you line up the films properly, they will be over each other when you slide the double sided PCB in. Once the two films are lined up exactly with the strip of PCB at the top, slide in your double sided copperclad, and tape it to the films (the piece of PCB material at the top remains where it is). You may now expose both sides of the board and the pads should line up. If you use the laser-print-to-plastic-sheet method, it might work if you replace "film" with "plastic" and "expose" with "iron". :)
Make sure you print a copy of the PCB's overlay. This will show you where the parts are placed. Refer to section 4.0.2 Description of component identifiers on overlays to see which identifier relates to which part. Before you solder any components into place, make sure you solder the pads which don't belong to a part (you can tell from the overlay). These pads act as a link between the two sides of the PCB - simply solder a wire between the two sides to make the connection.
When assembling boards with two layers, and your PCBs are not plated through, make sure you solder the top side! It's is advisable not to use IC sockets in this case, as you cannot solder underneath them. In such a case, try not to overheat the ICs, as you might damage them. For the IDC connector, it may possible to solder the top layer if you follow these steps:
Make sure you connect the LED the right way around (it is polarised!) on the "Test Adapter". The anode of the LED connects to the pad which is connected to the resistor, the cathode connecting directly to the IDC connector (The cathode is the pin next to the "flat" part on the base of the LED).
Instead of making an adapter cable, you can use a standard 50 wire SCSI cable instead if you wish.
To make the cable, get your two IDC50 connectors and a piece of 1m 50-way ribbon cable (if you make it too long, the wire will act as a capacitor, giving you error in data). Open one of the connectors and attach it to the ribbon cable making sure you line up the teeth of the connector with the individual wires of the ribbon cable (you do not need to remove the plastic on the ribbon cable - the teeth bite through it to make the connection). You somehow need to make the teeth cut through the wire - I used the end of a pair of scissors and banged it (very hard!) into place on top of a piece of wood... Replace the cover that holds the ribbon cable in place. Do the same for the other side making sure they both face downwards as in Figure 4.3 below:
Make sure the wires on the ribbon cable line up with the metal teeth on the IDC socket! The power pins are right next to each other (I was going to put one on each end, but didn't) so if the cable isn't aligned, you will short your power supply - the fuse on the ISA card should protect your PC if something goes wrong, but its better to be safe than sorry. Test the cable to make sure it has no shorts to be absolutely sure.
Your cable is now complete.
How the cable connects between ISA card and adapters
As a general rule of thumb, the IDC connector on all adapters are on the left when the board is the right way up, and the IDC connector on the ISA card on the right (back of PC). Do not have a twist in the cable between the ISA card and adapter (Figure 4.4).
4.0.5 How to make the adapter cable
You need to make a cable which connects between the CartDisk interface and the various adapters for different consoles. You only need to make one - it will have two sockets on each end so it'll work with all adapters.
//| //|
++--------------------------------------------------++ |
++--------------------------------------------------++ |
++]-------------------------------------------------++]]
++--------------------------------------------------++ |
++--------------------------------------------------++ |
+x==================================================+x/
connector #1 connector #2
+----------------------+ // +--------+
| |=======//=====| || | <- SNES adapter
| CartDisk ISA Card |======//======| || | front of cartridge
| |=====//=======| || |
| |====//========| || |
+--------||||||||||||--+ //(cable) +--------+
5.0 CartDisk Software |
The software is provided as a DOS .EXE file which provides basic functionality. It saves all images in (the GameDoctor) RAW format (except MegaDrive/Genesis which is stored as a binary file with a normal extension of .BIN).
Note that it is a very basic DOS program. Once everything works fine, I will write a Windows version: CartDisk '97 and no changes to hardware are required (as of beta versions since all hardware would have been tested by then). However this program will not be shareware and will only be available to people who have registered.
During a Copy Cartridge, or Load Cartridge, you may press Escape (Esc) to cancel the operation and return to DOS.
5.0.1 How to use the software
If you are familiar with DOS, the following usage information will make much sense to you; if not, read the examples below.
Usage: CartDisk [tool] [system] [filename] [port]
[tool]: c - Copy a cartridge
l - Load a cartridge
s - Save SRAM on cartridge
o - Load SRAM on cartridge
c - Clear SRAM on cartridge
t - Test Interface
[system]: s - Super Nintendo
m - SEGA MegaDrive/Genesis
g - GameBoy
[port]: /1 - I/O base address 110h
/2 - I/O base address 210h
/3 - I/O base address 310h (default)
Please note that the functions which deal with the cartridge SRAM (or Battery backed up RAM) only work with the Super Nintendo and GameBoy adapters so far. The file format of saved backup-RAM are just raw copies of the RAM, which is the same format the Game Doctor copier uses, and most SNES emulators.
Examples
Once you have the cartridge on disk in the form of an image file (as above), you can then use it in one of the various emulators available on the Internet. Please note that VSMC by The Brain requires you to have the file in Super Magicom format. CartDisk creates your image in GameDoctor (or raw) format. To convert between the two, download a SNES conversion utility such as uCON from Damaged Cybernetics.
C:\CARTDISK>cartdisk c s mario.gd /2
If your ISA card was using base address 310h, the port switch is not needed and it is default (because no jumpers are needed on the card), as shown in the next example.
C:\CARTDISK>cartdisk c m sonic.bin
C:\CARTDISK>cartdisk e s /1
If the cartridge does not have any backup-RAM, then you will be warned; you will not destroy your cartridge.
The Genesis emulator GenEm by Markus Gietzen will gladly run images created by CartDisk, however make sure you rename them with the BIN extension.
Hidden option
When copying a cartridge, you can add an extra parameter on the end of the command line indicating an "override" cartridge size. For SNES and MegaDrive/Genesis modes, the figure is quoted in MegaBits (32 is maximum), and in GameBoy mode, the figure is in KiloBits (4096 is maximum - equal to 4Mbits). This is used when the autodetect doesn't work properly. e.g. Street Fighter II is detected as 8Mbits when it should be 16Mbits.
To save a log of all errors encountered during the test, simply redirect the output of the CartDisk program to a file as follows:
If you have an error prone card, try adding more capacitors between +5v and GND on every IC to minimise the noise or shorten your cable between ISA card and adapter (which I had to do). However, this assumes that you made no mistake in your soldering/wiring. If you do get errors, check this first (I also had a wiring error - one of the pads was cut from its track).
An example error message is: "Error reading U1 port A: read 0 (00000000) expected 1 (00000001)". In this case, the most significant bit was missing when reading U1 port A. This may be a result of wiring errors on the interface at pin 1 of the 50 pin IDC connector, OR it may be a result of a wiring error on the interface at pin 48 of the IDC connector (which pin 1 is connected to on the test adapter - U2 Port C).
The 50 pin IDC connector is mapped into 6 different "ports", each with 8bits. The key is as follows:
Note: IDC pin # 49 is +5v and pin # 50 is GND. Pin numbers start from 1 at the bottom left corner when viewing the PCB in its ISA slot in the PC (from the component side). Pin # 2 is directly to the right of pin 1 (bottom right corner of the IDC connector; near the back of the PC) and pin 3 is above pin 1, etc, etc. On the adapters, the pin numbers are exactly the same as the interface assuming you have them the right way up (see Figure 2). Confused? Read it again!
Send, via snail mail, a donation of $AUS25.00+ to DiskDude AND a postcard of your local area (city). Please make the cheque payable to "John Pappas" (bank/cashiers cheques only) in Australian dollars. I cannot accept any funds other than Australian currency in a cheque. If you cannot get a cheque in Australian currency, then please enclose either $US25.00+ or $AUS25.00+ CASH in an envelope, wedged between two postcards (so the cash isn't visible) - no coins though. Why two postcards? If a postman, or anyone else, sees cash in a letter, they will take it (for themselves) and the letter won't be delivered.
CartDisk has been in development for a few years now which has meant many hours of hard work refining the code/hardware. The $AUS25.00+ is to keep the Post Office Box alive, fund any hardware I need to purchase (like IC's and copper clad), and purchase any console systems which I can do a little "hacking" on (hmmm... maybe the N64 even hehehe).
Registration motivates me to continue work heading for CartDisk release '97. Anyone who registers will get the following:
Please register by filling in (on computer) then printing the registration form. If you cannot print it, please neatly hand write the appropriate information and send that instead.
Make sure you include a statement of the weather on your PostCard (the best type are the ones with a large, single picture of your city).
All PostCards I receive are digitized and placed on my PostCard Gallery on the Internet for the world to see!
5.0.2 How to test the ISA card
Connect the test adapter to the CartDisk ISA card. First check to make sure the LED lights up. If it doesn't, you made a booboo - fix this first! Now run CartDisk with the test ("t") command as follows:
C:\CARTDISK>cartdisk t
CartDisk will output one of 24 bits to U1, reading and comparing it from U2. If a mismatch occurs, it will be displayed on the screen in both decimal and binary form. This will contine another twenty-three times, to test all 24 bits of U1 and U2. On completion, it will be reversed, using U2 as the output and U1 as the input.
C:\CARTDISK>CartDisk t > log.txt
The above examples to test the ISA card use a default base address of 310h (ISA card). To use a base of 110h or 210h, specify an address switch as follows (same two examples, except using a base address of 210h):
C:\CARTDISK>cartdisk t /2
C:\CARTDISK>CartDisk t /2 > log.txt
Port # CartDisk test reports it as IDC pin # 1 U1 Port A 1-8 2 U1 Port B 9-16 3 U1 Port C 17-24 4 U2 Port A 25-32 5 U2 Port B 33-40 6 U2 Port C 41-48 5.0.3 Registration
CartDisk is SHAREWARE. This means that if you continue using it after an initial fourteen (14) day trial period, you must:
I am sorry that this can only be dealt with via Internet e-mail. If demand becomes high, I'll consider other methods of distribution as well. If your Internet Service Provider (ISP) does not allow you to receive attachments via email, then I suggest you go to http://www.hotmail.com and create a new "HoTMaiL" account. It is free Web based email. e.g. I created an account with "diskdude" as the login name. My HoTMaiL account became diskdude@hotmail.com and email can be sent there. You can now receive CartDisk updates via email - the attachment becomes a hypertext link on the web-email which you can download just like you downloaded the shareware version of CartDisk on the official CartDisk web site.
6.0 CartDisk v3.30 Version History |
Development version 3.30 alpha 1
Development version 3.30 alpha 2
Things to do:
7.0 Acknowledgments |
8.0 Information required |
9.0 Known bugs |
Make sure you include a small description of what the problem is so it can be reproduced easily to rectify the error. DiskDude can't fix a bug if he don't know what it is!
10.0 Greets |
Hello and thank you to Ian Huang, LordViper, Peter Grey, Pascal Felber, Dean Hegazi, Trevoy Nyari and good old Donald Moore. Last but not least, I wish to thank all registered users - without you dudes, I wouldn't have continued :) THANKS!