 |
 |
 |
 |
 |
GameBoy Emulator |
|
 |
|
- GameBoy emulator written in Java (J2SE 1.4) for usability as applet or standalone application:
- Applet works in Internet Explorer and Mozilla (Win32 and Linux).
- Emulates all GameBoy Z80 (Zilog 80) CPU instructions/op-codes:
- Virtually maintains SRAM, VRAM, and page RAM memory banks.
- Tracks all 8/16-bit registers (accumulator, flag, hi/lo, program counter, stack pointer, auxilary).
- Handles all interrupts including vertical blank, LCD control, timer overflow, and joypad input.
- Uses timed delays to simulate real runtime of op codes.
- Handles DMA requests allowing for GameBoy Color support.
- Strict use of bit shifting and bitwise operations in all emulated instructions.
- Video system replicates GameBoy LCD screen (160x144):
- Renders single lines at a time in back buffer and flushes to screen on vertical blank.
- Processes background, window (with scrolling), and sprite/character layers.
- Draws at most 40 sprites on screen, 10 per line, in proper overlapping order (i.e. z-order).
- Uses fast bit shifting to translate GameBoy color codes to standard RGB pixel format.
- Fully supports GameBoy Color palettes and partially supports Super GameBoy palettes.
- Sound system uses Java sound library (javax.sound.sampled.*):
- Emulates all 4 audio channels including 2x square wave, voluntary wave, and the noise generator.
- Sound is sampled at 44100 Hz in full stereo, sounding cleaner than original hardware.
- Supports all Memory Bank Controller (MBC) types:
- Provides memory read/write capabilities dependent on MBC type defined by ROM.
- Enables flawless emulation of most game ROMs.
- Ability to save/load battery backup RAMs (not available in applet).
|
 |
|
|
|
 |
 |
 |
 |
|