learn the fundamentals of computing from the comfort of your browser
Not so long ago, Nintendo introduced a plucky little handheld console called the Game Boy Advance. It was widely loved – if a bit troublesome to play in the dark, due to the lack of backlights. The Game Boy Advance is at once an artifact – a reminder of computing past, and a herald – of the things that have to come to pass in our mobile-computing present.
The Game Boy Advance – running on a tiny ARMv5 processor, gasping as it races scanlines and streams audio – is a tiny multimedia device, whose capabilities are still at a human scale. There's no operating system, no file system – assets must be bundled into the executable. Inputs and outputs are performed through interrupts.
Using Grant Galitz's IodineGBA, and Wintermute's devkitARM, we can emulate and explore the inner workings of a Game Boy Advance from the comfort of our browsers. We can write and compile simple homebrew programs for it. We can use it as a model to understand how our computers work today.
The audience of this talk will learn about and see examples of:
How memory works in an environment devoid of virtual memory mapping
How DMA works and why one would use it
Simple system calls and BIOS interaction
Basics of emulation
A few neat graphics tricks used in old 16 bit games
This talk may also be given as a workshop, given lead time.
Speaker Bio
I'm Chris Dickinson. I am a member of the Node core team, and sit on the io.js technical committee. I've been writing Node programs since 2009, and have apologized for at least 95% of them at some point. I will talk at length about old video games, parsers, color use, JS spec minutea, comics, etymology, or pictures of cats. I am a practiced beginner at all of these things, except for old video games.
gba point javascript – adventures in homebrew game-making
learn the fundamentals of computing from the comfort of your browser
Not so long ago, Nintendo introduced a plucky little handheld console called the Game Boy Advance. It was widely loved – if a bit troublesome to play in the dark, due to the lack of backlights. The Game Boy Advance is at once an artifact – a reminder of computing past, and a herald – of the things that have to come to pass in our mobile-computing present.
The Game Boy Advance – running on a tiny ARMv5 processor, gasping as it races scanlines and streams audio – is a tiny multimedia device, whose capabilities are still at a human scale. There's no operating system, no file system – assets must be bundled into the executable. Inputs and outputs are performed through interrupts.
Using Grant Galitz's IodineGBA, and Wintermute's devkitARM, we can emulate and explore the inner workings of a Game Boy Advance from the comfort of our browsers. We can write and compile simple homebrew programs for it. We can use it as a model to understand how our computers work today.
The audience of this talk will learn about and see examples of:
This talk may also be given as a workshop, given lead time.
Speaker Bio
I'm Chris Dickinson. I am a member of the Node core team, and sit on the io.js technical committee. I've been writing Node programs since 2009, and have apologized for at least 95% of them at some point. I will talk at length about old video games, parsers, color use, JS spec minutea, comics, etymology, or pictures of cats. I am a practiced beginner at all of these things, except for old video games.