The Ultimate Game Boy Talk (33c3)
media.ccc.de10 HN recommenders · recommended in 10 months, 2017-2026
241K views · 9 years ago · talk · evergreen
Michael Steil's 33c3 talk explains essentially everything about the Game Boy: CPU, video hardware, peripherals, and the tricks used by games and demos. It revives the era of counting clock cycles around hardware limits.
HN treats it as the standard starting point for Game Boy emulator writers and homebrew developers, with several calling it one of their favorite talks.
1:01:1525c3: The Ultimate Commodore 64 Talk
Christiaan008
160K views • 15 years ago
2:35:323dfx Oral History Panel with Ross Smith, Scott Sellers, Gary Tarolli, and Gordon Campbell
Computer History Museum
51K views • 12 years ago
7:08How "oldschool" graphics worked Part 1 - Commodore and Nintendo
The 8-Bit Guy
5.7M views • 11 years ago
52:45The Road to PS5
PlayStation
16.8M views • 6 years ago
2:55:13Oral History of Gary Davidian, part 2 of 2
Computer History Museum
2K views • 7 years ago
34:29The History of 3D Graphics on the Gameboy Advance | minimme
minimme
667K views • 6 years ago
1:02:03Elite: "The game that couldn't be written"
Alexander the ok
2M views • 2 years ago
38:26Racing the Beam Explained - Atari 2600 CPU vs. CRT Television
Retro Game Mechanics Explained
400K views • 5 years ago
5:15Megaprocessor Tour 1 - (fixed audio)
Megaprocessor
479K views • 10 years ago
20:37Building my dream computer - Part 1
The 8-Bit Guy
3M views • 7 years ago
1:21:07David Patterson - A New Golden Age for Computer Architecture: History, Challenges and Opportunities
UBC Computer Science
99K views • 7 years ago
49:56The Story of Super Mario Bros. 3
Gaming Historian
8.9M views • 6 years ago
51:5727c3: Reverse Engineering the MOS 6502 CPU (en)
Christiaan008
477K views • 15 years ago
3:55:45Oral History of Chuck Peddle
Computer History Museum
42K views • 7 years ago
12:40Tomb Raider on the Nintendo Game Boy Advance is incredible | MVG
Modern Vintage Gamer
906K views • 4 years ago
9:24Making of Second Reality / Future Crew
Mika Tuomi
184K views • 16 years ago
1:02:09Seymour Cray's Only Surviving Talk: "Cray-1 Introduction" (1976, LANL)
UC Berkeley Events
59K views • 16 years ago
1:00:12Pitfall Classic Postmortem With David Crane Panel at GDC 2011 (Atari 2600)
GameSpot
76K views • 15 years ago
1:02:28A History of The ARM Microprocessor | Dave Jaggar | Talks at Google
Talks at Google
22K views • 7 years ago
3:47Sketchpad, by Dr. Ivan Sutherland with comments by Alan Kay
David Carroll
54K views • 19 years ago
12 comments from Hacker News
the Gameboy, not the SNES, but this talk is very very good at going in detail about a bunch of internals. The graphics stuff is 29 minutes in but I love the whole video. Very much a high level guide to building a "retro-y" fantasy console for people into that stuff ▶ this video
Michael’s blog is one of my favorites. His “Ultimate Guide” talks are great and I rewatch them at least once a year. Ultimate Guide to the C64: link Ultimate Guide to the Game Boy: ▶ this video Ultimate Guide to the Apollo Guidance Computer: link
This is a good place to start. Named "the ultimate game boy talk" dives into the CPU used, the instruction set(s) used by the CPU, how the video instruction sets work(ed) etc. The game boy from 1989 is a pretty simple device to start learning from. From there you can look at how various people emulated the system. ▶ this video
Personally, I've had more trouble understanding the PPU behavior than i did about the cpu instructions and timings. I'd mostly been going off of The Ultimate Game Boy Talk[0] and the pandocs[1]. In trying to quickly dig up some resources now, I found what at first glance looks like a good blog series[2], so I might take some time to squint at them soon. If any HNer has other good resources describing it, I'd be thrilled. It's been a couple years since I've hacked on my own emulator, and I got through implementing quite a bit of the behavior. As I recall, I was able to get serial output from the test roms, which was pretty cool. I put it down after getting frustrated trying to render the screen. [0] ▶ this video [1] link [2] link
It's actually Z80-ish with some features missing and some new ones included. It's a Sharp LR35902 SoC with an SM83 core (not sure if it has been used in non-GB SoCs). I can recommend The Ultimate Gameboy Talk for details on it (and much more). ▶ this video EDIT: I had the SoC and the core names the wrong way around. Thanks svendahlstrand.
Modern Vintage Gamer just released a video [0] discussing this leak in greater detail along with its expected implications. Anyone who's curious can find the download links by backtracking through all the Pokemon Prototype General threads under the Pokemon board on 4chan. One of the leaks that caught my attention was the source for Pokemon Blue, partially because of nostalgia and partially out of curiosity to see what an old game's codebase even looks like. The first thing that stood out to me was the project's flat folder structure, full of hundreds of files; I guess I was expecting things to be a bit more structured. The source is more readable and approachable than I expected, although I've only poked around in some of the more obvious places and definitions. I'd recommend watching The Ultimate Game Boy Talk [1] before trying to dive into any code. [0] link [1] ▶ this video
Anyone interested in how the Game Boy works should watch "The Ultimate Game Boy Talk" by Michael Steil. ▶ this video
For anyone interest, I recommend watching "The Ultimate Game Boy Talk" [0] from 33c3, lots of interesting details about how a Game Boy works, including the PPU [0]: ▶ this video
I really like the Gameboy hardware; it's limited, but the design feels very elegant in it's simplicity. I've written a couple of toy Gameboy emulators at this point. It's a bit challenging to get anything working, and honestly I have no idea how to approach audio at all. Nevertheless, it's still quite fun. The LCD timings are a point of curiosity for me. It seems there's still a slight bit of mystery around it, still today. I was inspired to play with emulating Gameboy specifically after an excellent 33c3 talk, The Ultimate Game Boy Talk, which I highly recommend. ▶ this video (Some day I would like to approach emulation for more platforms, both newer and older, but I feel I still have so much time learn about designing emulators that I haven't bothered with that yet. It's so open ended, and handling things like cycle counting has a lot of different approaches of varying desirability.)
I've been working on a GB emulator for awhile. Step one is to understand the architecture of the system. What are the different hardware components? How do they interact? A simple emulator boils down to: While(true) Emulate_one_cpu_cycle() For each cycle you have to produce any side effects from the various peripherals (serial comms, update the display, generate audio, etc.), process any external changes (button presses, serial data), and emulate the next CPU instruction (basically a big switch). I recommend "The Ultimate Gameboy Talk (33c3)" [0], for an overview of the Gameboy and it's internal peripherals. There are various test ROMs available that you can use to verify the basic functionality. [1][2] 0. ▶ this video 1. link 2. link
Game Boy emulators are always great for educational or experimental projects, because the Game Boy platform is surprisingly simple, which leads to a very quick payoff, and yet very "real" in that the Game Boy was a great commercial success with thousands of software titles available, so you have plenty of software available to try in your project and actually make use of that payoff. One example to illustrate how simple the Game Boy is: There is no operating system at all, only a 256 byte boot ROM whose sole purpose is to display the Nintendo logo from the cartridge and halt if it does not checksum correctly (for both cartridge integrity and legal reasons). This entertaining 33c3 talk manages to describe the Game Boy hardware practically in its entirety (and with some previously unknown details, actually): ▶ this video
The Ultimate Game Boy Talk[0] (listed in the page) is one of my favorite talks of all time. If you were to send this talk to someone, with basically just the videe they could likely build a faithful Gameboy clone. It's so dense, easy to understand, and comprehensive. I'll listen to it form time to time and think about all the cool tricks it reveals. Super impressive to have that much knowledge for a system that only had a couple thousand programs ever written for it. [0]: ▶ this video