Page 1 of 2

EPROM Pin Swapper

Posted: Sun Feb 19, 2012 5:20 am
by FARID
Image

Download EPROM Pin Swapper v1.0

Virus Total : 0 / 43

Currently support for :
27C010
27C020
27C040
27C080

Source code is also included, it is in VB6.
There are a lot of bugs in it, use it at your own risk.

Posted: Sun Feb 19, 2012 12:30 pm
by koitsu
Given the screenshot, what exactly is it "swapping"? All I see is a pinout of an EPROM which lets you adjust what each pin is assigned to. You can't change the functions of an EPROM pin, so why are the pins changeable?

I think I may be misunderstanding because I envision the program to be something that converts the pinouts between two types of chips. For example, mask ROM <-> 27C080, or mask ROM <-> 2mbit EEPROM. You get the idea. And for that to work, you'd really need to show two chips and a chart (either wiring diagram, or "pin 1 of mask ROM --> pin 7 of EEPROM", you get the idea.

What am I missing here?

Posted: Sun Feb 19, 2012 1:09 pm
by MottZilla
I think it can swap address lines and data lines by reorganizing the ROM data.

Posted: Sun Feb 19, 2012 1:16 pm
by infiniteneslives
Very nice! I always just thought about doing this physically with the programmer pins assuming you weren't using flash. But just rearranging the ROM makes a lot more sense.

Posted: Sun Feb 19, 2012 8:03 pm
by MottZilla
With a few Nintendo pinouts address lines actually are swapped compared to standard eproms so doing this saves you rerouting a few pins. On SNES with 27c801s you can use that swapbin to only have to rewire something like 2 or 3 pins.

Posted: Fri Feb 24, 2012 2:41 pm
by nintendo2600
awesome!

Posted: Sat Feb 25, 2012 2:18 am
by jpx72
Wow that IS awesome!!!

Posted: Thu Mar 01, 2012 1:31 am
by Karatorian
Definitely a cool idea. Seems to work perfectly under Wine as well.

Posted: Mon Mar 05, 2012 2:24 am
by jpx72
How hard would be to implement also exchanging Data with Adress lines? It's a chunk of data being reorganised, so there must be an algorythm to allow this change... Hmm?

Posted: Mon Mar 05, 2012 6:14 am
by l_oliveira
jpx72 wrote:How hard would be to implement also exchanging Data with Adress lines? It's a chunk of data being reorganised, so there must be an algorythm to allow this change... Hmm?
Swapping data pins with addresses is impossible simply because data pins are outputs and address pins are inputs.

Re: EPROM Pin Swapper

Posted: Sat Feb 16, 2013 11:54 am
by Punch
How does this work anyway? Awesome piece of software, didn't knew that was possible

Re: EPROM Pin Swapper

Posted: Sat Feb 16, 2013 12:03 pm
by l_oliveira
Punch wrote:How does this work anyway? Awesome piece of software, didn't knew that was possible
It just reorganizes the rom image file so you can swap out how the pins on the eprom (for purposes such as simplify board layout) are connected to the host system, while keeping the final result (data being read) same as if the eprom was connected in the normal way.

As it was mentioned on the thread, the only reason to do this is save time/effort on board layout.

Re: EPROM Pin Swapper

Posted: Sat Feb 16, 2013 5:30 pm
by blargg
Imagine you take an EEPROM in circuit and swap the D0 and D1 connections. The NES will get the wrong bits. Now, in the file on the PC, swap these bits, then rewrite the EEPROM. Now the NES gets the right data.

Imagine the same for the address lines. Swap A0 and A1. This causes the NES to read bytes in this order: 0, 2, 1, 3, 4, 6, 5, 7... So just reorder them like this in the file on the PC and rewrite the EEPROM, now the NES gets things correctly.

Similar for rearranging the data pins among each other, and the address pins among each other, just a reordering of bytes/bits within bytes.

Version 1.2

Posted: Sat Jul 06, 2013 9:44 pm
by FARID
Image

Download EPROM Pin Swapper Version 1.2

Changes :
Added 29F040
Bug fix for 27C080

Still it is very buggy so use it at your own risk.

Re: EPROM Pin Swapper

Posted: Sun Jul 07, 2013 7:24 am
by wyndcrosser
Just to confirm. This would like me change the what the pins do, instead of having to re-wire correct?