Mask ROM and EEPROM switch?
Moderators: B00daW, Moderators
Mask ROM and EEPROM switch?
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?
Is this possible?
Would it be as simple as using a small project board and bipolar transistors and resistors hooked into a mechanical switch?
- infiniteneslives
- Posts: 2102
- Joined: Mon Apr 04, 2011 11:49 am
- Location: WhereverIparkIt, USA
- Contact:
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.
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.
- infiniteneslives
- Posts: 2102
- Joined: Mon Apr 04, 2011 11:49 am
- Location: WhereverIparkIt, USA
- Contact:
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.
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.
- infiniteneslives
- Posts: 2102
- Joined: Mon Apr 04, 2011 11:49 am
- Location: WhereverIparkIt, USA
- Contact:
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 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.
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.
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.
- infiniteneslives
- Posts: 2102
- Joined: Mon Apr 04, 2011 11:49 am
- Location: WhereverIparkIt, USA
- Contact:
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!
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!
- l_oliveira
- Posts: 409
- Joined: Wed Jul 13, 2011 6:51 am
- Location: Brasilia, Brazil
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 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.
- l_oliveira
- Posts: 409
- Joined: Wed Jul 13, 2011 6:51 am
- Location: Brasilia, Brazil
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.
- infiniteneslives
- Posts: 2102
- Joined: Mon Apr 04, 2011 11:49 am
- Location: WhereverIparkIt, USA
- Contact:
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.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.
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.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.
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.