Mask ROM and EEPROM switch?

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderators: B00daW, Moderators

DNSDies
Posts: 87
Joined: Thu May 03, 2012 10:26 am

Mask ROM and EEPROM switch?

Post by DNSDies »

I have a copy of FF3j that I wanted to slap into an NTSC-U cart with a gyromite converter, but I was wondering if it would be possible to leave the original mask ROM on the board, and use a switch (like a small pinhole button or dipswitch) to switch between a translated version burned to an EEPROM and the default Japanese mask ROM on the fly.

Is this possible?

Would it be as simple as using a small project board and bipolar transistors and resistors hooked into a mechanical switch?
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Post by infiniteneslives »

If it's just the PRG memory that needs to be swapped you can wire the two memories in parallel COMPLETELY pin for pin except the /CE pin. You could have a (EDIT: SPDT) switch that moved the /CE pin from the MMC3 to select one chip's /CE at a time to select between the standard and translated version.
Last edited by infiniteneslives on Thu May 03, 2012 5:13 pm, edited 1 time in total.
User avatar
MottZilla
Posts: 2835
Joined: Wed Dec 06, 2006 8:18 pm

Post by MottZilla »

You have to decide where you want to make the hole for a switch or dipswitch to be mounted. Then you have to decide if you'd rather bend the maskrom /CE pin up along with the EPROM pin, or if you want to cut the PCB trace and wire from another point. But as he described, you just have to wire up a switch to the /CE so that /CE is only connected to one MaskROM at a time. Others have done similar things before, it does work. I don't think you will need any resistors, caps, or other such things.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Post by infiniteneslives »

MottZilla wrote:I don't think you will need any resistors, caps, or other such things.
Yeah the only other thing you might want to add is pull up resistors on the /CE pins. That way when the MMC3 isn't driving them they are pulled high to prevent the unselected chip from becoming active.
User avatar
Memblers
Site Admin
Posts: 3901
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Post by Memblers »

I would just use a larger EPROM that contains both, and put a switch on the upper address line. Would be hard to tell the difference when it's put together.
User avatar
MottZilla
Posts: 2835
Joined: Wed Dec 06, 2006 8:18 pm

Post by MottZilla »

No sense wasting the original maskrom. Not like the power usage or something is going to matter.
DNSDies
Posts: 87
Joined: Thu May 03, 2012 10:26 am

Post by DNSDies »

It's really just as simple as wiring the roms in parallel and switching the /CE pins?
That is laughably simple. I think I can get a couple of pull up resistors too. Couldn't hurt.

FF3j uses a 4MBit mask rom, right?
would at29c040a be a good EEPROM to use?

as far as the switch itself, I was thinking of just using a tiny tactile button switch and attaching it to the cart near the bottom, and drilling a small hole to press it with a paperclip.

I want the switch to be as invisible as possible.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Post by infiniteneslives »

DNSDies wrote:as far as the switch itself, I was thinking of just using a tiny tactile button switch and attaching it to the cart near the bottom, and drilling a small hole to press it with a paperclip.
Careful you might have a hard time finding a SPDT switch as a tact pushbutton. If you went with memblers' method you'd only need an ON/OFF switch which is probably easier to get. MOST tact push buttons are momentary which won't work. Unless you put some logic or an MCU behind it.
DNSDies
Posts: 87
Joined: Thu May 03, 2012 10:26 am

Post by DNSDies »

this looks like it would work:
http://www.frys.com/product/2874654

Also, I just had a cool idea.

a mercury switch that uses the Japanese rom in a top loader or Famicom console, and english in a front loader.

that would be brilliant.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Post by infiniteneslives »

Yeah that switch from fry's should work, it's a little bigger than I imagined you were looking for.

The mercury switch idea is pretty cool. I'm guessing that the mercury switch is basically SPST. So you'd have to use it's output to drive some tristate buffers or something if you used my method of toggling the /CE lines between memories. With memblers' solution the mercury switch would just drive the highest address line nice and easy.

I'm not sure how well it would work (if there are any limitations to speed) but you MIGHT be able to use my solution with just two mercury switches. Orient them so that one is always open and the other closed. Then run the /CE signal through both switches that then connect to the memories. Only one would actually get the /CE signal when flat or standing. I would investigate how well those switches pass relatively high speed signals. They may have some capacitance to them that wouldn't allow the 2Mhz /CE signal to pass through well enough.

If you play around with the mercury switches be sure to post up some pictures!
DNSDies
Posts: 87
Joined: Thu May 03, 2012 10:26 am

Post by DNSDies »

I've seen some posts in other parts of the internet showing that an 8mhz signal can pass through a mercury tilt switch without issue.

They are apparently popular in thermometers used to regulate an air conditioner.
User avatar
l_oliveira
Posts: 409
Joined: Wed Jul 13, 2011 6:51 am
Location: Brasilia, Brazil

Post by l_oliveira »

Or you could just use a chip like 74LS139 to split the chip enable...
DNSDies
Posts: 87
Joined: Thu May 03, 2012 10:26 am

Post by DNSDies »

I just tried to switch the /ce pins on FF3 and it doesn't work.

The game boots and locks up as soon as it tries to read the intro text from the ROM.

Severing the +5V line from the original mask rom fixed it though.

Looks like even if the /ce pin is switched off, the cart still attempts to read from the rom if it is powered.

I'll try again later by switching the +5V line and leaving /ce connected on both.

If the rom isn't receiving power, it shouldn't be read.
User avatar
l_oliveira
Posts: 409
Joined: Wed Jul 13, 2011 6:51 am
Location: Brasilia, Brazil

Post by l_oliveira »

DNSDies wrote:I just tried to switch the /ce pins on FF3 and it doesn't work.

The game boots and locks up as soon as it tries to read the intro text from the ROM.

Severing the +5V line from the original mask rom fixed it though.

Looks like even if the /ce pin is switched off, the cart still attempts to read from the rom if it is powered.

I'll try again later by switching the +5V line and leaving /ce connected on both.

If the rom isn't receiving power, it shouldn't be read.

The right way of doing it with the 6502 (connecting WRAM and PRG ROM) is have /OE tied to GND and use /CE to select the chip.. /WE on the WRAM goes straight to /RW (Or to the mapper chip depending on the mapper design).

I believe that MMC3 specifically controls the WRAM /WE pin for write protection. If you wire that wrong a lot of games will glitch.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Post by infiniteneslives »

DNSDies wrote:Looks like even if the /ce pin is switched off, the cart still attempts to read from the rom if it is powered.
Then you're doing something wrong. All the other memories on the NES and any computer system from that time /CE control reads/writes no problem.
I'll try again later by switching the +5V line and leaving /ce connected on both.

If the rom isn't receiving power, it shouldn't be read.
That is a BAD idea. I'm sure the ROM is pretty robust but you'll end up powering the chip through the address and data lines that do have 5v power going to them.

Did you remember to pull up the /CE line of the rom that's not running?

If you're having trouble, posting a schematic is usually beneficial and allows us to give better feedback.
Post Reply