Game Boy SM83 CPU Core
github.com
github.com
Looking forward to integrating this into the big simulator mess. Three frames per second here we come:D.
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).
Same for the block instructions in the ED instruction range, quite convenient, but also very slow. LDI/LDD might have been useful for blitting bytes in unrolled loops, but since (AFAIK) the GB video hardware renders tiles and sprites directly, there's hardly a need for copying lots of bytes around.
The shadow register set wasn't all that useful either except for quickly saving state in interrupt handlers, but the additional registers take up a lot of die space.
On the other hand, the entire block of 256 bit twiddling instructions were obviously deemed important enough to keep them in the Gameboy CPU.
But just because you don't like a bunch of the Z80 die doesn't mean that the SM83 is a Z80 though. It's basically just an 8080 + CB and instructions that appear neither in 8080 or Z80
Still - I can see both from both sides now.
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.
Defending yourself in court is an expensive affair, unfortunately.
I am not sure if reverse engineering video game consoles fits into "a matter of public interest", but if you get nastygrams, it's probably worth talking to a lawyer. This might be something they can deal with in an afternoon and not a multi-year battle that bankrupts you.
https://en.wikipedia.org/wiki/Strategic_lawsuit_against_publ...
https://github.com/MiSTer-devel/Gameboy_MiSTer
Edit: We can also do GBA and a lot of other cores, all the way up to Playstation 1.
Also, I don't see any specific FPGA's mentioned, what sort of constraints do these projects have? Does it run on a 3$ one, or do you need something bigger /fancier?
Edit: oh sorry didn't realize MIST is the device, it's an Altera Cyclone EP3C25