new docs and new readme
This commit is contained in:
parent
a54fa90edc
commit
a2889273dd
1588 changed files with 3011 additions and 23670 deletions
162
README.md
162
README.md
|
@ -25,14 +25,14 @@ git clone https://github.com/ZennDev1337/Rust-for-Arduboy
|
|||
|
||||
Install [PlatformIO Core](https://docs.platformio.org/en/latest/core/installation/methods/pypi.html) on your system.
|
||||
I recommend the pip install if you don't want to configure a new path variable for pio.
|
||||
Otherwise you will know how to do that.
|
||||
Otherwise, you will know how to do that.
|
||||
|
||||
The rust-analyzer will complain about a missing test crate to fix this
|
||||
add the following rule to the lsp settings :
|
||||
|
||||
```json
|
||||
{
|
||||
"rust-analyzer.checkOnSave.allTargets": false
|
||||
"rust-analyzer.checkOnSave.allTargets": false
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -47,7 +47,7 @@ normal Arduboy C project.
|
|||
|
||||
You can find the Docs here:
|
||||
|
||||
- [arduboy-rust Crate Docs](https://zenndev1337.github.io/Rust-for-Arduboy/)
|
||||
- [arduboy-rust Crate Docs](https://zenndev1337.github.io/Rust-for-Arduboy/)
|
||||
|
||||
or you can use the following command to open the arduboy-rust Crate docs locally
|
||||
|
||||
|
@ -64,14 +64,14 @@ I will from time to time also upload my projects to the Example folder so you ha
|
|||
|
||||
## Usage of the run tool
|
||||
|
||||
**Both run scripts** (only works if you use the given folder structure)
|
||||
**The run script** only work if you use the given folder structure!
|
||||
|
||||
requirements:
|
||||
|
||||
- Python3.11 or higher
|
||||
- [PlatformIO Core](https://docs.platformio.org/en/latest/core/installation/methods/pypi.html) must be installed
|
||||
- The Arduboy must be plugged in
|
||||
- You are in the root directory of this project
|
||||
- Python3.11 or higher
|
||||
- [PlatformIO Core](https://docs.platformio.org/en/latest/core/installation/methods/pypi.html) must be installed
|
||||
- The Arduboy must be plugged in
|
||||
- You are in the root directory of this project
|
||||
|
||||
All builded `.hex` files are saved inside of `arduboy-rust/Wrapper-Project/build/<GAMENAME>.hex` after you uploaded them
|
||||
to the Arduboy.
|
||||
|
@ -81,43 +81,58 @@ To upload your own game to the Arduboy use:
|
|||
Linux:
|
||||
|
||||
```bash
|
||||
./run <Project_Name>
|
||||
python ./run.py <Project_Name>
|
||||
```
|
||||
|
||||
Windows:
|
||||
|
||||
```ps1
|
||||
.\run.bat <Project_Name>
|
||||
python .\run.py <Project_Name>
|
||||
```
|
||||
|
||||
All commands:
|
||||
|
||||
```
|
||||
Usage build and upload Project:
|
||||
run.py list Get a list of all Projects
|
||||
run.py new <Project-Name> Create a new game in the Project folder
|
||||
run.py <Project-Name> For uploading a game
|
||||
|
||||
Usage FX-Data build and upload:
|
||||
run.py fxbuild <Project-Name> Build your fxdata
|
||||
run.py fxupload <Project-Name> Upload your fxdata
|
||||
run.py fxall <Project-Name> Build and Upload your fxdata
|
||||
and the game in one step
|
||||
```
|
||||
|
||||
## List of all the Example Games:
|
||||
|
||||
### ZennDev1337 Games
|
||||
|
||||
- drboy
|
||||
- drboy
|
||||
|
||||
### Rust Games
|
||||
|
||||
- snake
|
||||
- rustacean
|
||||
- snake
|
||||
- rustacean
|
||||
|
||||
### The demo games / tutorials from the official Arduboy forum [Rewritten in Rust]
|
||||
|
||||
- [Make Your Own Arduboy Game: Part 1 - Setting Up Your Computer](https://community.arduboy.com/t/make-your-own-arduboy-game-part-1-setting-up-your-computer/7924/1)
|
||||
- [demo2] [Make Your Own Arduboy Game: Part 2 - Printing Text](https://community.arduboy.com/t/make-your-own-arduboy-game-part-2-printing-text/7925)
|
||||
- [demo3] [Make Your Own Arduboy Game: Part 3 - Storing Data & Loops](https://community.arduboy.com/t/make-your-own-arduboy-game-part-3-storing-data-loops/7926)
|
||||
- [demo4] [Make Your Own Arduboy Game: Part 4 - Questions & Button Input](https://community.arduboy.com/t/make-your-own-arduboy-game-part-4-questions-button-input/7927)
|
||||
- [demo5] [Make Your Own Arduboy Game: Part 5 - Your First Game!](https://community.arduboy.com/t/make-your-own-arduboy-game-part-5-your-first-game/7928)
|
||||
- [demo6] [Make Your Own Arduboy Game: Part 6 - Graphics!](https://community.arduboy.com/t/make-your-own-arduboy-game-part-6-graphics/7929)
|
||||
Link for the [ZennDev1337 Tile Converter](https://zenndev1337.github.io/Rust-for-Arduboy/tile-converter.html)
|
||||
- [demo7] [Make Your Own Arduboy Game: Part 7 - Make Pong From Scratch!](https://community.arduboy.com/t/make-your-own-arduboy-game-part-7-make-pong-from-scratch/7930)
|
||||
- Prepare for
|
||||
demo9 [Make Your Own Arduboy Game: Part 8 - Starting DinoSmasher](https://community.arduboy.com/t/make-your-own-arduboy-game-part-8-starting-dinosmasher/7932)
|
||||
- [demo9] [Make Your Own Arduboy Game: Part 9 - Mapping DinoSmasher](https://community.arduboy.com/t/make-your-own-arduboy-game-part-9-mapping-dinosmasher/7931)
|
||||
- [eeprom] [Help, I’m struggling with EEPROM!](https://community.arduboy.com/t/help-im-struggling-with-eeprom/7178)
|
||||
- [eeprom-byte] [Help, I’m struggling with EEPROM!](https://community.arduboy.com/t/help-im-struggling-with-eeprom/7178)
|
||||
- [progmem] Usage of the big 28'000 Bytes flash memory for Bitmaps Sound sequeces and Text.
|
||||
- [tone] [ArduboyTonesTest](https://github.com/MLXXXp/ArduboyTones/blob/master/examples/ArduboyTonesTest/ArduboyTonesTest.ino)
|
||||
- [Make Your Own Arduboy Game: Part 1 - Setting Up Your Computer](https://community.arduboy.com/t/make-your-own-arduboy-game-part-1-setting-up-your-computer/7924/1)
|
||||
- [demo2] [Make Your Own Arduboy Game: Part 2 - Printing Text](https://community.arduboy.com/t/make-your-own-arduboy-game-part-2-printing-text/7925)
|
||||
- [demo3] [Make Your Own Arduboy Game: Part 3 - Storing Data & Loops](https://community.arduboy.com/t/make-your-own-arduboy-game-part-3-storing-data-loops/7926)
|
||||
- [demo4] [Make Your Own Arduboy Game: Part 4 - Questions & Button Input](https://community.arduboy.com/t/make-your-own-arduboy-game-part-4-questions-button-input/7927)
|
||||
- [demo5] [Make Your Own Arduboy Game: Part 5 - Your First Game!](https://community.arduboy.com/t/make-your-own-arduboy-game-part-5-your-first-game/7928)
|
||||
- [demo6] [Make Your Own Arduboy Game: Part 6 - Graphics!](https://community.arduboy.com/t/make-your-own-arduboy-game-part-6-graphics/7929)
|
||||
Link for the [ZennDev1337 Tile Converter](https://zenndev1337.github.io/Rust-for-Arduboy/tile-converter.html)
|
||||
- [demo7] [Make Your Own Arduboy Game: Part 7 - Make Pong From Scratch!](https://community.arduboy.com/t/make-your-own-arduboy-game-part-7-make-pong-from-scratch/7930)
|
||||
- Prepare for
|
||||
demo9 [Make Your Own Arduboy Game: Part 8 - Starting DinoSmasher](https://community.arduboy.com/t/make-your-own-arduboy-game-part-8-starting-dinosmasher/7932)
|
||||
- [demo9] [Make Your Own Arduboy Game: Part 9 - Mapping DinoSmasher](https://community.arduboy.com/t/make-your-own-arduboy-game-part-9-mapping-dinosmasher/7931)
|
||||
- [eeprom] [Help, I’m struggling with EEPROM!](https://community.arduboy.com/t/help-im-struggling-with-eeprom/7178)
|
||||
- [eeprom-byte] [Help, I’m struggling with EEPROM!](https://community.arduboy.com/t/help-im-struggling-with-eeprom/7178)
|
||||
- [progmem] Usage of the big 28'000 Bytes flash memory for Bitmaps Sound sequeces and Text.
|
||||
- [tone] [ArduboyTonesTest](https://github.com/MLXXXp/ArduboyTones/blob/master/examples/ArduboyTonesTest/ArduboyTonesTest.ino)
|
||||
|
||||
## Usage of the FX Chip
|
||||
|
||||
|
@ -136,6 +151,7 @@ run Commands:
|
|||
```
|
||||
|Project_Dir
|
||||
->fxdata
|
||||
->fxdata.txt
|
||||
->src
|
||||
->lib.rs
|
||||
>cargo.toml
|
||||
|
@ -147,28 +163,28 @@ See the examples in `Examples/ArduboyFX`.
|
|||
|
||||
More information:
|
||||
|
||||
- [Arduboy-Python-Utilities by MrBlinky](https://github.com/MrBlinky/Arduboy-Python-Utilities)
|
||||
- [Arduboy-Python-Utilities by MrBlinky](https://github.com/MrBlinky/Arduboy-Python-Utilities)
|
||||
|
||||
run Commands:
|
||||
|
||||
- `fxbuild` is used to build the fxdata.dat file.
|
||||
- `fxupload` is used to upload the fxdata.dat file.
|
||||
- `fxall` is used to build and upload the fxdata.dat file and build and upload the game all in one step.
|
||||
- `fxbuild` is used to build the fxdata.dat file.
|
||||
- `fxupload` is used to upload the fxdata.dat file.
|
||||
- `fxall` is used to build and upload the fxdata.dat file and build and upload the game all in one step.
|
||||
|
||||
Linux:
|
||||
|
||||
```bash
|
||||
./run fxbuild <Project_Name>
|
||||
./run fxupload <Project_Name>
|
||||
./run fxall <Project_Name>
|
||||
python ./run.py fxbuild <Project_Name>
|
||||
python ./run.py fxupload <Project_Name>
|
||||
python ./run.py fxall <Project_Name>
|
||||
```
|
||||
|
||||
Windows:
|
||||
|
||||
```ps1
|
||||
.\run.bat fxbuild <Project_Name>
|
||||
.\run.bat fxupload <Project_Name>
|
||||
.\run.bat fxall <Project_Name>
|
||||
python .\run.py fxbuild <Project_Name>
|
||||
python .\run.py fxupload <Project_Name>
|
||||
python .\run.py fxall <Project_Name>
|
||||
```
|
||||
|
||||
### Convert the fxdata.h file to Rust
|
||||
|
@ -179,76 +195,20 @@ Windows:
|
|||
|
||||
In the root of the repo use the command:
|
||||
|
||||
(Don't use "-" in the name because of a cargo feature that takes the "-" and mixes sometimes with a "\_". You will have
|
||||
some weird behavior with the run tool.)
|
||||
|
||||
```bash
|
||||
cargo new --vcs=none --lib ./Project/newproject
|
||||
```
|
||||
|
||||
Then open the Cargo.toml in your new project and add the following dependencies and settings:
|
||||
|
||||
```toml
|
||||
[lib]
|
||||
crate-type = ["staticlib"]
|
||||
|
||||
[dependencies]
|
||||
|
||||
arduboy-rust = { path = "../../arduboy-rust" }
|
||||
```
|
||||
|
||||
Next jump in your lib.rs file and add the following:
|
||||
|
||||
```rust
|
||||
#![no_std]
|
||||
#![allow(non_upper_case_globals)]
|
||||
|
||||
//Include the Arduboy Library
|
||||
#[allow(unused_imports)]
|
||||
use arduboy_rust::prelude::*;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const arduboy: Arduboy2 = Arduboy2::new();
|
||||
|
||||
// Progmem data
|
||||
|
||||
// dynamic ram variables
|
||||
|
||||
// The setup() function runs once when you turn your Arduboy on
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn setup() {
|
||||
// put your setup code here, to run once:
|
||||
}
|
||||
|
||||
// The loop() function repeats forever after setup() is done
|
||||
#[no_mangle]
|
||||
#[export_name = "loop"]
|
||||
pub unsafe extern "C" fn loop_() {
|
||||
// put your main code here, to run repeatedly:
|
||||
}
|
||||
```
|
||||
|
||||
Now the last step. Go in the Cargo.toml in the root directory and add your project:
|
||||
|
||||
```toml
|
||||
[workspace]
|
||||
members = [
|
||||
#{All other Projects...}
|
||||
"Project/newproject",
|
||||
]
|
||||
resolver = "2"
|
||||
python ./run.py new <Project-Name>
|
||||
```
|
||||
|
||||
To run and upload your game use the run tool
|
||||
|
||||
```bash
|
||||
# Linux
|
||||
./run newproject
|
||||
python ./run.py <Project-Name>
|
||||
```
|
||||
|
||||
```ps1
|
||||
# Windows
|
||||
.\run.bat newproject
|
||||
python .\run.py <Project-Name>
|
||||
```
|
||||
|
||||
## Creating and building an Arduboy crate [Outdated]
|
||||
|
@ -273,10 +233,10 @@ that inspired me to try Rust on the Arduboy.
|
|||
|
||||
You can license it under either one of those licenses:
|
||||
|
||||
- Apache License, Version 2.0
|
||||
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
||||
- MIT license
|
||||
([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
||||
- Apache License, Version 2.0
|
||||
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
||||
- MIT license
|
||||
([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
||||
|
||||
Whichever you may prefer.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue