added all the examples for the FX library. changes in the Readme.md and updated the docs.
This commit is contained in:
parent
4c3a37dee7
commit
6c70700ad7
157 changed files with 838 additions and 768 deletions
210
README.md
210
README.md
|
@ -3,13 +3,15 @@
|
|||
Running Rust on the [Arduboy](https://arduboy.com/) miniature game system.
|
||||
|
||||
The most important first.
|
||||
I didn't create this project from scratch, @Seeker14491 the legend has already done a lot in his old project [ArduboyRust](https://github.com/Seeker14491/ArduboyRust)
|
||||
I didn't create this project from scratch, @Seeker14491 the legend has already done a lot in his old
|
||||
project [ArduboyRust](https://github.com/Seeker14491/ArduboyRust)
|
||||
|
||||
I just updated and completed the project.
|
||||
|
||||
### What do i mean by completed?
|
||||
|
||||
I provided all the important functions from the [Arduboy2](https://github.com/MLXXXp/Arduboy2) library in a safe Rust API.
|
||||
I provided all the important functions from the [Arduboy2](https://github.com/MLXXXp/Arduboy2) library in a safe Rust
|
||||
API.
|
||||
|
||||
Most of the Arduboy2 funktions can be called the same way like in C.
|
||||
|
||||
|
@ -30,19 +32,22 @@ add the following rule to the lsp settings :
|
|||
|
||||
```json
|
||||
{
|
||||
"rust-analyzer.checkOnSave.allTargets": false
|
||||
"rust-analyzer.checkOnSave.allTargets": false
|
||||
}
|
||||
```
|
||||
|
||||
If your using Visual Studio Code: Create a folder named `.vscode` and a file named `settings.json` inside. Past the setting above in the new file. (I have excluded my `.vscode` folder because I have many different settings there that you don't need)
|
||||
If your using Visual Studio Code: Create a folder named `.vscode` and a file named `settings.json` inside. Past the
|
||||
setting above in the new file. (I have excluded my `.vscode` folder because I have many different settings there that
|
||||
you don't need)
|
||||
|
||||
Your game is located in the Project/game folder. This is also the folder you are working in
|
||||
|
||||
Inside the game folder you will find a lib.rs file which contains the setup and loop function as you know it from a normal Arduboy C project.
|
||||
Inside the game folder you will find a lib.rs file which contains the setup and loop function as you know it from a
|
||||
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
|
||||
|
||||
|
@ -53,7 +58,8 @@ cargo doc -p arduboy-rust --open
|
|||
Most of the time you will use the prelude.
|
||||
There is listed witch funktionality you will have.
|
||||
|
||||
And last but not least there are multiple examples inside of the Examples folder which shows you how to use the functions.
|
||||
And last but not least there are multiple examples inside of the Examples folder which shows you how to use the
|
||||
functions.
|
||||
I will from time to time also upload my projects to the Example folder so you have as much ressurces as possible.
|
||||
|
||||
## Usage of the run tool
|
||||
|
@ -62,134 +68,118 @@ I will from time to time also upload my projects to the Example folder so you ha
|
|||
|
||||
requirements:
|
||||
|
||||
- [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
|
||||
- [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.
|
||||
All builded `.hex` files are saved inside of `arduboy-rust/Wrapper-Project/build/<GAMENAME>.hex` after you uploaded them
|
||||
to the Arduboy.
|
||||
|
||||
To upload your own game to the Arduboy use:
|
||||
|
||||
Linux:
|
||||
|
||||
```bash
|
||||
./run
|
||||
./run <Project_Name>
|
||||
```
|
||||
|
||||
Windows:
|
||||
|
||||
```ps1
|
||||
.\run.bat
|
||||
.\run.bat <Project_Name>
|
||||
```
|
||||
|
||||
## Play ZennDev1337 Games
|
||||
## List of all the Example Games:
|
||||
|
||||
### Dr. Boy
|
||||
### ZennDev1337 Games
|
||||
|
||||
To upload snake to the Arduboy use:
|
||||
- drboy
|
||||
|
||||
Linux:
|
||||
### Rust Games
|
||||
|
||||
```bash
|
||||
./run drboy
|
||||
```
|
||||
|
||||
Windows:
|
||||
|
||||
```ps1
|
||||
.\run.bat drboy
|
||||
```
|
||||
|
||||
### Snake
|
||||
|
||||
To upload snake to the Arduboy use:
|
||||
|
||||
Linux:
|
||||
|
||||
```bash
|
||||
./run snake
|
||||
```
|
||||
|
||||
Windows:
|
||||
|
||||
```ps1
|
||||
.\run.bat snake
|
||||
```
|
||||
|
||||
## Play Rust Games
|
||||
|
||||
### I'm now a Rustacean <3
|
||||
|
||||
To upload rustacean to the Arduboy use:
|
||||
|
||||
Linux:
|
||||
|
||||
```bash
|
||||
./run rustacean
|
||||
```
|
||||
|
||||
Windows:
|
||||
|
||||
```ps1
|
||||
.\run.bat rustacean
|
||||
```
|
||||
|
||||
## Play Demo Games
|
||||
- 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)
|
||||
- [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)
|
||||
|
||||
To upload a demo to the Arduboy use:
|
||||
## Usage of the FX Chip
|
||||
|
||||
requirements:
|
||||
|
||||
```
|
||||
python3 -m pip install pyserial pillow
|
||||
```
|
||||
|
||||
You need to create a fxdata folder in your project directory.
|
||||
|
||||
Don't forget to uncomment the `ArduboyFX_Library` line in the `import_config.h` file.
|
||||
|
||||
run Commands:
|
||||
|
||||
```
|
||||
|Project_Dir
|
||||
->fxdata
|
||||
->src
|
||||
->lib.rs
|
||||
>cargo.toml
|
||||
```
|
||||
|
||||
You also need a fxdata.txt file in this new folder.
|
||||
|
||||
See the examples in `Examples/ArduboyFX`.
|
||||
|
||||
More information:
|
||||
|
||||
- [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.
|
||||
|
||||
Linux:
|
||||
|
||||
```bash
|
||||
./run demo2
|
||||
./run demo3
|
||||
./run demo4
|
||||
./run demo5
|
||||
./run demo6
|
||||
./run demo7
|
||||
./run demo9
|
||||
./run eeprom
|
||||
./run eeprom-byte
|
||||
./run progmem
|
||||
./run tone
|
||||
./run fxbuild <Project_Name>
|
||||
./run fxupload <Project_Name>
|
||||
./run fxall <Project_Name>
|
||||
```
|
||||
|
||||
Windows:
|
||||
|
||||
```ps1
|
||||
.\run.bat demo2
|
||||
.\run.bat demo3
|
||||
.\run.bat demo4
|
||||
.\run.bat demo5
|
||||
.\run.bat demo6
|
||||
.\run.bat demo7
|
||||
.\run.bat eeprom
|
||||
.\run.bat eeprom-byte
|
||||
.\run.bat progmem
|
||||
.\run.bat tone
|
||||
.\run.bat fxbuild <Project_Name>
|
||||
.\run.bat fxupload <Project_Name>
|
||||
.\run.bat fxall <Project_Name>
|
||||
```
|
||||
|
||||
### Convert the fxdata.h file to Rust
|
||||
|
||||
[FXdata Converter by ZennDev1337](https://zenndev1337.github.io/Rust-for-Arduboy/fxdata-converter.html)
|
||||
|
||||
# Create a new project
|
||||
|
||||
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.)
|
||||
(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
|
||||
|
@ -215,6 +205,7 @@ Next jump in your lib.rs file and add the following:
|
|||
//Include the Arduboy Library
|
||||
#[allow(unused_imports)]
|
||||
use arduboy_rust::prelude::*;
|
||||
|
||||
#[allow(dead_code)]
|
||||
const arduboy: Arduboy2 = Arduboy2::new();
|
||||
|
||||
|
@ -261,30 +252,35 @@ To run and upload your game use the run tool
|
|||
|
||||
## Creating and building an Arduboy crate [Outdated]
|
||||
|
||||
You can find instructions on how all build steps work in detail here [ArduboyRust creating and building an arduboy crate](https://github.com/Seeker14491/ArduboyRust#creating-and-building-an-arduboy-crate)
|
||||
You can find instructions on how all build steps work in detail
|
||||
here [ArduboyRust creating and building an arduboy crate](https://github.com/Seeker14491/ArduboyRust#creating-and-building-an-arduboy-crate)
|
||||
|
||||
## Linking the static library to the Arduino C++ project [Outdated]
|
||||
|
||||
Instructions on how to link all the static libraries in the Arduino C++ project can be found here [ArduboyRust linking the static library to the arduino c++ project](https://github.com/Seeker14491/ArduboyRust#linking-the-static-library-to-the-arduino-c-project)
|
||||
Instructions on how to link all the static libraries in the Arduino C++ project can be found
|
||||
here [ArduboyRust linking the static library to the arduino c++ project](https://github.com/Seeker14491/ArduboyRust#linking-the-static-library-to-the-arduino-c-project)
|
||||
|
||||
## Credits
|
||||
|
||||
Thanks to @Seeker14491 who wrote [ArduboyRust](https://github.com/Seeker14491/ArduboyRust), the starting point for me to create my own project based on this project. (you are a hero <3)
|
||||
Thanks to @Seeker14491 who wrote [ArduboyRust](https://github.com/Seeker14491/ArduboyRust), the starting point for me to
|
||||
create my own project based on this project. (you are a hero <3)
|
||||
|
||||
Thanks to @simon-i1-h who wrote [arduboy-hello-rs](https://github.com/simon-i1-h/arduboy-hello-rs), the proof of concept that inspired me to try Rust on the Arduboy.
|
||||
Thanks to @simon-i1-h who wrote [arduboy-hello-rs](https://github.com/simon-i1-h/arduboy-hello-rs), the proof of concept
|
||||
that inspired me to try Rust on the Arduboy.
|
||||
|
||||
## License
|
||||
|
||||
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.
|
||||
|
||||
## Contribution
|
||||
|
||||
Unless you explicitly state otherwise, any contribution intentionally submitted
|
||||
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
|
||||
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
|
||||
additional terms or conditions.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue