Skip to content(if available)orjump to list(if available)

More than you wanted to know about how Game Boy cartridges work

exmadscientist

Also (because I feel like it/am procrastinating on other stuff), some first-glance review on the design at https://git.sr.ht/~aparrish/abc-pcb/tree/main/docs/abc-pcb.p... :

- U6 and U8 need nearby decoupling. LVC logic has horrid power consumption during transitions, so best to feed it well if you expect any kind of transition rate out of these gates. It doesn't have to be explicitly dedicated to these parts but it needs to be physically close.

- That goes extra for the big fat WideBus 16-wide level translators. They have multiple power pins for a reason. They are vicious little devices. Decouple every last power input pin with its own individual capacitor.

- U6 outputs appear to have wrong bus directions? Probably not important (also maybe not a problem at all, I usually do Altium not KiCad)

- VBUS is not logic level, so you shouldn't use it as a logic signal if you want reliability (it will work... mostly... but also be weird sometimes), but you absolutely cannot drive multiple things with it and expect them to work (their input thresholds will be slightly different and you will be sad when they switch at slightly different times because it's moving slowly). Clean it up with a Schmitt trigger (1G17 etc).

- No ESD protection on the USB port. Do you want it to live? Try something like ECMF02-4CMX8, nice and simple to implement (mildly annoying to solder though).

- Whatever is going on with Q1 is poorly enough drawn that I can't understand it at a glance. Best to just draw these parts as two ordinary MOSFETS with A and B suffixes, then the circuits can be legible.

- On IC2 (why not U2?) lines 4, 5, 6, 7 are being cross-driven. Do not ground both sides, you will be sad. Ground the input sides and let the outputs be unconnected, because they're strongly driven by the chip. Or use resistors to pull things places if you must satisfy someone somewhere who loves that kind of stuff (medical! medical? medical.).

- U7 SENSE pin draws not-much current (~25nA) so no reason to burn power in that resistor divider

- Consider stuffing a big fat electrolytic or two down somewhere and making your PDN nicely damped.

exmadscientist

> TI’s TXB0108 for this purpose as well, which has an automatic direction sensing feature that obviates the need for all of the direction logic that I mentioned above.

Yeah, don't use these guys. They have a tendency to swap translation direction in the presence of electrical noise, which means your input is now an output, cross-driving something. Sometimes everything survives just fine and switches back on the next edge. Sometimes the magic smoke comes out. And sometimes, if the stars align just wrong, you get an industrial accident.

This is one of those classes of parts that has hidden dangers and really should not be as prominently advertised as it is. They look simple, but they're for experts only. Don't use them unless you really know their failure modes and don't have another reasonable option.

toast0

> You don’t need to circumvent copy protection or region lockout hardware to write custom software for the Game Boy, since the Game Boy has none.

While there's no region lockout, don't you need to pass the logo check?

favorited

I assume they mean you don't need to modify the device's hardware or hack any software – you just need to include a blob in your ROM's header (which RGBFIX will automatically insert for you, if you're using the RGBDS toolchain).

Plus, Sega v. Accolade killed that practice. I don't think anyone has tried to enforce it since.

sigpwned

False, this is exactly as much as I wanted to know about how Game Boy cartridges work. Thank you! :)

Andrex

Stole my comment!

phendrenad2

I was sad to see that one of my old favorite GB dev resources is gone: https://web.archive.org/web/20150410063839/http://www.devrs....

Most of the links were already long-long-dead, but there were some cool inspirational projects on there.

CaliforniaKarl

See also the Ultimate Game Boy Talk from 33c3: https://www.youtube.com/watch?v=HyzD8pNlpwI

LarsDu88

I just started learning KiCad and PCB design this month as a larf, and I was wondering if anyone has tried making a full original Gameboy PCB and open sourcing it?

snickerdoodle12

any good resources for PCB design?

asdff

My Pokemon blue version went through the washer and dryer probably 20 years ago and it still works to this day. Talk about some hardware. I wonder if an SD card would take that sort of abuse.

mister_mort

I suspect the heat of the dryer would be more of a problem than the water.

hypercube33

I've washed SD cards, cf cards and memory sticks and they all still work.

Keyboards can also survive dishwashing with gentle soap. So can motherboards

HardwareLust

I find this really fascinating, thanks for sharing!

CommenterPerson

Congrats, Nice work!

.. Now go build and sell some nice IOT gadgets that do not track users, and become a millionaire. Like a simple water leak detector.

stavros

There are already plenty of those, and they're super cheap too.

esseph

Do you know of any fully open source matter/thread hardware?

rewing

Doesn't Matter require proprietary certification?