-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 34c14cc
Showing
44 changed files
with
8,204 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
/build | ||
/.vscode | ||
/managed_components |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[submodule "vendor/wasm-micro-runtime"] | ||
path = vendor/wasm-micro-runtime | ||
url = https://github.com/bytecodealliance/wasm-micro-runtime.git |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# The following lines of boilerplate have to be in your project's | ||
# CMakeLists in this exact order for cmake to work correctly | ||
cmake_minimum_required(VERSION 3.16) | ||
|
||
include($ENV{IDF_PATH}/tools/cmake/project.cmake) | ||
project(wasm4-esp32) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
MIT License | ||
|
||
Copyright (c) 2024 lijunchen | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. | ||
|
||
## Third-Party Licenses | ||
|
||
This project includes code from the following third-party projects: | ||
|
||
### WASM-4 License | ||
Copyright (c) Bruno Garcia | ||
|
||
Permission to use, copy, modify, and/or distribute this software for any | ||
purpose with or without fee is hereby granted, provided that the above | ||
copyright notice and this permission notice appear in all copies. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND | ||
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
PERFORMANCE OF THIS SOFTWARE. | ||
|
||
See `./LICENSE-WASM4.txt` for details. | ||
|
||
### ST7789 License | ||
MIT License | ||
|
||
Copyright (c) 2020 nopnop2002 | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. | ||
|
||
|
||
See `./components/st7789/LICENSE` for details. | ||
|
||
### snake-mbt LICENSE | ||
|
||
See `./snake-mbt/LICENSE` for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Copyright (c) Bruno Garcia | ||
|
||
Permission to use, copy, modify, and/or distribute this software for any | ||
purpose with or without fee is hereby granted, provided that the above | ||
copyright notice and this permission notice appear in all copies. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND | ||
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
PERFORMANCE OF THIS SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# MoonBit WASM-4 on ESP32 | ||
|
||
![1727189835964](https://github.com/user-attachments/assets/7b271c2b-14e0-44ce-bc88-7dc4b07546a5) | ||
|
||
GPIO should be configured according to your specific ESP32 board. | ||
|
||
``` | ||
idf.py set-target esp32c6 | ||
moon build -C ./snake-mbt --target wasm | ||
xxd -n __game_card -i ./snake-mbt/target/wasm/release/build/snake.wasm > ./main/gamecard.c | ||
idf.py flash | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
set(srcs "st7789.c" "fontx.c") | ||
|
||
idf_component_register(SRCS "${srcs}" | ||
PRIV_REQUIRES driver | ||
INCLUDE_DIRS ".") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
menu "ST7789 Configuration" | ||
|
||
config GPIO_RANGE_MAX | ||
int | ||
default 33 if IDF_TARGET_ESP32 | ||
default 46 if IDF_TARGET_ESP32S2 | ||
default 48 if IDF_TARGET_ESP32S3 | ||
default 18 if IDF_TARGET_ESP32C2 | ||
default 19 if IDF_TARGET_ESP32C3 | ||
default 30 if IDF_TARGET_ESP32C6 | ||
|
||
config WIDTH | ||
int "SCREEN WIDTH" | ||
range 0 999 | ||
default 240 | ||
help | ||
The width resolution of the screen. | ||
|
||
config HEIGHT | ||
int "SCREEN HEIGHT" | ||
range 0 999 | ||
default 240 | ||
help | ||
The height resolution of the screen. | ||
|
||
config OFFSETX | ||
int "GRAM X OFFSET" | ||
range 0 99 | ||
default 0 | ||
help | ||
When your TFT have offset(X), set it. | ||
|
||
config OFFSETY | ||
int "GRAM Y OFFSET" | ||
range 0 99 | ||
default 0 | ||
help | ||
When your TFT have offset(Y), set it. | ||
|
||
config MOSI_GPIO | ||
int "MOSI GPIO number" | ||
range 0 GPIO_RANGE_MAX | ||
default 23 if IDF_TARGET_ESP32 | ||
default 35 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 | ||
default 0 # C3 and others | ||
help | ||
GPIO number (IOxx) to SPI MOSI. | ||
Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to MOSI. | ||
On the ESP32, GPIOs 35-39 are input-only so cannot be used as outputs. | ||
On the ESP32-S2, GPIO 46 is input-only so cannot be used as outputs. | ||
|
||
config SCLK_GPIO | ||
int "SCLK GPIO number" | ||
range 0 GPIO_RANGE_MAX | ||
default 18 if IDF_TARGET_ESP32 | ||
default 36 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 | ||
default 1 # C3 and others | ||
help | ||
GPIO number (IOxx) to SPI SCLK. | ||
Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to SCLK. | ||
On the ESP32, GPIOs 35-39 are input-only so cannot be used as outputs. | ||
On the ESP32-S2, GPIO 46 is input-only so cannot be used as outputs. | ||
|
||
config CS_GPIO | ||
int "CS GPIO number" | ||
range -1 GPIO_RANGE_MAX | ||
default -1 | ||
help | ||
GPIO number (IOxx) to SPI CS. | ||
When it is -1, CS isn't performed. | ||
Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to CS. | ||
On the ESP32, GPIOs 35-39 are input-only so cannot be used as outputs. | ||
On the ESP32-S2, GPIO 46 is input-only so cannot be used as outputs. | ||
|
||
config DC_GPIO | ||
int "DC GPIO number" | ||
range 0 GPIO_RANGE_MAX | ||
default 27 if IDF_TARGET_ESP32 | ||
default 37 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 | ||
default 2 # C3 and others | ||
help | ||
GPIO number (IOxx) to SPI DC. | ||
Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to DC. | ||
On the ESP32, GPIOs 35-39 are input-only so cannot be used as outputs. | ||
On the ESP32-S2, GPIO 46 is input-only so cannot be used as outputs. | ||
|
||
config RESET_GPIO | ||
int "RESET GPIO number" | ||
range 0 GPIO_RANGE_MAX | ||
default 33 if IDF_TARGET_ESP32 | ||
default 38 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 | ||
default 3 # C3 and others | ||
help | ||
GPIO number (IOxx) to RESET. | ||
Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to RESET. | ||
On the ESP32, GPIOs 35-39 are input-only so cannot be used as outputs. | ||
On the ESP32-S2, GPIO 46 is input-only so cannot be used as outputs. | ||
|
||
config BL_GPIO | ||
int "BACKLIGHT GPIO number" | ||
range -1 GPIO_RANGE_MAX | ||
default 32 if IDF_TARGET_ESP32 | ||
default 33 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 | ||
default 4 # C3 and others | ||
help | ||
GPIO number (IOxx) to BACKLIGHT. | ||
When it is -1, BACKLIGHT isn't performed. | ||
Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to BACKLIGHT. | ||
On the ESP32, GPIOs 35-39 are input-only so cannot be used as outputs. | ||
On the ESP32-S2, GPIO 46 is input-only so cannot be used as outputs. | ||
|
||
config INVERSION | ||
bool "Enable Display Inversion" | ||
default false | ||
help | ||
Enable Display Inversion. | ||
|
||
choice SPI_HOST | ||
prompt "SPI peripheral that controls this bus" | ||
default SPI2_HOST | ||
help | ||
Select SPI peripheral that controls this bus. | ||
config SPI2_HOST | ||
bool "SPI2_HOST" | ||
help | ||
Use SPI2_HOST. This is also called HSPI_HOST. | ||
config SPI3_HOST | ||
depends on IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 | ||
bool "SPI3_HOST" | ||
help | ||
USE SPI3_HOST. This is also called VSPI_HOST | ||
endchoice | ||
|
||
config FRAME_BUFFER | ||
bool "Enable Frame Buffer" | ||
depends on !IDF_TARGET_ESP32C2 | ||
default false | ||
help | ||
Enable Frame Buffer. | ||
|
||
endmenu |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2020 nopnop2002 | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# | ||
# "main" pseudo-component makefile. | ||
# | ||
# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) |
Oops, something went wrong.