Live data from Hacker News

Game Boy SM83 CPU Core

github.com

11–20 of 28 posts

Re: Game Boy SM83 CPU Core

#11
post #5

"Game Boy consoles use a custom Sharp CPU core that resembles Z80 and 8080 but is not exactly either." - well said but do know that the Z80 resembles the 8080 and it isn't exactly an 8080. To be fair the SM83 as coined here does have a few Z80 instructions but by and large it is an 8080 clone.

I've always liked to think of the SM83 as an 8080 clone that happens to use z80 assembly syntax (and includes a few z80 instructions)

But it's not really accurate to call it a clone of anything. It seems to be more of a unique CPU design that happened to steal opcode and semantics from both the 8080 and z80.

Re: Game Boy SM83 CPU Core

#12
post #5

"Game Boy consoles use a custom Sharp CPU core that resembles Z80 and 8080 but is not exactly either." - well said but do know that the Z80 resembles the 8080 and it isn't exactly an 8080. To be fair the SM83 as coined here does have a few Z80 instructions but by and large it is an 8080 clone.

The Z80 fills some redundancies and gaps in the 8080 instruction set and adds the concept of prefixed instructions (via the CB, DD, FD and ED prefix bytes), but is otherwise compatible with the 8080 (it can run 8080 code which doesn't use any of the redundant opcodes which have been repurposed in the Z80).

Looking at the Gameboy CPU instruction matrix (https://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html) versus the 8080 matrix (https://pastraiser.com/cpu/i8080/i8080_opcodes.html), the Gameboy CPU looks a lot more like a Z80 than an 8080. For instance the Gameboy CPU has the conditional relative jump instructions (like JR NZ, JR NC, ...) of the Z80, while the 8080 only has redundant NOPs in those instruction slots.

Also while the Gameboy CPU is missing the DD, FD and ED prefixed instruction ranges, it has the complete CB-prefixed 'bit twiddling' instruction range of the Z80).

So IMHO it's more correct to call the Gameboy CPU a stripped down Z80 than an extended 8080 (but of course the Z80 is also "just" an extended 8080, so it's also not wrong to call the Gameboy CPU an extended 8080, the 8080 is basically the grandfather, and the Z80 the father).

Re: Game Boy SM83 CPU Core

#13

Oh wow it's gekkio. They're still going! I remember downloading everything on their site a decade ago because I wasn't sure if Nintendo would ever shut down such awesome work and the knowledge was simply too cool and useful to risk losing.

Can they shut it down, though? Reverse engineering and emulation are all perectly legal despite Nintendo's claims to the contrary. The inner workings of their consoles are not protected.

They can threaten with legal action which is enough for some people to fold - regardless of whether it would succeed in court.

Defending yourself in court is an expensive affair, unfortunately.

Re: Game Boy SM83 CPU Core

#15
post #4

I understand that at this point the hdl is only for simulation but could someone at one point run a full gb on an fpga?

Not just Game Boy but much much more: https://www.analogue.co/pocket

I still have that one on my wishlist, there's so much good stuff on the original Gameboy systems that I never could play - our birthday budgets didn't stretch nearly far enough.

Re: Game Boy SM83 CPU Core

#16
How do people learn how to reverse engineer ICs from pictures like this? I can make out the connections for the most part, but I wouldn't know where to begin to glean anything else.

Re: Game Boy SM83 CPU Core

#18
post #16

How do people learn how to reverse engineer ICs from pictures like this? I can make out the connections for the most part, but I wouldn't know where to begin to glean anything else.

A bachelor level EE curriculum is a good start. There must be open courses for most of this these days (perhaps MIT 6.374). Once you understand some basics of semiconductor physics and integrated circuit design all of this becomes much easier to contextualize.

Re: Game Boy SM83 CPU Core

#20
post #16

How do people learn how to reverse engineer ICs from pictures like this? I can make out the connections for the most part, but I wouldn't know where to begin to glean anything else.

Pattern matching and comparing to a reference implementation. Think of it like a giant Sudoku crossed with a maze.
Post reply on HN