how to use Use 27C040 in PCB for M27C801

A place that you can discuss reproduction of classic titles or "licensed-for-reproduction" homebrew for personal use.

Moderators: B00daW, Moderators

Forum rules
1. NO BLATANT PIRACY. This includes reproducing homebrew less than 10 years old, with the exception of free software.
2. No advertising your reproductions, with the exception of free software.
3. Be nice. See RFC 1855 if you aren't sure what this means.
Kayumba
Posts: 87
Joined: Sun Mar 01, 2020 2:36 am

Re: how to use Use 27C040 in PCB for M27C801

Post by Kayumba » Mon Jun 01, 2020 3:25 am

tepples wrote:
Sun May 31, 2020 8:26 pm
You still need to strip the 512-byte copier header before programming the EPROM.

In a sane world, a tool to strip the header would change the extension from .smc (for Front's Super Magicom copier) to .sfc (Super Famicom binary), and the .sfc is what you'd burn. Compare Genesis, where the rule is that stripping the header and deinterleaving a .smd format ROM (for Front's Super Magic Drive copier) produces a .gen (Genesis binary). So set the ROM conversion tool to just strip the header.
So, to use file in "EPROM pin swapper" I changed the extension of a .smc file to .bin

When I open "EPROM pin swapper", and choose "27C040 512KB", I see that:
Image:
Image

I see all adresse for pins.
I can change pins adresse accept pin 24,
and pin31 that dont have "/OE" can't be chosen, so I tape it manually, see picture:
Image
Here I what I can get at final:
Image
After that I tried to program .bin file like that => no success. Nothing works.

About "header" , in Rom Utility , I see that there is no "header" in my ROM file.
So I can not remove it.
Image

poorstudenthobbyist wrote:
Sun May 31, 2020 7:42 pm
...Maybe attach some pictures?
Here is my bended pins in my PCB :
Image
Image
Image

Just for more information, here is my PCB connections pins for sockets (LoROM game):
EPROM socket <---------> PCB cartridge connectors
Pin 1 ----------------------> Pin 43 (A17)
pin 2 ----------------------> Pin 44 (A18)
pin 24 ---------------------> Pin 49 (/OE)
pin 30 ---------------------> Pin 45 (A19)
pin 31----------------------> Pin 42 (A16)

Maybe there is some mistake?
If yes, strange, cause it works for M27C801 SwapBIN roms.

Kayumba
Posts: 87
Joined: Sun Mar 01, 2020 2:36 am

Re: how to use Use 27C040 in PCB for M27C801

Post by Kayumba » Mon Jun 01, 2020 5:11 am

I found !
:lol:

For my PCB (for LoROM games) , I have to bend next pins on 27C040 EPROM :
pin 1
pin 2
pin 30
pin 31
---------------
And connect them like that :
27C040______________________32-pin socket Mask ROM
Pin 1 (VPP)--------------> Pin 32 (VCC)
pin 2 (A16)--------------> Pin 31 (A16)
pin 30 (A17)--------------> Pin 1 (A17)
pin 31 (A18)--------------> Pin 2 (A18)
--------------

Like that it works great !

User avatar
Fisher
Posts: 1098
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: how to use Use 27C040 in PCB for M27C801

Post by Fisher » Mon Jun 01, 2020 4:25 pm

That's great!!
You are aware of the bug fix on v1.2, right?
FARID wrote:
Sat Jul 06, 2013 9:44 pm
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.
Altough the author says it's buggy, it worked with me in the past.
Anyway, that's great that you have the problem figured out.
Congratulations, and have fun!! :-D

Kayumba
Posts: 87
Joined: Sun Mar 01, 2020 2:36 am

Re: how to use Use 27C040 in PCB for M27C801

Post by Kayumba » Tue Jun 02, 2020 7:01 am

Fisher wrote:
Mon Jun 01, 2020 4:25 pm
That's great!!
You are aware of the bug fix on v1.2, right?
FARID wrote:
Sat Jul 06, 2013 9:44 pm
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.
Altough the author says it's buggy, it worked with me in the past.
Anyway, that's great that you have the problem figured out.
Congratulations, and have fun!! :-D
Yeah!
I'am happy to resolve with help of your all.
Thanks for community :beer:

PS: v1.2 was impossible to download.

Here is my final version of my PCB :
Image

User avatar
poorstudenthobbyist
Posts: 123
Joined: Fri Jun 24, 2016 4:20 pm

Re: how to use Use 27C040 in PCB for M27C801

Post by poorstudenthobbyist » Tue Jun 02, 2020 7:13 am

Nice! Very clean, what program do you use for layout? I'm working on a multicart board myself, finally worked out the kinks last week.

Kayumba
Posts: 87
Joined: Sun Mar 01, 2020 2:36 am

Re: how to use Use 27C040 in PCB for M27C801

Post by Kayumba » Tue Jun 02, 2020 7:21 am

poorstudenthobbyist wrote:
Tue Jun 02, 2020 7:13 am
Nice! Very clean, what program do you use for layout? I'm working on a multicart board myself, finally worked out the kinks last week.
Thank you.
I appreciate that you like it.
I use EasyEDA.
https://easyeda.com/

PS: I know you web site.
I lear many things from your site.
You make me wanted to do it !
Thanks for it !
:D

User avatar
poorstudenthobbyist
Posts: 123
Joined: Fri Jun 24, 2016 4:20 pm

Re: how to use Use 27C040 in PCB for M27C801

Post by poorstudenthobbyist » Tue Jun 02, 2020 7:28 am

I've heard of EasyEDA a lot but that board rendering is really nice. I need to check it out myself. I've been using the same version of Eagle for so long, over 6 or 7 years now, I should probably try something different!

Glad my site helped you out. Always nice to hear :)

Kayumba
Posts: 87
Joined: Sun Mar 01, 2020 2:36 am

Re: how to use Use 27C040 in PCB for M27C801

Post by Kayumba » Tue Jun 02, 2020 7:34 am

poorstudenthobbyist wrote:
Tue Jun 02, 2020 7:28 am
I've heard of EasyEDA a lot but that board rendering is really nice. I need to check it out myself. I've been using the same version of Eagle for so long, over 6 or 7 years now, I should probably try something different!

Glad my site helped you out. Always nice to hear :)
:wink:
You welcome.
Glad to talk with you, you are for me like "Sensei" (先生) of SNES reproduction !
Image

