This project aims to create a retro-style handheld game console using an Arduino Mega 2560.
The console runs a CHIP-8 emulator and comes pre-loaded with 8 games.
- Blinky (Pac-Man)
- Tetris
- Brick
- Snake
- Space Invaders
- Hidden
- Pong (Single Player)
- Kaleidoscope
![]() |
![]() |
![]() |
![]() |
![]() |
- Arduino Mega 2560
- LCD Display
- Buttons (Select, Up, Down, Left & Right)
- Buzzer
- Power Switch
- Li-ion Battery
- USB-Powered Li-ion Battery Charger with Variable DC Output PCB
Important
To ensure stability as well as prevent overheating, it is recommended to power the Arduino Mega with an input DC voltage between 7-12 volts.
-
Clone the repository.
git clone https://github.com/KernelGhost/LameBoy
-
Upload the code.
- Connect your Arduino Mega 2560 to your computer.
- Open the Arduino IDE and select the correct board and port.
- Upload the
LAMEBOY.inofile to the Arduino.
-
Connect the Arduino Mega 2560 to the LCD display, buttons, battery, and other components.
Since the LameBoy runs a CHIP-8 emulator, many existing CHIP-8 programs can be easily ported to the platform. However, due to the limited number of buttons on LameBoy compared to the standard CHIP-8 (16 buttons on CHIP-8 vs. 5 on LameBoy), some ROMs may need to be modified. This often involves editing the ROM file in a hex editor to remap the controls. Examples of how to do this are included in this repository.
You can modify the Arduino code to implement a larger number of buttons. This is simply a matter of declaring additional pins and modifying the button input code to correctly communicate these additional buttons to the emulator.
Contributions are welcome! Feel free to submit pull requests or issues.
LameBoy splash and error screens designed by @gawdn. All included ROMs are the original work of their respective authors and have been referenced where appropriate. I do not claim ownership of any of these programs. Some ROMs have been modified to enable compatibility with LameBoy.
This project is licensed under the GNU GPLv3.





