- For making cartridges of your Super NES games, see Reproduction.
But because your board mixes in the 74'257s, you have to correctly enable them (not the ROM) at the right time in order for things to work correctly.
The only safe time to drive the data bus is when other things aren't driving it, which could be things inside the SNES (such as RAM or PPU) or on the cart (RAM).
In a HiROM cart, it's ok (although pedantically wrong) to just use /CART (p49) to enable the '257s, because nothing will ever try to write to ROM, so we can assume that if the SNES is accessing the cart it's reading from the cart. (There's some marginal behavior at the beginning and end of each memory access cycle, but it's more-or-less ok.)
In a LoROM cart, you can make a similar assumption, using the output of the 74'139 enabling the ROM based on /CART and other address lines.
Finally, if you're using an analog multiplexer, like the '4066, then you can safely use the ROM's output enables and not worry about enabling the '4066 at the right time, because if the ROM's data bus is high-impedance, then the output of the analog multiplexers will also be.
(Note that the 74'3257 is a bad choice specifically in the case of the SNES, because it doesn't pass full 5VCMOS voltages, because it only has nMOSFETs inside instead of NMOS+PMOS full transmission gates)
Both. It draws power through a 7805 regulator, and it uses some of that power to supply power to the Game Pak and controllers connected to it. ("Supply" doesn't necessarily mean "generate".)
Lidnariq, would you mind me asking what your background is in? You've got a lot of insight into these things.
I was thinking about this lately, say you have a 27C322 with muxes connected to an OEM board, with the /OE of the muxes tied to the /OE of the SNES ROM pinout, that is, the /OE signal that toggles each cycle as shown in this picture: http://forums.nesdev.com/download/file. ... &mode=view
If the board in question had /OE and /CE swapped, as you mentioned some boards do, could that create a bus conflict since the muxes would be active continuously with the /CE signal? How common are those boards?
Edit: I should mention I finally got around to getting boards made with the /OE connected to /RD instead of /CE, and they're not working properly. I also checked a few OEM boards I have lying around and all have /RD connected to /CS as my custom boards do. Those OEM boards I have tried with my 322 adapter boards, and they work fine with the 257 enable line connected to the /OE pin on the ROM socket (pin 33). In the board with RAM (HiROM), this /OE is connected to the MAD-1 (which toggles with the /CART signal) and in the RAM-less board (LoROM) this /OE is connected to /CART as well. So I'm a bit confused now because obviously this connection isn't creating bus conflicts, if the games work. Is it accurate to say /RD is the /OE in that scope capture, and that /CART is /CE? Is this wiring of a 322 and muxes gonna cause problems if the /OE is commanded by /RD and /CE is commanded by /CART?
Which is the board in question?
None of Nintendo's boards used multiplexers - they all started with 8 bit ROMs in the first place.
Basically, for the following instruction:
The /RD and /CART lines would look something like
Code: Select all
/CART ....________^^.... _ = low /RD ....~_~_~_~_~_.... ^ = high CE-CART ....nnnnnnnnFF.... n = on, power consumed, lower latency OE-RD ....ZdZdZdZdZZ.... F = off, low power, higher latency CE-RD ....FnFnFnFnFn.... Z = high impedance, no bus conflict OE-CART ....ZdZdZdZdZZ.... d = driven, potential for bus conflict, but can't tell in isolation
The '257s should, ideally, only be enabled when /RD and /CART are both low. But you can probably get away with it when only /CART is low.Edit: I should mention I finally got around to getting boards made with the /OE connected to /RD instead of /CE, and they're not working properly.
I was looking at 1J3M and 1A0N to confirm the /CART wiring, but I guess my question is how common are these kinds of boards in comparison to the "proper" wiring you mentioned in that reply. Maybe I'm misunderstanding what you said, it seemed like you were saying the standard SNES board has it wired that way where /RD controls /OE. I just don't have an example of that board. All the ones I see have /CART driving /OE in some form, which as you confirmed is fine, but not ideal. Thanks for the logic diagram btw, that helps.
I made a few new boards that I was testing out, and I made an OEM-style (36-pin socket) and a 322-style, both rewired with /RD and /CART driving /OE and /CE, respectively. The 322 has the /OE of the muxes driven by /RD, and the /CE of the EPROM driven by /CART (/OE of EPROM tied to GND). When I say driven, I mean either directly or indirectly affected by, like if a decoder is used as well. I think that's giving me a bus conflict, because it's not working - I think now that's because /RD can cycle even when /CART is not active, correct? I'm just using a standard mode 20 RAM-less test ROM. The 36-pin board works when I use an 8-bit EEPROM to test it out (so no muxes), but not with my 36-pin-to-322 adapters, hence my concern that the adapters might not work all the time. Are there cases where pin 33 is tied to /RD?
I was under the impression that was kinda mixed, but I don't know.poorstudenthobbyist wrote: ↑Fri May 01, 2020 11:10 amMaybe I'm misunderstanding what you said, it seemed like you were saying the standard SNES board has it wired that way where /RD controls /OE. I just don't have an example of that board. All the ones I see have /CART driving /OE in some form, which as you confirmed is fine, but not ideal.
Yes, that's the problem. In the case of using '257s, tying their /OE outputs to /RD causes a bus conflict on every read cycle. They need to only be active in both the right region and also the right time.The 322 has the /OE of the muxes driven by /RD [...] because it's not working - I think now that's because /RD can cycle even when /CART is not active, correct?
Pedantically, it's probably ok to tie the '257s /OEs to /CART (for HiROM) or from the 74'139 (for LoROM), because the game will never try to write to ROM - it would have no effect, so there's no reason to try to generate a bus conflict. But a badly programmed game could cause a bus conflict, which would cause some extra heat, so that could eventually be bad.
I'm gonna check through all my cartridges for non-MAD-1 carts to see if /RD is ever tied to pin 33 instead of /CART. And I'll add this info into the explainer as well.