https://github.com/kernelghost/lameboy
A DIY handheld game console that's so bad, it's good.
https://github.com/kernelghost/lameboy
Last synced: about 1 year ago
JSON representation
A DIY handheld game console that's so bad, it's good.
- Host: GitHub
- URL: https://github.com/kernelghost/lameboy
- Owner: KernelGhost
- License: gpl-3.0
- Created: 2024-09-12T04:52:48.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-12T04:56:56.000Z (almost 2 years ago)
- Last Synced: 2024-09-12T14:22:09.114Z (almost 2 years ago)
- Language: C++
- Size: 44.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LameBoy

A DIY handheld game console that's so bad, it's good.
## Overview
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.
1. Blinky (Pac-Man)
2. Tetris
3. Brick
4. Snake
5. Space Invaders
6. Hidden
7. Pong (Single Player)
8. Kaleidoscope
## Images
## Hardware Components
- 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.
### Getting Started
1. Clone the repository.
```bash
git clone https://github.com/KernelGhost/LameBoy
```
2. 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.ino` file to the Arduino.
3. Connect the Arduino Mega 2560 to the LCD display, buttons, battery, and other components.
## Customisation
### Game ROMs
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.
### Button Layout
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.
## Contributing
Contributions are welcome! Feel free to submit pull requests or issues.
## Acknowledgements
LameBoy [splash](./Screens/Splash/Splash.bmp) and [error](./Screens/Error/Error.bmp) screens designed by [@gawdn](https://github.com/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.
## License
This project is licensed under the [GNU GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html).