As discussed
here, there seems to be a desire to create a new CD System Card with extended memory to simplify translation work and generally improve the PCE’s capabilities.
Based upon these, I’d like to propose the CD Stupid Card 4.0:*512KB ROM + 2MB RAM + MCGenjin-CD Mapper.
*Linear 1MB RAM mode for loading all your (legally obtained) HuCard images from CD, or rolling your own CD BIOS, or whatever.
*Works in both the PCE and TG16 without modification.
*Compatible with most CD System Card 3.0 software using a patched version of said card’s BIOS.
*Can already be emulated by Mednafen excluding the linear 1MB mode (see “BIOS” section below).
*Two LEDs indicating region locking and mode (512KB ROM + Banked RAM or Linear 1MB RAM).
MCGenjin-CD Mapper:;*************************************************************
; !!!!---- MCGenjin-CD ----!!!!
;*************************************************************
MCGenjin-CD is a modified version of the MCGenjin memory
mapper for use in CD System Cards. It includes the standard
dual-region capability present on the original MCGenjin as
well as facilities for controlling 512KB of cartridge ROM
and 2MB of cartridge RAM.
;*************************************************************
; !!!!---- MEMORY MAPPING ----!!!!
;*************************************************************
In Normal / Startup mode, the 1MB cartridge region is
arranged as follows:
$00000 - $3FFFF Lower 256KB of ROM
$40000 - $7FFFF Upper 256KB of ROM or Secondary 256KB RAM Bank
$80000 - $BFFFF Selected 256KB RAM Bank
$C0000 - $FFFFF Highest 256KB RAM Bank
Once RAM mode is enabled, the cartridge region will just
contain a linear map of the lower 1MB of RAM, and will remain
in this mode until the console is reset.
$00000-$FFFFF 1MB RAM
;*************************************************************
; !!!!---- MCGENJIN HEADER ----!!!!
;*************************************************************
As the MCGenjin-CD is an MCGenjin derivative mapper, an
MCGenjin header should be included from $1FD0 to $1FDF in the
ROM residing on the card. The following contents should be used,
appearing as follows after being mapped into MPR7/$FFD0:
$FFD0-$FFD7 : ASCII String containing "MCGENJIN"
$FFD8 : MCGenjin Chip Revision.
$CD- "CD" Version
$FFD9 : Number of 256KB pages in ROM
$2- 512KB of ROM
$FFDA : Native ROM Region
$0- US/EU
$1- JP
$FFDB : User Chipselect 0 Device Type
$15- 256KB SRAM
$FFDC : User Chipselect 1 Device Type
$15- 256KB SRAM
$FFDD-$FFDF : Unused/Future Expansion
-Set to $0
;*************************************************************
; !!!!---- REGISTER LIST ----!!!!
;*************************************************************
All registers are write-only and accessed by writing
anywhere in the $00000 - $3FFFF region. Register access
is completely disabled upon a switch into linear RAM mode.
Note that unlike a normal MCGenjin, _only_ the Region Control
register does not account for the current operating region
(dataline transposition). All other registers such as the
RAM Bank Select and Linear Mode Unlock will properly reverse
written data bits. Therefore, when setting the system region
at startup it is best just to write $00 for native / unswapped
or $FF for foriegn / swapping enabled.
+Writes to %00 addresses control UPPER ROM ENABLING
76543210
High ROM Enable: xxxxxxxR, Reset = xxxxxxx0
R = When set, the upper 256KB of ROM from $40000 - $7FFFF
will be replaced with the LOWER RAM BANK (selected using
register %01).
Note that any writes to this register will also reset
the linear mode unlock sequence.
-Writes to %01 addresses select the LOWER RAM BANK
76543210
RAM Bank Select: xxxxxBBB, Reset = xxxxx000
BB = A20-A18 of the lower 256KB RAM Bank ($40000 - $7FFFF)
Note that any writes to this register will also reset
the linear mode unlock sequence.
+Writes to %10 addresses control REGION and LINEAR MODE
76543210
Region Control: xxxxxxxS, Reset = xxxxxxx0
Upon reset, this register controls the system region
(dataline reversal enable). Once a region has been
selected (writing '0' for no reversal or '1' to
request dataline reversal), this register's purpose
will change to control LINEAR RAM MODE UNLOCKING.
76543210
Linear Unlock: KKKKKKKK
To request a switch into linear RAM mode, the two ASCII
characters "HU" must be written to this register in order.
Once in linear RAM mode, all register access will be
disabled until the system is reset.
-Writes to %11 addresses select the UPPER RAM BANK
76543210
RAM Bank Select: xxxxxBBB, Reset = xxxxx000
BB = A20-A18 of the upper 256KB RAM Bank ($80000 - $BFFFF)
Note that any writes to this register will also reset
the linear mode unlock sequence.
BIOS:I have two UPS patches available for the Japanese System Card 3.0 (Original MD5 should be 38179df8f4ac870017db21ebcbf53114). A summary of the patch changes is available
here.
*
Super CD-ROM DERP v3.6 - Can be used with Mednafen as a System Card 3.0 with 512KB RAM (basically no RAM banking or linear 1MB mode), if you test your game or translation using this it will work 100% fine on the CD Stupid Card.
*
Stupid CD-ROM DERP v4.1 - Version for the CD Stupid Card. Not 100% compatible with Mednafen.
Resources to make your OWN CD Stupid Cards:Are all available
here.
These include the board gerbers, mapper source (in Verilog) and precompiled POF, along with documentation and a test program.
If you're planning on mass-producing a variation of this card, I highly recommend laying out a new board. Smaller packages of the components used are available and could easily be arranged such that everything fits in the same area as an original System Card. I also screwed up the SRAM pads which makes manufacturing difficult.
Components and Cost:1x EPM7032LC44 / CPLD : $2.40 ea
1x 39SF040 / 512KB Flash : $2.07 ea
2x AS6C8008 / 1MB SRAM : $7.24 ea
1x DIP32 Socket : $0.73 ea
2x Amber LED : $0.25 ea
2x 1KOhm Resistor (0402) : $0.07 ea
1x 10uF, 25V Tantalum Capacitor (1206) : $0.21 ea
4x 0.1uF, 50V Ceramic Capacitor (0402) : $0.06 ea
1x PCB : $1.49 ea
Total: $22.26 per card
Please note that it this is raw component cost in low quantities and excludes shipping and manufacturing. However, the point still stands that this card is cheap to make. The developer cards will be available for $35/ea plus shipping.
Yeah great, but where are you going with all this?:This is the System Card I’ve wanted since I first bought my TurboGrafx: something affordable which works in both console regions. It also has some neato extra stuff for translations and new games.
That said, I do not have time to manufacture hundreds of these. I’m currently developing two games and working on a book, which have to take priority over weird niche card designs. However, I’d like to do a small “developer’s” run of cards and then release all the materials I used to create the cards. This means both the gerber files for the PCB and Verilog + POF for MCGenjin-CD (update,
these are available). That way the community can take the card wherever it needs to go.
This developer run of cards will only be 25 cards maximum. If you're interested in a card, please post in this topic saying so. These are first-come first-serve (update, with the current developer sign-up I'll be manufacturing 16 cards total).
What I’d like from you guys:Nothing! Enjoy your cards!
Status Tracker:*Card and Mapper Specification,
DONE!*Mapper Verilog,
DONE!*Board Layout,
DONE!*Developer Sign-Up,
DONE!*Developer Card Fab,
DONE!*Card Verification,
DONE!*Card Manufacturing,
DONE!*Developer Distribution,
DONE!Developer Sign-Up:- MotherGunner
- elmer
- Black Tiger
- Lochlan
- wyndcrosser
- The Old Rover
- VenomMacbeth
- SamIAm
- Bonknuts / Tomaitheous
- cjameslv
- akamichi
...and one for me makes 12 cards! I'll be manufacturing
16 in case of defects.
UPDATE - All cards have been shipped out. If you encounter any issues with your card or have questions, please PM me or post in this topic.
Manufacturing Tracker Archive:Since I am manufacturing the cards in "components passes" (i.e. solder the RAM on a group of cards, then the CPLDs), progress will be listed by how many cards have passed a given step in production. I cannot give solid estimates as to
when all the cards will be done, but you can watch the list below:
- RAM: 16
- CPLD : 16
- Discrete Components : 16
- Flash : 16
- Verified OK : 13- Defective / Bad Merchandise : 3This post will be updated as needed.