Skip to content
Snippets Groups Projects
Verified Commit 5e520c81 authored by João Magalhães's avatar João Magalhães :rocket:
Browse files

docs: new docs

parent cdcfc326
No related branches found
No related tags found
No related merge requests found
Pipeline #2826 passed
# Boytacean SDL
## Build
### Build SDL using [vcpkg](https://vcpkg.io/)
To be able to run the `cargo build` one must first install a local version of `vcpkg` using:
```bash
cargo install cargo-vcpkg
cargo vcpkg build
cargo build
```
#### Build SDL in Windows
For windows the vcpk based SDL building is simpler:
```bash
cargo install cargo-vcpkg
cargo build
```
Make sure that the current Rust in use is msvc based using:
```bash
rustup default stable-msvc
```
For more information check [GitHub - Rust-SDL2/rust-sdl2](https://github.com/Rust-SDL2/rust-sdl2).
### Build binaries
Then you can use the following command to build and run Boytacean SDL:
```bash
cargo build
cargo run
```
To reload the code continuously use the cargo watch tool:
```bash
cargo install cargo-watch
cargo watch -x run
```
There are some feature flags that control the verbosity of the emulator to run in debug mode use:
```bash
cargo build --features debug
```
To obtain more information about the issues.
## Execution
### Headless
It's possible to run the emulator in headless mode using the `--headless` parameter:
```bash
cargo run -- --rom-path ../../res/roms/test/blargg/cpu/cpu_instrs.gb --cycles 100000000 --headless --device stdout --unlimited
```
## Features
| Provider | Description |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `debug` | Activates the base `debug` feature from Boytacean. |
| `pedantic` | Additional safety instructions are executed to make sure the machine does no run "out of tracks", making sure to run many `panic()` calls. |
| `slow` | Runs the emulator at a very slow page 60x slower to allow visual debugging. |
| `cpulog` | Prints a log of the CPU instruction executed. |
# Boytacean SDL
## Build
### Build SDL using [vcpkg](https://vcpkg.io/)
To be able to run the `cargo build` one must first install a local version of `vcpkg` using:
```bash
cargo install cargo-vcpkg
cargo vcpkg build
cargo build
```
#### Build SDL in Windows
For windows the vcpkg based SDL building is simpler:
```bash
cargo install cargo-vcpkg
cargo build
```
Make sure that the current Rust in use is MSVC based using:
```bash
rustup default stable-msvc
```
For more information check [GitHub - Rust-SDL2/rust-sdl2](https://github.com/Rust-SDL2/rust-sdl2).
### Build binaries
Then you can use the following command to build and run Boytacean SDL:
```bash
cargo build
cargo run
```
To reload the code continuously use the cargo watch tool:
```bash
cargo install cargo-watch
cargo watch -x run
```
There are some feature flags that control the verbosity of the emulator to run in debug mode use:
```bash
cargo build --features debug
```
To obtain more information about the issues.
### Troubleshooting
#### I'm facing issues with the vcpkg binaries
If there're issues with the `cargo vcpkg build` build process you may need to remove the `~/.vcpkg-root` and re rung the process to re-build the whole set of packages.
### I'm having difficulties building SDL for arm64
Try the above strategy.
If that does not work try to remove the `Cargo.lock` file to flush dependencies.
## Execution
### Headless
It's possible to run the emulator in headless mode using the `--headless` parameter:
```bash
cargo run -- --rom-path ../../res/roms/test/blargg/cpu/cpu_instrs.gb --cycles 100000000 --headless --device stdout --unlimited
```
## Features
| Provider | Description |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `debug` | Activates the base `debug` feature from Boytacean. |
| `pedantic` | Additional safety instructions are executed to make sure the machine does no run "out of tracks", making sure to run many `panic()` calls. |
| `slow` | Runs the emulator at a very slow page 60x slower to allow visual debugging. |
| `cpulog` | Prints a log of the CPU instruction executed. |
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment