SuperFX Multicart

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
User avatar
Hojo_Norem
Posts: 132
Joined: Mon Apr 16, 2007 10:07 am
Contact:

Re: SuperFX multigame experement

Post by Hojo_Norem »

qwertymodo wrote:
Hojo_Norem wrote:
getafixx wrote:What type of ROM chip do you have on that sweet looking board? Is that a 5V flash chip?
The chips I got are AM29F016D, 16Mb 8 bit 5V in a SO44 package.
How are you handling the CE/OE lines? The AM29F* chips don't work with their CE/OE lines tied low, since the address is latched on the falling edge of whichever of the two goes low later. I'd love to build a GSU dev cart, probably nothing this fancy, but I would like to use a flash ROM, and the CE/OE decoding is the main thing keeping me from being able to use Flash ROM with the GSU.
I am fairly confident it should work without any monkeying around with /CE/OE any more thats needed to provide bankswitching. I'm no expert but as fas as I can tell there is nothing stated that having both held low wont work, in fact this segment of the datasheet:
Requirements for Reading Array Data
To read array data from the outputs, the system must drive the CE# and OE# pins to V IL . CE# is the power control and selects the device. OE# is the output control
and gates array data to the output pins. WE# should remain at V IH . The internal state machine is set for reading array data upon device power-up, or after a hardware reset. This ensures that no spurious alteration of the memory content occurs during the power transition. No command is necessary in this mode to obtain array data. Standard microprocessor read cycles that assert valid addresses on the device address inputs produce valid data on the device data outputs.
I understand that doesn't necessarily guarantee it will work but this along with information in the AC characteristics table gives me confidence it will. The AC characteristics table lists delay values for /OE -> Data, /CE -> Data where /OE=low and Address -> Data where both /OE and /CE are low.

I've had the parts to build my finished pcb but I need to build a custom programmer (a uIC with some GPIO being fed from a serial link) and software to drive it. I could make a adapter for my Willem but eventually I want to be able to have a generic firmware running on the pcb's uIC and then just upload configuration data to it while programming the flash.

If this works as well as I hope and there is enough interest I might do a re-design. A single ~128Mb 3.3v flash chip with level shifters and regulator would be much easier to source than ageing EOL 5v stuff... heck, you can get 2Gigabit parallel 3.3v flash now (8 bit even I think)
Insert witty sig. here...
qwertymodo
Posts: 775
Joined: Mon Jul 02, 2012 7:46 am

Re: SuperFX Multicart

Post by qwertymodo »

I tried array reads with CE/OE held low on a few different FlashROMs yesterday before I posted and it wasn't working. However, that may have just been a copy-paste error wrt my bit-bang read function. I'll try re-writing the read function from scratch and see if I can get it to work.
User avatar
Hojo_Norem
Posts: 132
Joined: Mon Apr 16, 2007 10:07 am
Contact:

Re: SuperFX Multicart

Post by Hojo_Norem »

i just remembered another thing, my pcb is designed for the GSU2 which has a /CE output afaik.
Insert witty sig. here...
User avatar
Ramsis
Posts: 341
Joined: Sun Jul 01, 2012 6:44 am
Location: Lion's den :3
Contact:

Re: SuperFX Multicart

Post by Ramsis »

Markfrizb wrote:Ah, something like this???

http://youtu.be/Vmpn4pTsUPk
Got myself one of those -- thanks again, Mark :) -- and it works fantastic! :D :D
Some of my projects:
Furry RPG!
Unofficial SNES PowerPak firmware
(See my GitHub profile for more)
qwertymodo
Posts: 775
Joined: Mon Jul 02, 2012 7:46 am

Re: SuperFX Multicart

Post by qwertymodo »

Hojo_Norem wrote:i just remembered another thing, my pcb is designed for the GSU2 which has a /CE output afaik.
That makes quite a bit of difference. Could be that some flash chips work with CE and OE tied low, but actually driving CE makes it much more likely to work. I'll try again on my end, it's possible I did something wrong when I tried to read it with CE and OE held low, not sure. In any case, it would be good to figure out for the sake of GSU-1 carts.
Markfrizb
Posts: 540
Joined: Sun Dec 02, 2012 8:17 am
Location: East Texas

Re: SuperFX Multicart

Post by Markfrizb »

qwertymodo wrote:
Hojo_Norem wrote:i just remembered another thing, my pcb is designed for the GSU2 which has a /CE output afaik.
That makes quite a bit of difference. Could be that some flash chips work with CE and OE tied low, but actually driving CE makes it much more likely to work. I'll try again on my end, it's possible I did something wrong when I tried to read it with CE and OE held low, not sure. In any case, it would be good to figure out for the sake of GSU-1 carts.

On the FX carts, the CE lines are hard wired low. The GSU doesn't toggle them. only the OE line is used by the GSU.
So you can tie the CE low and connect the OE to the GSU/Mask rom OE. I use the CE line to select between the ROMs (cause there are 3 roms on my cart). Pulling the CE line high on the roms that you DON'T want to be read and pull the CE line low on the ROM you do want read. This is of course if you use more than 1 flash rom.

hope this helps
qwertymodo
Posts: 775
Joined: Mon Jul 02, 2012 7:46 am

Re: SuperFX Multicart

Post by qwertymodo »

Yeah, that makes sense as long as either CE or OE is toggling. Toggling OE and using CE to select between ROMs actually makes more sense. It's just when both are tied low that I don't think works with Flash ROMs (or at least I haven't been able to get it to work).
Markfrizb
Posts: 540
Joined: Sun Dec 02, 2012 8:17 am
Location: East Texas

Re: SuperFX Multicart

Post by Markfrizb »

qwertymodo wrote:Yeah, that makes sense as long as either CE or OE is toggling. Toggling OE and using CE to select between ROMs actually makes more sense. It's just when both are tied low that I don't think works with Flash ROMs (or at least I haven't been able to get it to work).
Yeah, if you have more than 1 rom, then tieing them both low is a buss conflict. That's not just flash roms but ALL roms.
Reading a rom (any rom - flash or eprom) is a standard reading of address lines. The "flash" aspect is really just for programming. You'll want to pull the WE line high with a resistor (10K) in your design to prevent accidental writes after you have programmed the roms.


EDIT: also the flash roms have a reset line. And usually the reset line is pulled high. It's hard to describe its function but it acts like a CE. Maybe someone here can explain it better....


PM me if you want to borrow (or buy) one of my carts.

Mark
Post Reply