It is currently Mon Sep 23, 2019 1:01 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 3 posts ] 
Author Message
PostPosted: Sat Oct 28, 2006 9:56 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11412
Location: Rio de Janeiro - Brazil
I'm sure I've already seem (maybe not for the NES though) carts using more than one ROM chip to simulate a larger chip. I was just wondering how could I go about doing that to a devcart.

I'm sure it would have something to do with the highest address line (from the mapper chip) and the /OE pins in the ROMs. You know, the highest address line will define which ROM to use, but how? Would I need any extra hardware for doing something like this?

On a somewhat related issue, I was reading about Sega Genesis/Megadrive devcarts, and it seems that you can use 2 8-bit ROMs to simulate a 16-bit ROM that the console expects. Can anyone confirm that all you have to do for this to work is connect all the address lines to both ROMs, and combine D0-D7 from each ROM to form a 16-bit (D0-D15) value?


Top
 Profile  
 
 Post subject:
PostPosted: Sun Oct 29, 2006 1:08 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7741
Location: Chexbres, VD, Switzerland
What you describe is very easy. Some SNES games use 2 ROMs, and sometimes even 2 ROMs that doesn't have the same size, allowing fun overall ROM size : 12MBit (8+4), 20MBit (16+4), 24MBit (16+8) and 48MBit (32+16), and maybe other combinations.
What you have to do is have the upper adress line go to /CE of the "low" chip, and the inversion of the upper adress line go to /CE of the "high" chip. You'll need some logic gate (typically 74HC04 hex inverter) to do this, but if you don't have room for this you could use a transistor and two resistors to invert the upper adress.
/OE would also work, but I'd reall recommand doing it to /CE. What's the difference you mean ? /OE just place the "totem pole" outputs in high impedance state, meaning that the outpouts are floating, but the whole chip is functionnal.
/CE will allow you to totally disable the chip, so it will absorb less current from the power supply. Also it will take a bit more time to wake up once /CE pass from high to low, but I don't think this is significant for the NES speed.

If you have more than 2 ROMs, you'll need definitely a 74HC139 adress decoder, wich does everything for you : You select wich chip you want to use in your input and it outputs the /CE signal for each chip.

If you want to simulate a 16-bit ROMs, you'll just have to write all LSB to a ROM, and all MSB to another ROM, and place the same adress lines to both chips. Then, the chips with MSB data will handle D8-D15 instead of D0-D7. However this is a pain to programm the chips.

_________________
Life is complex: it has both real and imaginary components.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Oct 29, 2006 1:59 am 
Offline

Joined: Wed Mar 09, 2005 9:08 am
Posts: 466
I've actually done this on a Years Behind cart when I lacked a 64kB EPROM but had lots of 32kB ones. I just piggybacked the EPROMs, soldering one of them *underneath* the circuit board, and used a 74HC14 with some ugly wires to control /OE on both chips. Cart worked fine, though it turned out remarkably heavier than the other ones which used a single 64kB EPROM. :)

I've also been thinking that this might be a nice way of putting a translated version of a Famicom game on a cart while keeping the original to be selectable thru a hardware switch. That way you don't have to waste twice as large an xPROM than usual if you want both versions on one cart. I never got around to try this though.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group