Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dabbertorres/gbemu
https://github.com/dabbertorres/gbemu
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/dabbertorres/gbemu
- Owner: dabbertorres
- License: 0bsd
- Created: 2022-07-10T16:45:06.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-07-24T06:30:15.000Z (over 2 years ago)
- Last Synced: 2023-08-21T18:13:15.868Z (over 1 year ago)
- Language: C++
- Size: 1.01 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GBEmu
## Features
TODO
## Usage
### Build and Run
```bash
cmake -B build
cmake --build build
./build/gbemu
```### Build and run test suite
Use the following commands from the project's root directory to run the test suite.
```bash
cmake -S test -B build/test
cmake --build build/test
CTEST_OUTPUT_ON_FAILURE=1 cmake --build build/test --target test# or simply call the executable:
./build/test/GBEmuTests
```To collect code coverage information, run CMake with the `-DENABLE_TEST_COVERAGE=1` option.
### Run clang-format
Use the following commands from the project's root directory to check and fix C++ and CMake source style.
This requires _clang-format_, _cmake-format_ and _pyyaml_ to be installed on the current system.```bash
cmake -S test -B build/test# view changes
cmake --build build/test --target format# apply changes
cmake --build build/test --target fix-format
```See [Format.cmake](https://github.com/TheLartians/Format.cmake) for details.
### Additional tools
The test and standalone subprojects include the [tools.cmake](cmake/tools.cmake) file which is used to import additional tools on-demand through CMake configuration arguments.
The following are currently supported.#### Sanitizers
Sanitizers can be enabled by configuring CMake with `-DUSE_SANITIZER=
`.#### Static Analyzers
Static Analyzers can be enabled by setting `-DUSE_STATIC_ANALYZER=`, or a combination of those in quotation marks, separated by semicolons.
By default, analyzers will automatically find configuration files such as `.clang-format`.
Additional arguments can be passed to the analyzers by setting the `CLANG_TIDY_ARGS`, `IWYU_ARGS` or `CPPCHECK_ARGS` variables.#### Ccache
Ccache can be enabled by configuring with `-DUSE_CCACHE=`.
## Resources
* https://gbdev.io/pandocs/About.html
* https://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html
* http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf
* https://ia903208.us.archive.org/9/items/GameBoyProgManVer1.1/GameBoyProgManVer1.1.pdf