User avatar
poorstudenthobbyist
Posts: 123
Joined: Fri Jun 24, 2016 4:20 pm

Re: how to use Use 27C040 in PCB for M27C801

Post by poorstudenthobbyist » Tue Jun 02, 2020 7:37 am

Hahaha you should talk with some of the other people here, they are my Senseis!

Kayumba
Posts: 87
Joined: Sun Mar 01, 2020 2:36 am

Re: how to use Use 27C040 in PCB for M27C801

Post by Kayumba » Tue Jun 02, 2020 8:45 am

poorstudenthobbyist wrote:
Tue Jun 02, 2020 7:37 am
Hahaha you should talk with some of the other people here, they are my Senseis!
Maybe,
but I dont think that they made something like you, your website.
You shared your knowledges with others.
I wish that God of Nintendo will protect you forever from all kind of virus, like Corona and other shit...
:lol:

User avatar
Fisher
Posts: 1098
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: how to use Use 27C040 in PCB for M27C801

Post by Fisher » Thu Jun 04, 2020 7:02 pm

That's great!
I admire PoorStudentHobbist's work too!! :-D

I could download the file, it was a bit tricky so I'm posting it here, just in case...
EPROM_Pin_Swapper_v1.2.zip
Farid's EPROM pin swapper v1.2
(603.14 KiB) Downloaded 61 times

Kayumba
Posts: 87
Joined: Sun Mar 01, 2020 2:36 am

Re: how to use Use 27C040 in PCB for M27C801

Post by Kayumba » Wed Jun 10, 2020 4:17 pm

Fisher wrote:
Thu Jun 04, 2020 7:02 pm
That's great!
I admire PoorStudentHobbist's work too!! :-D

I could download the file, it was a bit tricky so I'm posting it here, just in case...
EPROM_Pin_Swapper_v1.2.zip
Cool !
Thank you.
:)

Kayumba
Posts: 87
Joined: Sun Mar 01, 2020 2:36 am

Re: how to use Use 27C040 in PCB for M27C801

Post by Kayumba » Wed Sep 16, 2020 4:16 am

Hello again,

When no swapbinning,
I found that some custom PCB use different connections.
M27C801 pin 24 (/OE) -----> Cartridge connector pin 23 (/RD)
M27C801 pin 24 (/OE) -----> Cartridge connector pin 49 (/OE)

I'am confuse.
Why so?
For me the second one is the right one.
Why connect to pin 23 (/RD) of Cartridge connector ?

