Author Topic: CD Stupid Card 4.0  (Read 5706 times)

TailChao

  • Full Member
  • ***
  • Posts: 156
CD Stupid Card 4.0
« on: March 03, 2015, 05:03:14 AM »
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:
Code: [Select]
;*************************************************************
; !!!!----              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 : 3


This post will be updated as needed.
« Last Edit: September 17, 2016, 08:11:27 AM by TailChao »

deubeul

  • Sr. Member
  • ****
  • Posts: 444
Re: CD Stupid Card 4.0
« Reply #1 on: March 03, 2015, 06:01:56 AM »
As I'm not aware of the tech things, i'll just say: What you do is great.

poponon

  • Sr. Member
  • ****
  • Posts: 320
Re: CD Stupid Card 4.0
« Reply #2 on: March 03, 2015, 06:30:55 AM »
HYYYYYYPE


Dicer

  • Hero Member
  • *****
  • Posts: 1905
Re: CD Stupid Card 4.0
« Reply #3 on: March 03, 2015, 06:48:42 AM »
Whatever it is make sure it has enough bells and whistles so it's the be all end all card, no need for further expansion...


elmer

  • Hero Member
  • *****
  • Posts: 2153
Re: CD Stupid Card 4.0
« Reply #4 on: March 03, 2015, 06:53:08 AM »
I'd be happy if you'd put me down for one when they're ready!

Actually, I'm interested in both HuCard and SCD development ... HuCard for one smaller project, and SCD/ACD for a bigger one.

From my personal POV, I'd love to see 3MB (however mapped, it doesn't really need to be ACD-compatible).

That would let you simulate the space on an 2MB ACD and still have 1MB to give extra development space. But realistically ... that environment can just be simulated on Mednafen and then run on a real Arcade Card ... so it's a distraction that you would be better to ignore.

The 1MB sounds like it will do absolutely everything that both new SCD development and SCD translations need ... and I think that it's more important to fulfill those 98% of wishes rather than over-specify and never get it done.

Whatever it is make sure it has enough bells and whistles so it's the be all end all card, no need for further expansion...
The way that it's looking, the things that it wouldn't do are Arcade Card and Street Fighter ... and putting in either of those would likely stall the project to the point where it never gets done.

I'd personally rather have what's been talked about and then pay for an upgraded version at some time in the future, if there's enough demand to ever produce one.
« Last Edit: March 03, 2015, 07:00:54 AM by elmer »

seieienbu

  • Hero Member
  • *****
  • Posts: 1986
Re: CD Stupid Card 4.0
« Reply #5 on: March 03, 2015, 07:01:39 AM »
Ideally I'd like for a new system card to support Arcade Card titles as well. 
Current want list:  Bomberman 93

Punch

  • Hero Member
  • *****
  • Posts: 3278
Re: CD Stupid Card 4.0
« Reply #6 on: March 03, 2015, 07:11:13 AM »
The name is misleading, this isn't stupid at all.

People that are planning homebrews for that card, will they come with the systemcard bundled with it just like Games Express' software? I know this is primarily for PCE translations but it doesn't hurt to ask.

Dicer

  • Hero Member
  • *****
  • Posts: 1905
Re: CD Stupid Card 4.0
« Reply #7 on: March 03, 2015, 07:14:17 AM »

The way that it's looking, the things that it wouldn't do are Arcade Card and Street Fighter ... and putting in either of those would likely stall the project to the point where it never gets done.

I'd personally rather have what's been talked about and then pay for an upgraded version at some time in the future, if there's enough demand to ever produce one.

Why are these sticking points exactly?!?!


TailChao

  • Full Member
  • ***
  • Posts: 156
Re: CD Stupid Card 4.0
« Reply #8 on: March 03, 2015, 07:15:54 AM »
From my personal POV, I'd love to see 3MB (however mapped, it doesn't really need to be ACD-compatible).

That would let you simulate the space on an 2MB ACD and still have 1MB to give extra development space. But realistically ... that environment can just be simulated on Mednafen and then run on a real Arcade Card ... so it's a distraction that you would be better to ignore.

The 1MB sounds like it will do absolutely everything that both new SCD development and SCD translations need ... and I think that it's more important to fulfill those 98% of wishes rather than over-specify and never get it done.

Ideally I'd like for a new system card to support Arcade Card titles as well. 

I left out Arcade Card support for the following reasons:
*It needs a larger CPLD
*The majority of the library is Super CD / 3.0 games.
*I am not fond of its "enhancements" (extra memory is accessed through a window rather than directly).

However, I can change the amount of RAM on the CD Stupid Card to 2MB (just adding a second SRAM chip and extra banking bit), if it's actually useful to people. But this will obviously raise the card cost.

Necromancer

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 21366
Re: CD Stupid Card 4.0
« Reply #9 on: March 03, 2015, 07:22:45 AM »
The name is misleading, this isn't stupid at all.

I assumed it was named after me.  Tres flattering.   
U.S. Collection: 97% complete    155/159 titles

Opethian

  • Hero Member
  • *****
  • Posts: 3299
Re: CD Stupid Card 4.0
« Reply #10 on: March 03, 2015, 07:32:53 AM »
Ideally I'd like for a new system card to support Arcade Card titles as well. 

there is no shortage of arcade cards there is no reason to implement this or SFII' support


[Mon 16:27] <BlueBMW> i wouldnt sell an unmolested duo hehe.  I molest the crap outta of em before they leave me

esteban

  • Hero Member
  • *****
  • Posts: 24063
Re: CD Stupid Card 4.0
« Reply #11 on: March 03, 2015, 07:33:19 AM »
I hope the tech gurus share their thoughts soon...

As a mere layperson, I am hopeful...
  |    | 

poponon

  • Sr. Member
  • ****
  • Posts: 320
Re: CD Stupid Card 4.0
« Reply #12 on: March 03, 2015, 07:35:27 AM »
Ideally I'd like for a new system card to support Arcade Card titles as well.

Agreed!! This'll save some of us from having to shell out for the new v2 turbo everdrive as well.But I'll be ecstatic regardless of what you guy's release!!!

 Would you guys consider also posting about this on other forums ? I'm sure there are a lot more people out there that'd be interested in this thing.

seieienbu

  • Hero Member
  • *****
  • Posts: 1986
Re: CD Stupid Card 4.0
« Reply #13 on: March 03, 2015, 08:45:50 AM »


I left out Arcade Card support for the following reasons:
*It needs a larger CPLD
*The majority of the library is Super CD / 3.0 games.
*I am not fond of its "enhancements" (extra memory is accessed through a window rather than directly).

However, I can change the amount of RAM on the CD Stupid Card to 2MB (just adding a second SRAM chip and extra banking bit), if it's actually useful to people. But this will obviously raise the card cost.

If it's too much of a hassle then by all means leave it out.  There aren't that many games that use it and I figure at this point most people who want one have one.

I just think it'd be cool to have a single system card that would play all (not counting the pr0n-o cd games, I guess) CD games, translations, etc.  Between this new system card and an everdrive It would be easier to start Obeying with reckless abandon as you'd have (almost) the entire library available without even having to worry about region compatibility.
Current want list:  Bomberman 93

ccovell

  • Hero Member
  • *****
  • Posts: 2245
Re: CD Stupid Card 4.0
« Reply #14 on: March 03, 2015, 09:42:06 AM »
A cheat menu that works off of the top IRQ vectors would be what I'd want... perhaps this could have a flash ROM region for customization.  If the IRQ vectors aren't enough for games, then some hardware monitoring of the pins on the HuCard might work.

That's my blue-sky "enhancement".