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?
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.
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.
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.
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.
No sense wasting the original maskrom. Not like the power usage or something is going to matter.
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.
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.
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.
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!
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.
Or you could just use a chip like 74LS139 to split the chip enable...
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.
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.
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.
Quote:
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.
I had just clipped the /ce pin on the original mask rom, I wasn't aware you'd need a pull up resistor on an unattached pin.
regardless, the case was glued shut early this week, so I'm not getting inside it again without damaging it further than I did opening it in the first place.
Those famicom carts are hard to open without damaging.
Glued shut before testing? ;(
Yes the /CE pin still goes to the ROM so if you don't pull it high my guess is it'll drift low and enable the ROM.
I tested it, it works in english, which is enough for me.
I'll try this again on a game I care less about working right so I won't feel bad if I ruin it.