Skip to content

Commit

Permalink
Merge pull request #16 from mary-kate/patch-1
Browse files Browse the repository at this point in the history
Correct a few "Gameboy" spellings to the proper "Game Boy" spelling
  • Loading branch information
ahrnbom committed Oct 6, 2022
2 parents 996e191 + 69140ee commit 55e2f56
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions gbasmdev.tex
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ \section{Why write this?}

I do not know every detail about Game Boy development. I have made a complete Game Boy game, and this book is based on the experience and knowledge I gathered when making it. It is my opinion that the currently existing literature doesn't explain the topic well enough (either leaving out far too much, or by including far too many unnecessary details and assuming too much previous knowledge) that I believe that this book should be useful to many, even if there might be some errors, or some important things left out. If you have any suggestions for improvements, please contact me at \url{mail@teamlampoil.se}.

There is a project called "Awesome Gameboy Development", available at \url{https://github.com/gbdev/awesome-gbdev} which tries to gather as much resources as possible related to Game Boy development, emulators etc. If you are looking for something that you cannot find in this book, chances are you can find it there.
There is a project called "Awesome Game Boy Development", available at \url{https://github.com/gbdev/awesome-gbdev} which tries to gather as much resources as possible related to Game Boy development, emulators etc. If you are looking for something that you cannot find in this book, chances are you can find it there.

\section{Assembler vs C}
\label{asmvsc}
Expand All @@ -83,11 +83,11 @@ \chapter{Basics of Game Boy Assembly}

\section{Brief description of the hardware}
\label{hardware}
The Game Boy CPU is an 8-bit Sharp LR35902. It is quite similar to the z80 processor which was common in the 1980s, but it's not identical. The z80 has some more advanced instructions, so if you see z80 ASM code you want to use for your game, it might need some modifications. The Game Boy CPU runs at around 4 MHz (or 8 MHz on the Gameboy Color's high speed mode). This is incredibly slow by today's standards, and the CPU has such a limited amount of supported operations that it's quite easy to know most of them by heart, which makes it relatively easy to program for, at least in ASM.
The Game Boy CPU is an 8-bit Sharp LR35902. It is quite similar to the z80 processor which was common in the 1980s, but it's not identical. The z80 has some more advanced instructions, so if you see z80 ASM code you want to use for your game, it might need some modifications. The Game Boy CPU runs at around 4 MHz (or 8 MHz on the Game Boy Color's high speed mode). This is incredibly slow by today's standards, and the CPU has such a limited amount of supported operations that it's quite easy to know most of them by heart, which makes it relatively easy to program for, at least in ASM.

The Game Boy has 8 kB of RAM, and additional RAM may be available inside certain game carts. There's also 8 kB of dedicated VRAM for storing graphics.

The screen has a resolution of 160x144, supporting 4 colors (darkest, dark, light, lightest) on the original Gameboy and the Game Boy Pocket and Light, or many more colors on the Super Game Boy and Game Boy Color (although the way these are colored is completely different, see Chapters~\ref{sgb} and \ref{gbc}).
The screen has a resolution of 160x144, supporting 4 colors (darkest, dark, light, lightest) on the original Game Boy and the Game Boy Pocket and Light, or many more colors on the Super Game Boy and Game Boy Color (although the way these are colored is completely different, see Chapters~\ref{sgb} and \ref{gbc}).

The graphics are made out of background tiles and foreground sprites, letting the sprites move arbitrarily around over the background. The Game Boy actually renders a 256x256 pixel surface, and then a 160x144 section is cropped from that and displayed on the screen. Moving this viewport around is used for creating scrolling effects.

Expand Down

0 comments on commit 55e2f56

Please sign in to comment.