GarbAGE (Garbage Accurate GameBoy Emulator)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

4.6 KiB

Terminology

GameBoy terminology.

Terminology

Hardware (1)(2)

Name Modern equivalent Description
APU Sound card Audio Processing Unit
PPU GPU Pixel Processing Unit
Bootrom BIOS
HRAM (High RAM) CPU cache Embedded memory inside the CPU, 127 bytes
WRAM (Work RAM) RAM

Flags

The half-carry flag H is set when an arithmetic operation on two numbers causes a carry from bit #3 to bit #4 for 8-bit operations or a carry from bit #11 to bit #12 for 16-bit operations. For 16-bit operation this indicates the lower 4 bits of the second byte(3).

We start counting from the right as bit #0!

Opcode

Name Bits Sign Mnemonics 1 2 3/3 4 Description Note
immediate 8 unsigned i8 d8 n8 n Next byte in memory
immediate 16 unsigned i16 d16 n16 nn Next byte in memory little-endian
register 8 unsigned r8 r8 r Any of the registers
register 16 unsigned r16 r16 rr Any of the registers little-endian
address 8 unsigned a8 (n) Address at value
address 16 unsigned a16 or () a16 n16 (nn) nn Address at value little-endian
immediate 8 signed s8 r8 e8 e dd Next byte in memory used as offset
immediate 8 unsigned io8 (a8) n16 (n) n 0xff00 + next byte in memory write to I/O-port
condition <ZNHC> cc f Execute if condition met
constant 8 unsigned b u3 b n Single bit at position 'x'
constant 8 unsigned vec vec n One of RST vectors absolute fixed address

d = data
n = constant

Flag conditions

Flag conditions, sometimes referred to as cc, are the state the flags need to be in to execute the opcode. There are four possible checks(4)(5):

Code Meaning State
Z Execute if Zero flag is set 1
NZ Execute if Zero flag is unset 0
C Execute if Carry flag is set 1
NC Execute if Carry flag is unset 0
RST vectors

Absolute fixed address, possible values are(4): 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, and 0x38.

Variables

Name Meaning
length amount of elements
size amount of bytes
lhs left hand side
rhs right hand side

References

  1. "Memory Map". rgbdev.io. Retrieved 22 Aug 2022.
  2. "Specifications". rgbdev.io. Retrieved 22 Aug 2022.
  3. "A Visual Guide to the Gameboy's Half-Carry Flag". robdor.com. Retrieved 24 Aug 2022.
  4. "gbz80(7) — CPU opcode reference". rgbds.gbdev.io. Retrieved 26 Aug 2022.
  5. "GameBoy Opcode Summary". devrs.com. Retrieved 25 Aug 2022.