Reorganize documentation on boards and ROM pinouts

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Reorganize documentation on boards and ROM pinouts
by on (#69617)
Currently the doccumentation on the pinouts is a big mess.
I think we should determine a way how to organize things.

Currently there is one wiki page per mapper plus one wiki page per board, exept non-Nintendo mappers, and Nintendo mappers who only have one board, which have just one page. This leads to info being present on multiple pages, which can get redundant.

The pinouts for the ROM is almost the same for all Nintendo boards, except a few (such as SL1ROM) which have non-Nintendo standard pinout. (I don't talk about Nintendo's ROMs of size >64k having a non-standard pinout, I talk about the pinouts being different from other Nintendo carts).

So maybe a few pages should be merged, and info about pinouts should be centralized somewhere. (because put it in many pages once per board to have the same info over and over again isn't optimal).
Any ideas are welcome.

by on (#69621)
It makes sense in some ways to have a page for the mapper chip, and then one for each PCB that uses it. The main question is who the audience(s) are, and then find a set of pages that best serve them. A programmer wants to know the mapper registers, and the effects. He doesn't care about hardware. He might care about capabilities if he's selecting a board, but he still doesn't care about pinouts or anything. Someone modifying a cartridge wants to know all the details, but may not care about mapper registers, just what pins of the mapper chip have what function.

It seems that the following would meet people's needs, without there being too many pages:

* Tutorial describing how to use a mapper, with code examples. This doesn't cover every detail, just the main uses. This gives an overview of the mapper.
* Reference describing full behavior of mapper registers. Maybe a pinout.
* Reference page(s) for PCB(s) using mapper. If the PCBs are similar, they can all go on one page, with the commonalities described first. The only coverage of the mapper is how it's connected; mapper registers aren't covered.

I just looked at MMC1 and there are dozens of pages for each PCB. If they were all described on a page, the commonalities could be covered there. As it is now, it's hard to figure out what they have in common. All the pages make it harder to edit commonalities, because of the duplication.

That's my take, though haven't studied the Wiki in detail. The MMC1 page seems reasonable.

by on (#69686)
Well we should definitely work in order to reduce the # of different pages, but how ?

Even as a programmer you might be somewhat interested to the boards. For example if I'd like to have a MMC1 cart with 4-screen mirroring, the bord list will show me that no game was ever made with that configuration, although it's technically very possible. So maybe you'd avoid to use that.

The same applies to UNROM with 8kb CHR-ROM, having mapper 3 with 512 kb of CHR-ROM, SRAM + Battery, etc.... All those things are very possible in iNES, very possible in hardware, but were never made by Nintendo. Now if you were a developper back then maybe Nintendo would have made a board supporting that for you... and give it more funky names. There is no way to know what was supported and what wasn't.

Also not only the same mapper can be present on many boards (MMC1, MMC3, etc...), the same board can be multiple mapper (UNROM can be mapper 2 or 180, CNROM can be mapper 3 or 185), and for the worst the same mapping chip can lead to variants, such as TQROM and TLSROM (mappers 118/119).

For this reason maybe more accent should be made on the mappers on the programming side (i.e. as they are in iNES), but of course with pages with existing Nintendo boards, and their pinouts.
I already know people will hurl at me that iNES is crap, that boards should have used instead etc... But the same board can lead to completely different things (such as UNROM with a 74HC08), but a completely different board can lead to the exact same thing (you don't care if you are using SLROM, SLRROM, a pirate MMC1 clone or wathever).
Also this "board" approach falls flat for non Nintendo made carts.

by on (#69693)
Maybe boards that are very similar in function and have the same ROM pinouts should be combined. For example, UOROM is just the oversize version of UNROM, and AOROM is the oversize version of AMROM and ANROM. SUROM is the oversize version of SNROM (modulo some PRG RAM disable weirdness), and SGROM is the same as SNROM with no PRG RAM chip. There are a bunch of MMC1 boards whose only difference is what size of PRG ROM and CHR ROM they can take. To take it one step further, CNROM (mapper 3 version) and MHROM are strict subsets of GNROM and could go on the same page.

by on (#69714)
Yeah exactly. How the wiki currently is organized is in fact pretty good, there is just soo much pages.

So I'd say as a general rule, all boards with the same subset (SxROM, AxROM, etc...) should have only one page, which briefly lists each boards in the subset (as it's currently already the case), and then have a more detailed in-depth look at the various boards.

The exeption to this would be boards which actually have a different iNES mapper numbers, such as CPROM not being on the same page as CNROM, and TxSROM, TQROM being both on a distinct page from the others TxROM boards.

Information for special cases that applies to one board, but that is in the same iNES mappers (such as SOROM, SUROM) should be present on the main mapper page and/or on the general purpose board page (SxROM in this case).

Or maybe we should go a step further and merge the MMC1 page and SxROM page (similar for other mappers) ?

by on (#69716)
Bregalad wrote:
So I'd say as a general rule, all boards with the same subset (SxROM, AxROM, etc...) should have only one page, which briefly lists each boards in the subset (as it's currently already the case), and then have a more detailed in-depth look at the various boards.

I envision another exception: separate pages for boards in CHR ROM configuration vs. CHR RAM configuration, as the differences have implications for what the CHR bank registers do. To me, SGROM is as different from SLROM as BNROM is from the NINA-001 board that shares its mapper number or the VRC2 variants are from each other. This would result in three board pages, corresponding to NES-EVENT, SNROM (also covering SGROM, SUROM, SOROM, SXROM), and SKROM (covering everything else).

by on (#69730)
Well I don't know.... In MMC1's case there is effictively quite a difference, but is it really worth spreading the info on two pages ? Just add a paragraph to the main MMC1 page for board that have CHR-RAM and that use CHR-ROM higher swapping lines to other use (remember, the lower adress line STILL switch CHR-RAM banks, and Romancia (J) uses this).

For Konami mappers I think there is only one page for all "versions" of the same VRC mapper and it's fine as it. It's really just a board with literally two wires exchanged, and this was made on the only purpose to make life of hackers harder.

For mapper 34 it's an entirely different thing, it's two independent mappers attributed to the same iNES mapper (this was likely done by error).

Since it's impossible for me to delete pages, maybe a moderator should go away, and delete all individual board pages that have no relevant info. (most of the info on those pages is already present elsewhere). All relevant info should then be moved either below the board list of the corresponding board list, or on the mapper page, depending if tihs info is more relevant in hardware or in software.

Of course if there is objections I'm fine for leaving it as-it too. I'd just like people to tell them what they find would be better.

by on (#69984)
Because there were no apparent opposition, I went away and did the appropriate modifications to reduce the # of pages with similar information on it. Now there is one page per board group, or per board if there is only one board in a group, one page per chip, and one page per iNES mapper.

Pages about specific boards are still present, as I don't have the ability to delete them. However I made sure all the info on them was moved somewhere else, and I guess I modified all wikilinks to them, so I request the following pages are deleted :

- SAROM
- SBROM
- SCROM
- SEROM
- SFROM
- SGROM
- SHROM
- SJROM
- SKROM
- SLROM
- SL1ROM
- SMROM
- SNROM
- SOROM
- SUROM
- SXROM
- TEROM
- TFROM
- TGROM
- TKROM
- TLROM
- TNROM
- TQROM
- TR1ROM
- TSROM
- TVROM
- EKROM
- ELROM
- ETROM
- EWROM
- UNROM
- AMROM
- ANROM
- AN1ROM
- AOROM

In addition the following changes should be made :
- BNROM deleted, BxROM renamed BNROM and BxROM redirects to BNROM (only member of the family)

- HxROM deleted and redirectly to HKROM (only member of the family)

I'd also like to add information about the ROM pinouts in the table at the start of the family pages, but I lack ideas how to do this.

EDIT :
- GNROM
- MHROM
- FJROM
- FKROM
- PNROM
- PEEOROM

should be deleted as well.

by on (#70010)
Thank you for the merge. I've finished the SxROM, UxROM, and GxROM series by changing them to redirects, so that one can still type SLROM into the search box and head straight to the merged page. AxROM, PxROM, TxROM, FxROM, and ExROM come later, once I have more time. (It's near bedtime in my time zone.)

As for BxROM, "flipping" a redirect between two pages if both pages have history can only be done by admin. Because the wiki uses role accounts, I'll do it next time I'm at the machine with saved admin credentials.

by on (#70015)
Great work, thank you.

by on (#70055)
This page should be deleted/redirected, as the so called "special" Konami pinouts are in fact totally normal JEDEC EPROMs pinout, therefore the article has no point exept to confuse people.

Is the article about the mask ROMs pinout satisfying the way I re-arranged it ? Also non-standard pinouts for the following boards should be added (I don't have carts of such boards to check them ) :
- SROM
- RROM
- SLxROM
- SMROM
- TLxROM

by on (#70059)
Moved because I agree that JEDEC pinout is anything but Konami-specific.

by on (#70067)
Great, but now we have 3 pages covering the same topic :
http://wiki.nesdev.com/w/index.php/Eprom_pinout
http://wiki.nesdev.com/w/index.php/JEDEC_pinout
http://wiki.nesdev.com/w/index.php/Mask_rom_pinout

Only one of them should be kept IMO. (the Mask_rom_pinout) the others should redirect to it. However, I agree that "my" version of Mask_rom_pinout is far from perfect.
I'd like to have more diagrams stands horizontally in a line but I'm unsusre how to do it in wiki syntax.

by on (#70077)
To take two things and put them in a line:

{|
|

something

|

something

|}

by on (#70310)
OK I've done more reworking on the mask ROM pinout page. Now it's pretty much like I wanted it to be.
Now it would be great if those :
http://wiki.nesdev.com/w/index.php/Eprom_pinout
http://wiki.nesdev.com/w/index.php/JEDEC_pinout

would redirect to this :
http://wiki.nesdev.com/w/index.php/Mask_rom_pinout

by on (#70311)
Having three on a line is annoying because it requires a wider browser window. Is there any way we can have them wrap on narrower windows?

by on (#70314)
They showed up fine three-across on Chrome on Ubuntu 10.10 on my netbook, maximized in a 1024-pixel-wide screen. But then its replacement for Courier New might have different metrics from the authentic Courier New seen on a Windows box.

There are ways of putting boxes side-by-side but letting boxes drop to another row on a narrow display. Most of these involve display:inline-block. I could create a template to apply a variant of inline-block that also works in outdated IE, but because of how MediaWiki handles the | character (which has to be escaped as &#124;), ASCII art diagrams don't work so well inside templates. But fortunately, just using <pre style="display:inline-block"> appears to work.

by on (#70316)
tepples wrote:
They showed up fine three-across on Chrome on Ubuntu 10.10 without any problem.

Even with a narrow browser window? Does it move the third pinout below the first two?

Is there something magic about three pinouts across? In other words, will there be cases in the future where you want four across? It seems that two across is a good limit that fits comfortably in narrower browser windows.

by on (#70319)
I see that you want to make the information "right" by cleaning stuff here and there but the JEDEC pinout, even thought it was defined under konami pinout (because I didn't know more about the subject), should still exist in the wiki since it has it utility. I don't even know where is the proper place to find that information on the net. When you make a VRC6/7 dev cart, this is useful information to have.

So I hope you were all planning to at least define the jedec pinout on the wiki right? The goal of the wiki is to share information, not to remove it, right?

by on (#70320)
Banshaku wrote:
I see that you want to make the information "right" by cleaning stuff here and there but the JEDEC pinout, even thought it was defined under konami pinout (because I didn't know more about the subject), should still exist in the wiki since it has it utility.

It's still there, in "Mask ROM pinout" under "27C010/020/040/80 EPROM pinout".

by on (#70321)
Thank you for the clarification you made on the wiki. I didn't know the relationship.

by on (#70330)
Thank you very much tepples for fixing my version of the article.

For me multiple pinouts in a row is a dream coming true. It makes it SO much easier to compare them, and see what is different. Now anyone can easily compare EPROM pinouts and Nintendo's mask ROMs pinouts in an eye of blink. Before you'd have to scroll up and down, and this was terrible.

Of course if you have to scroll left and right I understand this is a problem as well but then I guess your monitor is REALLY small. On my 14' notebook, there is a lot of margin with 3 pinouts side-by-side. In fact I hesitated to place the MMC5 pinouts aside with them (5 pinouts) but decided this was too large, and that MMC5 boards were rare enough to fit a separate section.

But since apparently tepples fixed the problem (thank you), I guess it's all right now.

Quote:
The goal of the wiki is to share information, not to remove it, right?

Of course it is ! The goals of the changes I and tepples were making are to spread the same information on less pages than it originally was, so that it's easier to browse. Of course if anything goes wrong (like the non-clarity of what was a JEDEC pinout), please just say it so we can improve/fix the thing. (or if you have an idea to make the wiki better, just go ahead and modify it).

By the way, anyone who have boards such as SL1ROM, TL1ROM, RROM, etc... with an different pinout should check it out and put it on the wiki. I don't have any of these unfortunately.

by on (#70355)
Bregalad wrote:
Of course if you have to scroll left and right I understand this is a problem as well but then I guess your monitor is REALLY small.

Or you use a 1920x1080 monitor and would like to have room for more than just a web browser and a little extra space on the sides.

Quote:
For me multiple pinouts in a row is a dream coming true. It makes it SO much easier to compare them, and see what is different. Now anyone can easily compare EPROM pinouts and Nintendo's mask ROMs pinouts in an eye of blink.

If this was the main goal, what about presenting the information in a different format? You could have three (or more) columns of pin names on either side of the chip, allowing easier comparison than the current setup. I've added an example of this. I tried making it as a table, but that didn't handle well, so I just made it into an ASCII picture like the others.

by on (#70357)
blargg wrote:
You could have three (or more) columns of pin names on either side of the chip, allowing easier comparison than the current setup. I've added an example of this.

I have always done that whenever I needed to rewire carts. It makes the differences much clearer.

by on (#70374)
Good to see that the wiki has activity on it. Hopefully I will be able to return to do some nesdeving someday.

by on (#70376)
Maybe this is already in process of implementation, but if not, this page
http://wiki.nesdev.com/w/index.php/VRC2_pinout
should be populated with info from this topic
http://nesdev.com/bbs/viewtopic.php?t=3489

by on (#70395)
Quote:
Or you use a 1920x1080 monitor and would like to have room for more than just a web browser and a little extra space on the sides.

No offense, but do you oppose anything I do just for the heck of it ?? This argument makes no sense. You can enlarge the window to look at the pinout whenever you want. Nobody forces you to use only a small part of your screen. This argument makes absolutely zero sense. I really feel like you are trying to annoy me for a vengeance or something, but I might be completely wrong. I'd just rather say that than over-react or anything. (remembers me how some political parties in my country systematically oppose to projects of adversary political parties just for the heck of it, no matter what the project it).

Quote:
You could have three (or more) columns of pin names on either side of the chip, allowing easier comparison than the current setup. I've added an example of this.

Well I hesitate. How you made it is pretty interesting, it allows to have multiple pinouts on a single diagram (instead of multiple diagrams) which is even better in therms of compacting things. However, with already the signals in backets for unused adress pins, it becomes maybe a bit too much ?
In this example the pinout is the same for the 3 cases (EPROM, PRG-ROM and CHR-ROM), but this is not the case for larger sizes. Therefore, a similar diagram, where differences only are shown is interesting, as opposed to make them in bolt.

Pesonally I'd leave thing either as my/tepples diagrams-in-a-table or Blargg's compact diagrams, but definitely not both on the same page, as it looks retarded to have redundant info.

Any other opinions on which one is better ?

by on (#70397)
I'm starting to warm up to blargg's layout.

People who use a 1920x1080 monitor with the "snap" feature of Windows 7 or the "tile vertically" feature of previous Windows versions have a 960px window, which is just a tad narrower than the 1024px of a netbook or a 17" desktop monitor.

And I've discovered that operating system matters. My Ubuntu netbook uses a substitution for Courier New that's slightly smaller than the authentic Courier New that I see on my Windows machine. Three diagrams in the 128-512 section line up across in Ubuntu but not in Windows.

by on (#70402)
Bregalad wrote:
Quote:
Or you use a 1920x1080 monitor and would like to have room for more than just a web browser and a little extra space on the sides.

No offense, but do you oppose anything I do just for the heck of it ?? This argument makes no sense.

Just because the way I use a computer, with multiple windows open at once, is foreign to you doesn't mean I simply object to things for the hell of it, FFS. I don't know if you've ever used a desk before, but usually you have multiple things sitting on its surface, and you refer to one or more while you're working on another. It's the same with a computer. They have windows on screen and they can overlap, be resized, and be rearranged so that there are multiple visible at once. Sorry to be explaining this, but I get the idea you use your computer with only one window filling the entire screen at once. When I used to have a small monitor, I'd have to do that since there wasn't much room for more than one window, but it was pure tedium, constantly switching between windows. With a larger display, I can put things side-by-side and not constantly switch windows. Web pages which demand a really wide browser window suck, and I don't want the wiki to suck like that. Almost always, information can be presented in a way that doesn't require a really wide page. By doing that, more styles of browsing can be accommodated.

Quote:
I really feel like you are trying to annoy me for a vengeance or something,

Likewise. The way you respond makes it seem like you dismiss anyone else's problems if they aren't a problem for you. That is not the way to design a website that's meant for others than yourself.

Quote:
Pesonally I'd leave thing either as my/tepples diagrams-in-a-table or Blargg's compact diagrams, but definitely not both on the same page, as it looks retarded to have redundant info.

Indeed, I merely added the compact one so we could decide the best approach. I do NOT think the individual pinouts should be removed from the Wiki entirely. If one wants the pinout of a PRG ROM, one does not want any other information cluttering it. That may go on a different page that's not specifically comparing pinouts, but it should go somewhere.

by on (#70407)
Quote:
It's the same with a computer.

Sorry it really isn't. An IRL desktop isn't made of windows and you doesn't browse it with a mouse.
Quote:
Sorry to be explaining this, but I get the idea you use your computer with only one window filling the entire screen at once.

You bet it.
Quote:
With a larger display, I can put things side-by-side and not constantly switch windows. Web pages which demand a really wide browser window suck, and I don't want the wiki to suck like that. Almost always, information can be presented in a way that doesn't require a really wide page. By doing that, more styles of browsing can be accommodated.

I didn't state the opposite, and that's exactly why tepples fixed is so that it's not REQUIRED to have a large windows.
It's required only if you want to compare the pinouts, and then it really costs you NOTHING (remember that thread about costs ?) to double-click on the main bar of your browser window to temporarly make it full screen to compare them. If moving your mouse and double clicking is that much of an issue, then you can't use a computer at all.

So I don't know what you're crying about, why you absolutely refuse to enlarge this window.

Even if you had such as small screen so that an enlarged window can't even show the full thing, most browsers can allow you to resize the page with Ctr + and Ctr - keys.

And if you're that much pissed about my diagrams to be too wide, then you should also be pissed about the toolbar to be on the left when it could be on the top and not take any width.

Quote:
Indeed, I merely added the compact one so we could decide the best approach. I do NOT think the individual pinouts should be removed from the Wiki entirely. If one wants the pinout of a PRG ROM, one does not want any other information cluttering it. That may go on a different page that's not specifically comparing pinouts, but it should go somewhere.


The whole point of this thread was to remove duplications of information on the wiki and make info more compact on less pages.
Your way of displaying diagrams is more compact, I'll give you that, so I'd agree to use it on the page. But then the old way should be deleted - it would be crazy to have diagrams in multiple format because people can't agree which one is the "right" one.

BTW even your diagrams takes some width, about 2/3 as much as mines.

by on (#70411)
Bregalad wrote:
I didn't state the opposite, and that's exactly why tepples fixed is so that it's not REQUIRED to have a large windows. It's required only if you want to compare the pinouts,

No disagreement there. Tepples fixed it well, and I don't have a problem with his fix.
Quote:
So I don't know what you're crying about, why you absolutely refuse to enlarge this window.

Stop with the ad hominem comments. They are destructive to cooperation.

Where did I say I refuse to enlarge the window? The original layout required a wider window just to see the content, not even to compare them. It was that which I was objecting to, and calling for a solution that allowed comparison AND didn't require a wider window.

Quote:
And if you're that much pissed about my diagrams to be too wide, then you should also be pissed about the toolbar to be on the left when it could be on the top and not take any width.

The toolbar would only be a problem if one wanted the browser window only a couple of inches wide, but that's pretty silly.

Quote:
blargg wrote:
Indeed, I merely added the compact one so we could decide the best approach. I do NOT think the individual pinouts should be removed from the Wiki entirely. If one wants the pinout of a PRG ROM, one does not want any other information cluttering it. That may go on a different page that's not specifically comparing pinouts, but it should go somewhere.

The whole point of this thread was to remove duplications of information on the wiki and make info more compact on less pages.

The information shouldn't be made too compact. Duplication has costs, but so combination of information. I don't see a problem with having individual pinouts for the various chips, and a couple of comparison diagrams that merge several pinouts.

Quote:
Your way of displaying diagrams is more compact, I'll give you that, so I'd agree to use it on the page. But then the old way should be deleted - it would be crazy to have diagrams in multiple format because people can't agree which one is the "right" one.

That's the issue, there is no one right diagram. The individual pinouts serve different purposes than the comparison ones. I haven't looked closely at your new organization, but to me it would make sense to have pinouts on one page, and another page that gets into comparisons, and the things necessary when using an EPROM in place of a normal ROM. One serves as reference, the other guidance on doing a specific task.

Quote:
BTW even your diagrams takes some width, about 2/3 as much as mines.

I'm really not interested in this becoming a battle of whose is better. Yes, the comparison one is wider than a normal pinout, and one comparing say 6 pinouts would be even wider. If you have ideas for comparison pinouts that are even narrower, please share! :)

by on (#70412)
Bregalad wrote:
It's required only if you want to compare the pinouts, and then it really costs you NOTHING (remember that thread about costs ?) to double-click on the main bar of your browser window to temporarly make it full screen to compare them.

I double-click the titlebar, but that only makes my window smaller.

Quote:
IEven if you had such as small screen so that an enlarged window can't even show the full thing, most browsers can allow you to resize the page with Ctr + and Ctr - keys.

And a magnifying glass.

Quote:
And if you're that much pissed about my diagrams to be too wide, then you should also be pissed about the toolbar to be on the left when it could be on the top and not take any width.

At least that's configurable in Preferences > Skin > Nostalgia. Here's what it looks like.

Quote:
Your way of displaying diagrams is more compact, I'll give you that, so I'd agree to use it on the page. But then the old way should be deleted

I'm for deleting the old way too.

Quote:
BTW even your diagrams takes some width, about 2/3 as much as mines.

Which is just fine for the critical 960-1024 pixel window widths.

by on (#70419)
Quote:
Stop with the ad hominem comments. They are destructive to cooperation.

You're right that I (and everyone) should focus on cooperation. I am just feeling that your argument that you need narrow diagrams was biased.
Quote:
Where did I say I refuse to enlarge the window?

Well here :
Quote:


People who use a 1920x1080 monitor with the "snap" feature of Windows 7 or the "tile vertically" feature of previous Windows versions have a 960px window, which is just a tad narrower than the 1024px of a netbook or a 17" desktop monitor.

and here :
Quote:
When I used to have a small monitor, I'd have to do that since there wasn't much room for more than one window, but it was pure tedium, constantly switching between windows. With a larger display, I can put things side-by-side and not constantly switch windows. Web pages which demand a really wide browser window suck, and I don't want the wiki to suck like that. Almost always, information can be presented in a way that doesn't require a really wide page. By doing that, more styles of browsing can be accommodated.


You may not have used the word "refuse", but it was pretty much put that way, as if you couldn't easily enlarge/retract windows in a modern OS.
Quote:
The toolbar would only be a problem if one wanted the browser window only a couple of inches wide, but that's pretty silly.

Indeed.
Quote:
The information shouldn't be made too compact. Duplication has costs, but so combination of information.

Good point. So now the question is - is multiple-pinouts-in-one diagram such as Blarg's example too compact ?
I think they are ok personally, maybe not as intuitive as the old ones, I'm fine either way. Maybe we need to wait for more opinions before taking a definite decision.

I'm however all against duplicating info on multiple pages, because it does just make things the most confusing IMO.

Quote:
Yes, the comparison one is wider than a normal pinout, and one comparing say 6 pinouts would be even wider. If you have ideas for comparison pinouts that are even narrower, please share! :)

Well I'm not the one who said things should be supposed to be narrow.
Also I don't think it could be narrower unless on a 1-dimensional list, which would obviously be worse to read.

Quote:
I double-click the titlebar, but that only makes my window smaller.

Interesting. It is linux who does that ? I use it at work and I don't remember it being different from Windows 7. Or maybe I should re-install Linux on my PC to compare what it does ? Anyway this is off topic.

by on (#70422)
Bregalad wrote:
Quote:
I double-click the titlebar, but that only makes my window smaller.

Interesting. It is linux who does that ?

In common desktop Linux environments, just as in Windows, double-clicking a window's title bar toggles it between maximized and normal states. The joke was that my Chrome window was already maximized; double-clicking made it "normal" and therefore smaller.

by on (#70567)
Well apparently there is noone else who has opinions about it. I guess we should make it all look like Blarg's diagram ?

by on (#70578)
One thing I was thinking could be removed are the alternate pins for a particular chip, instead mentioning those in a note below. For example, the EPROM one could mention that A14 also doubles as PGM, and on smaller ones, A15 becomes +5V, and A13 no connection. I tried making a table, but I realized I don't know what the heck that page is describing. Is it telling the pin functions of the chips, or what those pins are wired to on the boards, or both? It states that "For some unknown reasons, unused address lines on smaller ROMs had to be put to +5V". Is this just because those address lines become extra chip select inputs? Also, the pinout suggests that for example pin 20 is a ground line on PRG ROM chips, but is it realls just /CS always selected, with 22 then being an /OE, as with an EPROM?

by on (#70585)
As I understand it, "pinout" pages are supposed to describe what each pin does, and how they're wired into a particular board goes in the board family's page.

As for /CS vs. /OE: is there really a difference between the two for mask ROM chips? I was always taught that the difference between /CS and /OE is that /CS must be asserted for a write to complete, and /OE need not.

by on (#70586)
tepples wrote:
As I understand it, "pinout" pages are supposed to describe what each pin does, and how they're wired into a particular board goes in the board family's page.

So for EPROM, it tells you what the chip does, but for others it tells you ha mix of what the pin does and how it's wired? That's confusing. It should either show the pinout of the chip, which is a list of the behavior of each pin, OR a pinout of the socket/solder holes, which is a list of what each hole is connected to. For example, pin 20 of a PRG ROM, is it /CS, wired to pin 14 inside the chip, or not connected inside the chip? Is the pinout on the page showing that of the chip or that of the socket?

Quote:
As for /CS vs. /OE: is there really a difference between the two for mask ROM chips? I was always taught that the difference between /CS and /OE is that /CS must be asserted for a write to complete, and /OE need not.

Yes; the time from asserting CS to valid data is greater than from asserting OE. I believe it's because when CS is deasserted, the chip goes into a low power mode. Once CS is asserted, the address lines are then used to internally select the byte and get it ready. Then OE just switches from three-state output. Take a look at a 23C020 256Kx8 mask ROM for example, which takes 150ns from CS being asserted, but only 80ns from OE.

by on (#70588)
Quote:
So for EPROM, it tells you what the chip does, but for others it tells you ha mix of what the pin does and how it's wired? That's confusing.

Well, Blargg, I must say you raised a very good question ! You are right that we should definitely make some light on this before editing the page for a final (hopefully better) version.

When I first made the page, by merging multiple diagrams I noticed some were using labels such as "A7" while others using longer labels such as "PRG A7". So I decided to keep the longer labels for EPROM diagrams, so that they indicate not only what the pin is used for, but where it is connected to.
When both are different, for example the /CE pin which is connected to GND, I use GND (/CE).

The problem, is that for Mask ROMs that have pins connected to VCC or GND, you have no way to know if they are unused chip enable signals or not ! The only way would be to mod a board so that the pin is connected to a switch, and change the switch during gameplay. If the game freezes then chances are this was an extra chip enable pin.

I have no idea why Nintendo did multiple boards for multiple PRG sizes.
For example, Bugs Bunny's Carzy Castle, which is 64 KB PRG and 32 KB CHR, uses NES-SBROM, while Dr Mario which is 32 KB PRG and 32 KB CHR, uses NES-SEROM.

The only difference is that A15 becomes VPP, so in theory it would be absolutely no problem to put Dr Mario on a SBROM, A15 would just remain unused and connects to VPP but who cares as VPP is only used during programming. So I have no idea why they had to put it to VCC.

This is even more obscure considering they could have wathever sized CHR-ROMs in the same slots. For example Testis is 32 KB PRG and only 16 KB CHR, but yet they use a SEROM board like Dr Mario which is 32 KB CHR. It doesn't cause them a problem that A14 (PGM) isn't connected to +5V.
However, you know that Nintendo did different boards for NROM-128 and NROM-256 games, which is in the same case : Why couldn't NROM-128 games work on NROM-256 boards with their unused PGM pin connected to A14 ?

Fortunately this stopped at 128 KB and above ROMs, leading to less board per family.


The datasheet you found is interesting, it shows that unused inputs could be asked to be active low or high chip enables. That's what they used in Wizard & Warriors 2 and some other AOROM boards to prevent bus confilcts.

I'm not sure if there is a difference between /CE and /OE. On RAMs of course there is a difference (when writing to it you want /CE low but /OE high). For ROMs if there is a difference, it is in speed and power consumption, but not in functionality. So if it's hard to tell whenever pins connected to +5V or GND on a board are unused enalbe pins, it's even harder to determine which ones are /CE or /OE !

by on (#70591)
Bregalad wrote:
For example Testis is 32 KB PRG and only 16 KB CHR

Image
Which of the seven Tetris pieces looks most like a gonad? :P

Quote:
I'm not sure if there is a difference between /CE and /OE. On RAMs of course there is a difference (when writing to it you want /CE low but /OE high).

In 6264 datasheets I've seen, /WE overrides /OE, so that it'll still work even if you tie /OE to /CE. The datasheets mention supporting both "8080 style buses" that use /RD and /WR and "6502 style buses" that use /CE and R/W.

by on (#70593)
Quote:
When I first made the page, by merging multiple diagrams I noticed some were using labels such as "A7" while others using longer labels such as "PRG A7". So I decided to keep the longer labels for EPROM diagrams, so that they indicate not only what the pin is used for, but where it is connected to.
When both are different, for example the /CE pin which is connected to GND, I use GND (/CE). The problem, is that for Mask ROMs that have pins connected to VCC or GND, you have no way to know if they are unused chip enable signals or not !

Thanks, this historical explanation makes everything clear, and how things got the current way.

Quote:
I'm not sure if there is a difference between /CE and /OE. On RAMs of course there is a difference (when writing to it you want /CE low but /OE high). For ROMs if there is a difference, it is in speed and power consumption, but not in functionality. So if it's hard to tell whenever pins connected to +5V or GND on a board are unused enalbe pins, it's even harder to determine which ones are /CE or /OE !

Yeah, you can't determine it without testing the actual chip. But access time seems part of functionality, so you can't switch /CS and /OE unless the memory is faster than the usual required. My theory is that 20 is connected to GND so that it can be a /CS, or NC, and work. Same for the upper address line pins being connected to +5V, as CS2, CS3 etc. pins, or NC.

I think it would be good to have a normal ROM pinout compared to the pinouts of the PRG and CHR "sockets" on a board. I believe an EPROM has the same pinout as a ROM when not being used in program mode, so there's little need to even mention PGM, Vpp, etc.

BTW, I like that you're interested in documenting all the board types and why they are that way, because it sheds light on the reasons they are designed that way, and highlights useful approaches to board design. So clarity beyond merely "this board is that way" is good. It makes it easier to remember, for one, since you understand the logic behind the design, rather than it being arbitrary seeming.

by on (#70594)
Well maybe. CNROM has solder pads so that an unused PRGA14 could go to +VCC for a 16 KB PRG game, but yet the only 16 KB PRG CNROM game didn't use that feature.

by on (#70601)
Bregalad wrote:
Well maybe. CNROM has solder pads so that an unused PRGA14 could go to +VCC for a 16 KB PRG game, but yet the only 16 KB PRG CNROM game didn't use that feature.

That image page was blank. Bird Week is CNROM, but it's one of the Mapper 185 ones. It took me a while to figure out that you were talking about Joust. It appears BootGod's site doesn't show images unless the Referer is 1. provided and 2. matching.

by on (#70613)
OK I fixed it. Yeah just doesn't use that solder pad to put the unused A14 to VCC. This means that particular pin didn't HAVE to be on VCC, at least not for this particular run of mask ROMs.
So the whole point of having different NROM-128 and NROM-256 boards makes no sense to me.

by on (#70614)
I figured I'd join in on this discussion...for documenting board details I would think the best way to do it would be like most schematics I've worked with do. At the top level you have chips and named signals between the chips (CPU_A15, for example). Clicking on any chip in the design brings you to that chip's "page" where the chip is the only thing on it. The board-level signal names surround the chip on the wires going into the chip. Inside the chip box you have the chip manufacturer's signal names and pin/ball/land number aligned to the same pins as the signal lines they correspond to. So, if by some esoteric example a board wired CPU_A15 to the PRG ROM's /CE, that would be immediately obvious at the mask ROM level of the schematic.

You could even have a "footprint compatible" selection which would simply interchange the chip's internal details with those of another one to show what the differences were.

Just thoughts.

by on (#70708)
OK so in the end, I guess since we have no way of knowing if the unused pins on +5V or GND are unued /CE or /OE signals or not, the logic would say we should show the names of the singal leading to the pin.

However, it seems more complicated to do it this way as it implies different pinouts for PRG and CHR.

The other way to go, would be to make pinouts with only the name of the signals, that is "Ax", "Dx", "CE", "/CE", "/OE", and that's all. Unused signals would be still specified as "+5V" or "GND" as we can't be very sure of their usage.

Because on most carts the /CE and /OE wiring is the same, a simple paragraph about it should be used, and exeptions (such as AOROM) should be mentionned next to the pinout (like it's already right now).