5 ms·
Game Boy SM83 CPU Core
- phant0mas 4y agoI understand that at this point the hdl is only for simulation but could someone at one point run a full gb on an fpga?
- idonotknowwhy 4y agoYep, we already do. This is cycle accurate https://github.com/MiSTer-devel/Gameboy_MiSTer 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.
- tinco 4y agoCould you explain a bit how your project is different from the one in the article? Why did they implement the SM83 in HDL when you already have such an implementation? 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
- Dave3of5 4y agoNot just Game Boy but much much more: https://www.analogue.co/pocket https://www.analogue.co/pocket
- Cthulhu_ 4y agoI 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.
- jbarberu 4y agoThere are already products doing just that, the Analogue Pocket comes to mind (https://www.analogue.co/pocket https://www.analogue.co/pocket)
- aappleby 4y agoGateBoy will eventually do that for the whole reverse-engineered die.
- djmips 4y ago"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.
- NieDzejkob 4y agoThe name didn't get coined here - there are Sharp datasheets documenting this core, and they use the name SM83.
- phire 4y agoI'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.
- flohofwoe 4y agoThe 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 https://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html) versus the 8080 matrix (https://pastraiser.com/cpu/i8080/i8080_opcodes.html 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).
- willis936 4y agoOh 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.
- matheusmoreira 4y agoCan 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.
- Cthulhu_ 4y agoThey 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.
- jrockway 4y agoSome states have tried to make this better with anti-SLAPP laws. If the purpose of the litigation is to bankrupt the other party who is doing something legal, then the case can often be dismissed very early, and the plaintiff will have to pay a fine. 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_public_participation https://en.wikipedia.org/wiki/Strategic_lawsuit_against_publ...
- Stamp01 4y agoHow 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.
- djmips 4y agoCheck out righto.com - you can start small and work your way up. You can learn to understand transistors from their shapes. There are also automated tools like what was used for Visual6502.org
- fuckstick 4y agoA 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.
- aappleby 4y agoPattern matching and comparing to a reference implementation. Think of it like a giant Sudoku crossed with a maze.
- lizardactivist 4y agoPretty neat. I remember the Game Boy was alright, even with its blurry screen in four shades of snot, but IMO the Game Boy Advance was when handheld gaming got really interesting and engaging.
- aappleby 4y agoYay, the only bit of the die I couldn't transcribe for GateBoy! Looking forward to integrating this into the big simulator mess. Three frames per second here we come:D.
- downrightmike 4y agoRaise the roof!