Skip to content

Kotambail-Hegde/Masquerade-Emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Masquerade Emulator

A multi-system emulator which emulates the following gaming consoles and simulators

  • Game Boy Advance (GBA)
  • Game Boy Color (GBC)
  • Game Boy (GB)
  • Nintendo Entertainment System (NES)
  • Ms Pacman
  • Pacman (supports both Midway and Namco versions)
  • Space Invaders
  • CHIP8
  • S-CHIP
  • XO-CHIP
  • Game Of Life

Below mentioned gaming consoles are in roadmap

  • Super Nintendo Entertainment System (SNES)
  • Nintendo DS
  • Nintendo 3DS

Supported features

  • Supports GBA Bios
  • GBA passes jsmolka/alysoha-tas's arm.gba, thumb.gba, memory.gba, flash and PPU tests
  • GBA passes FuzzARM.gba
  • GBA passes all the AGS test suite except for Prefetch and Wait Control Memory tests
  • GBA passes most of the tonc's test suite
  • GBA is able to play most of the GBA video roms
  • GB / GBC supports NO MBC, MBC1, MBC2, MBC3 and MBC5
  • Supports GB and GBC Bios
  • GB / GBC implements Pixel Fetcher/FIFO
  • GBC supports GB mode
  • GB / GBC passes Tom Harte's CPU test (Was not tested against cycles)
  • GB / GBC passes all of the Blargg tests except for Wave RAM tests (Wave Ram tests are under debug)
  • GB / GBC passes many of the Moon Eye tests (Failing tests probably would pass with tweaks in the CONFIG.ini file)
  • GB / GBC passes the RTC (rtc3test) tests
  • GBC is able to play a slightly glitchy version of mezase.gbc (With few tweaks in the CONFIG.ini)
  • GB has options for different palettes (Includes 'Gearboy', 'Sameboy' and 'BGB' palettes)
  • NES supports NROM, MMC1, UxROM (002), CNROM, MMC3, AxROM and GxROM
  • NES supports Zapper in Port 2 (using mouse clicks)
  • NES supports battery backed PRG RAM
  • NES passes Nestest (both official and un-official opcodes)
  • NES passes Tom Harte's CPU test including cycles (both official and un-official opcodes)
  • NES passes all of Blargg's CPU tests (both official and un-official opcodes)
  • NES passes all of Blargg's CPU timing tests (both official and un-official opcodes)
  • NES passes all of Blargg's CPU dummy read/write tests (both official and un-official opcodes)
  • NES passes all CPU tests mentioned in Nes Dev Wiki (both official and un-official opcodes)
  • NES passes all the Blargg's blargg_ppu_tests_2005.09.15b tests
  • NES passes all the Blargg's blargg_apu_2005.07.30
  • NES passes all the Blargg's sprite_overflow_tests
  • NES passes all the Blargg's sprite_hit_tests_2005.10.05 tests
  • NES passes all other APU tests except for DMC (DMC is not implemented yet)
  • NES passes Blargg's vbl_nmi_timing and ppu_vbl_nmi tests
  • NES passes Blargg's cpu_interrupt_v2 tests
  • NES passes the OAM stress tests
  • NES passes both Blargg's and Bisqwit's ppu_open_bus tests
  • NES passes Bisqwit's cpu_exec_space tests
  • NES passes all of Blargg's mmc3_irq_tests
  • NES passes all of Blargg's mmc3_test/mmc3_test_2 expect for 4-scanline_timing.nes (This is under debug)
  • Supports many Z80 test roms (Undocumented Opcode Tests are still not handled)
  • Supports many c6502 test roms (both official and un-official opcodes)
  • Supports many 8080 test roms (Undocumented Opcode Tests are still not handled)
  • Chip8 supports CHIP8, S-CHIP and XO-CHIP modes
  • Chip8 passes all Timendus's chip8-test-suite v4.2 expect for scrolling tests (Support is not implemented yet)
  • Game Of Life supports Normal Mode and Torroidal Mode
  • Supports Save States and Load States
  • Has GUI based debugger support (For now, this is supported only in GB and GBC, currently in development for NES and GBA)
  • Has CLI based debugger support (For now, this is supported only in NES and GBA, currently in developement for GB and GBC)
  • Supports OTA updates
  • Menu-bar based UI for Windows platform
  • Internal GUI for platforms other than Windows
  • Supports dynamic drag and drop of roms. This includes multiple rom files for Space Invaders and Pacman/MsPacman

Features under developement

  • Support for scrolling requirement by Timendus's chip8-test-suite v4.2
  • Support Link Cable for Gameboy and Gameboy Color
  • Implement "Sync to Audio Playback Rate" to support audio for GBA and NES
  • Implement ROM prefetch and review the currently implemented sequential and non sequential wait cycles

Known Major Issues

  • GBA not so often exibits few minor graphical glitches. Suspected to be related to some startup or initialization not happening as expected.
  • GB/GBC audio is still has lot of undesired interference. "Sync to Audio Playback Rate" is expected to help in resolving these issue.

Game Play

Masquerade also provides some debugging facilites for homebrew developement.

Game Play with Debugger

  • QT5 based Debugger

    • Not supported yet
  • ImGui based Debugger

    • Not supported yet
  • Windows API based Debugger

    • Not supported yet
  • Bare Metal (OLC) based Debugger

    • Currently supported only when emulator runs in Gameboy and Gameboy Color modes

GBC-Debugger

  • CLI based Debugger

    • Currently supported only when emulator runs in Gameboy Advance and Nintendo Entertainment System modes

Normal Game Play

Gameboy Advance (Pokemon Ruby, Emerald and Sapphire)

Ruby Emerald Sapphire

Gameboy Advance (Pokemon Fire Red and Leaf Green)

FireRed leafGreen

Gameboy Color (Donkey Kong Country and Pokemon Crystal)

DonkeyKongCountry Crystal

Gameboy (Prehistorik Man in 'BGB' palette and Pokemon Green in 'Gearboy' palette)

PrehistorikMan Green

Nintendo Entertainment System (Super Mario Bros 3)

smb3-ezgif com-video-to-gif-converter

Nintendo Entertainment System (Super Mario Bros)

SMB

Nintendo Entertainment System (Zelda II: The Adventure of Link)

zelda2

Nintendo Entertainment System (Kong Classic)

kongClassic

Ms Pacman

MsPacman

Pacman

Pacman

Space Invader

SpaceInvaders

Chip8 (Pong)

Chip8

Game Of Life (Toroidal Mode)

GameOfLife

Supported Platforms

As of now, masquerade is only tested for windows platform. There are plans to port this to other platforms in near future.

User Interface

QT5

Not supported yet

ImGui

Not supported yet

Windows API

In windows platform, Windows API based user interface can be used for accessing various options of the emulator (whatever features not available via the menu-bar should be accessible via the CONFIG.ini)

Win32api

Bare Metal (OLC)

In non-windows (and also supported in windows) based platforms, for now, only the bare metal user interface is supported (whatever features not available via the internal menu-window should be accessible via the CONFIG.ini)

RetroMode

Credits