I tested the both, two version works fine.
:roll:

lidnariq
Posts: 9681
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: how to use Use 27C040 in PCB for M27C801

Post by lidnariq » Wed Sep 16, 2020 11:02 am

Kayumba wrote:
Wed Sep 16, 2020 4:16 am
I found that some custom PCB use different connections.
M27C801 pin 24 (/OE) -----> Cartridge connector pin 23 (/RD)
M27C801 pin 24 (/OE) -----> Cartridge connector pin 49 (/OE)

I am confuse.
Why so?
Nintendo released PCBs with both layouts. Pedantically, only the former is correct. A lot of people copied certain Nintendo PCBs.

It's similar to how some Genesis PCBs swap the endianness of the ROM. (So the ROM holds little-endian 68k code, even though the 68k was only ever big-endian)
Why connect to pin 23 (/RD) of Cartridge connector ?
A mask ROM (or UVEPROM) works like this:

/CE is low? Consume more power. Start loading value from specified address. This is slow - the source of the speed number.
/OE is low? If /CE is also low, drive data bus with value loaded. This is fast - usually about half the time of the above.

Meanwhile, the SNES drives cart 23(/RD) and cart 49(/ROMSEL) like this:

cart 49
is 1 if A23 through A17 is 7'b0111111 (the location where the SNES's internal W-RAM is)
is 1 if A15 is low and A22 is low
is 0 otherwise

cart 23 is 0 if 65816 φ2 is high and R/W is high.

Conceptually, cart49(/ROMSEL) is "who am I talking to". ROM /CE is "I'm being addressed". So they should match.
cart23(/RD) is "something should drive the data bus". ROM /OE is "I'll drive the data bus". So they should match.

However, because the data bus is only driven when both /CE is low and /OE is low, it'll work both ways.

On a cycle-by-cycle basis, the /RD and /ROMSEL lines do something like this:

Code: Select all

CPU cyc 0       1       2       3     4
databus LDAabs  $10     $42     $02
/ROMSEL ________________________^^^^^^___----
    /RD ^^^_____^^^_____^^^_____^^^___^^^----

Kayumba
Posts: 87
Joined: Sun Mar 01, 2020 2:36 am

Re: how to use Use 27C040 in PCB for M27C801

Post by Kayumba » Wed Sep 16, 2020 11:24 am

lidnariq wrote:
Wed Sep 16, 2020 11:02 am
Kayumba wrote:
Wed Sep 16, 2020 4:16 am
I found that some custom PCB use different connections.
M27C801 pin 24 (/OE) -----> Cartridge connector pin 23 (/RD)
M27C801 pin 24 (/OE) -----> Cartridge connector pin 49 (/OE)

I am confuse.
Why so?
Nintendo released PCBs with both layouts. Pedantically, only the former is correct. A lot of people copied certain Nintendo PCBs.

It's similar to how some Genesis PCBs swap the endianness of the ROM. (So the ROM holds little-endian 68k code, even though the 68k was only ever big-endian)
Why connect to pin 23 (/RD) of Cartridge connector ?
A mask ROM (or UVEPROM) works like this:

/CE is low? Consume more power. Start loading value from specified address. This is slow - the source of the speed number.
/OE is low? If /CE is also low, drive data bus with value loaded. This is fast - usually about half the time of the above.

Meanwhile, the SNES drives cart 23(/RD) and cart 49(/ROMSEL) like this:

cart 49
is 1 if A23 through A17 is 7'b0111111 (the location where the SNES's internal W-RAM is)
is 1 if A15 is low and A22 is low
is 0 otherwise

cart 23 is 0 if 65816 φ2 is high and R/W is high.

Conceptually, cart49(/ROMSEL) is "who am I talking to". ROM /CE is "I'm being addressed". So they should match.
cart23(/RD) is "something should drive the data bus". ROM /OE is "I'll drive the data bus". So they should match.

However, because the data bus is only driven when both /CE is low and /OE is low, it'll work both ways.

On a cycle-by-cycle basis, the /RD and /ROMSEL lines do something like this:

Code: Select all

CPU cyc 0       1       2       3     4
databus LDAabs  $10     $42     $02
/ROMSEL ________________________^^^^^^___----
    /RD ^^^_____^^^_____^^^_____^^^___^^^----
Wow !
so detailed answer.
I'am not sure to understand all, but...
Last line of your answer is most important for me :lol:
Thank you very much man :beer:

Post Reply