Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
46b3724
Publish Code
Kaleidosium Jan 17, 2025
c213639
Fixed YueScript build.
pigpigyyy Jan 21, 2025
f8e60f6
Disabled macro feature which crashes runtime.
pigpigyyy Jan 21, 2025
fb06bf0
Merge pull request #2 from pigpigyyy/fix-yuescript-build
Kaleidosium Jan 21, 2025
9396675
Update YueScript submodule
Kaleidosium Jan 21, 2025
94f39aa
Try to fix the "function TIC()..." isn't found bug, no luck so far...
Kaleidosium Jan 21, 2025
2f9a25a
Fix Demo and Mark
Kaleidosium Jan 21, 2025
b5c0e80
Format yue.cpp
Kaleidosium Jan 21, 2025
935c10a
Make it work in C99, let's hope this compiles in Win XP et cetera
Kaleidosium Jan 21, 2025
938979a
Fix Compilation Issues
Kaleidosium Jan 21, 2025
3efc206
Try fixing rpi-baremetal(4) and nintendo-3ds builds
Kaleidosium Jan 22, 2025
4d455a0
Try fixing linking
Kaleidosium Jan 22, 2025
05ab4f6
Reenable Exceptions
Kaleidosium Jan 22, 2025
7e8b501
Override YueParser
Kaleidosium Jan 22, 2025
4edcd9c
Try forcing newer glibc?
Kaleidosium Jan 23, 2025
8ca8581
Debugging Build Step
Kaleidosium Jan 24, 2025
06a5358
Update YueScript version
Kaleidosium Feb 20, 2025
f1babe0
Simplify build
Kaleidosium Feb 20, 2025
c6a2380
Merge branch 'yuescript' of https://github.com/kaleidosium/TIC-80 int…
Kaleidosium Feb 20, 2025
f4064a9
Add yue.cpp
Kaleidosium Feb 20, 2025
ab64890
Whoops
Kaleidosium Feb 20, 2025
79cbc09
Merge branch 'main' into yuescript
Kaleidosium Oct 20, 2025
aac7391
Update YueScript
Kaleidosium Oct 20, 2025
35760fd
Update circle.patch to try to fix the build error
Kaleidosium Oct 20, 2025
42a5453
Try removing -lstdc++fs
Kaleidosium Oct 20, 2025
9308f2a
Modify Patch
Kaleidosium Oct 20, 2025
b685d3e
Revert Update circle.patch
Kaleidosium Oct 20, 2025
70bf75b
???
Kaleidosium Oct 20, 2025
7e7d013
Forgot to git Apply
Kaleidosium Oct 20, 2025
6686ddc
Accidentally put it in macOS instead of N3DS
Kaleidosium Oct 20, 2025
e6bf328
Remove platform specific configurations for now
Kaleidosium Oct 20, 2025
677d26f
Remove thread_local for N3DS Build
Kaleidosium Oct 20, 2025
642b25f
Use a more reliable way to disable thread_local on N3DS
Kaleidosium Oct 20, 2025
620b431
Forgot to pass in initial-exec
Kaleidosium Oct 20, 2025
6fc404e
Remove build/yuescript-makefile-remove-stdc++fs.patch
Kaleidosium Oct 20, 2025
d0dc999
Include libyuescript in the baremetal Makefile
Kaleidosium Oct 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,12 @@ jobs:
cd build
emcmake cmake -DBUILD_SDLGPU=On -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_LUA=OFF -DBUILD_WITH_MOON=ON -DTIC80_TARGET=tic80moon .. --fresh
cmake --build . --parallel

- name: Build yue
run: |
cd build
emcmake cmake -DBUILD_SDLGPU=On -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_LUA=OFF -DBUILD_WITH_YUE=ON -DTIC80_TARGET=tic80yue .. --fresh
cmake --build . --parallel

- name: Build fennel
run: |
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@
path = vendor/pocketpy
url = https://github.com/pocketpy/pocketpy.git
shallow = true
[submodule "vendor/yuescript"]
path = vendor/yuescript
url = https://github.com/IppClub/YueScript.git
shallow = true
[submodule "vendor/lpeg"]
path = vendor/lpeg
url = https://github.com/roberto-ieru/LPeg.git
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ include(cmake/tools.cmake)

include(cmake/lua.cmake)
include(cmake/moon.cmake)
include(cmake/yue.cmake)
include(cmake/fennel.cmake)
include(cmake/wren.cmake)
include(cmake/mruby.cmake)
Expand Down
4 changes: 4 additions & 0 deletions assets.bat
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ build\bin\prj2cart demos\sfx.lua build\sfx.tic
build\bin\prj2cart demos\squirreldemo.nut build\squirreldemo.tic
build\bin\prj2cart demos\tetris.lua build\tetris.tic
build\bin\prj2cart demos\wrendemo.wren build\wrendemo.tic
build\bin\prj2cart demos\yuedemo.yue build\yuedemo.tic

build\bin\wasmp2cart demos\wasm\wasmdemo.wasmp build\wasmdemo.tic --binary demos\wasm\wasmdemo.wasm
build\bin\wasmp2cart demos\bunny\wasmmark\wasmmark.wasmp build\wasmmark.tic --binary demos\bunny\wasmmark\wasmmark.wasm
Expand All @@ -34,6 +35,7 @@ build\bin\prj2cart demos\bunny\rubymark.rb build\rubymark.tic
build\bin\prj2cart demos\bunny\schememark.scm build\schememark.tic
build\bin\prj2cart demos\bunny\squirrelmark.nut build\squirrelmark.tic
build\bin\prj2cart demos\bunny\wrenmark.wren build\wrenmark.tic
build\bin\prj2cart demos\bunny\yuemark.yue build\yuemark.tic

build\bin\bin2txt build\config.tic build\assets\config.tic.dat -z
build\bin\bin2txt build\luademo.tic build\assets\luademo.tic.dat -z
Expand Down Expand Up @@ -69,5 +71,7 @@ build\bin\bin2txt build\squirrelmark.tic build\assets\squirrelmark.tic.dat -z
build\bin\bin2txt build\wasmmark.tic build\assets\wasmmark.tic.dat -z
build\bin\bin2txt build\wrenmark.tic build\assets\wrenmark.tic.dat -z
build\bin\bin2txt build\wasmdemo.tic build\assets\wasmdemo.tic.dat -z
build\bin\bin2txt build\yuedemo.tic build\assets\yuedemo.tic.dat -z
build\bin\bin2txt build\yuemark.tic build\assets\yuemark.tic.dat -z

build\bin\bin2txt build\cart.png build\assets\cart.png.dat
1 change: 1 addition & 0 deletions build/assets/yuedemo.tic.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0x78, 0xda, 0xed, 0x52, 0xcd, 0x4a, 0xc3, 0x40, 0x10, 0xde, 0xfa, 0x73, 0xc8, 0x1e, 0x04, 0xdf, 0x60, 0x14, 0x04, 0x7f, 0x52, 0x4d, 0xda, 0x22, 0x5a, 0x88, 0x17, 0x15, 0x2c, 0x54, 0x0a, 0x52, 0xf0, 0x9c, 0xc6, 0xb5, 0x5d, 0x8c, 0x49, 0x49, 0xb6, 0xb5, 0x79, 0x83, 0x1c, 0x7c, 0x08, 0x8f, 0x12, 0xf2, 0x10, 0x7b, 0x96, 0xa5, 0x4f, 0x52, 0xf2, 0x0c, 0xce, 0xc6, 0x5a, 0x7a, 0x10, 0x3d, 0x78, 0xf0, 0xe2, 0x6c, 0x86, 0xdd, 0xef, 0x9b, 0xf9, 0x76, 0x16, 0xbe, 0x6c, 0x12, 0x42, 0x2a, 0x2f, 0x2b, 0xe4, 0xa7, 0x98, 0x2a, 0x8c, 0x34, 0x4d, 0xf3, 0x2c, 0xcb, 0x72, 0xbd, 0x23, 0xcc, 0x95, 0x5c, 0xa4, 0x52, 0xb3, 0x22, 0x4d, 0x55, 0x91, 0x65, 0xb2, 0x48, 0x5f, 0x65, 0xa1, 0x72, 0xa9, 0x64, 0x2e, 0xe5, 0x67, 0x7e, 0xad, 0x57, 0xdf, 0xea, 0xd5, 0x92, 0x9e, 0xfc, 0xc7, 0x9f, 0x46, 0xe9, 0x95, 0xf6, 0xae, 0x5c, 0x6f, 0xe5, 0xf9, 0x19, 0x7d, 0x54, 0x44, 0x2a, 0xf4, 0x76, 0xaa, 0x72, 0xa2, 0xd0, 0xbb, 0x59, 0x8e, 0xfe, 0x65, 0xf3, 0xd4, 0x7e, 0x12, 0x39, 0x2b, 0x94, 0x2a, 0x8a, 0xdf, 0xea, 0x8d, 0xb3, 0xdf, 0xbd, 0x7f, 0x75, 0x6d, 0xa3, 0x82, 0x7f, 0xfa, 0x7a, 0x5a, 0x21, 0xd5, 0x2a, 0x08, 0x2e, 0x7c, 0xd6, 0x04, 0x80, 0xbe, 0xfb, 0xc8, 0x3e, 0x10, 0x45, 0xda, 0x1d, 0x89, 0x41, 0x18, 0x35, 0xe7, 0xf4, 0x1d, 0x1b, 0x33, 0x3f, 0x1c, 0xb2, 0xc8, 0x04, 0xf6, 0xe8, 0x72, 0x1f, 0x37, 0xe1, 0x1d, 0xea, 0xbe, 0x3b, 0x16, 0x7b, 0x5a, 0x0d, 0x31, 0xb6, 0x8b, 0x12, 0x46, 0x7c, 0x28, 0x78, 0x18, 0xe8, 0x6a, 0xcc, 0x45, 0x79, 0x37, 0x3c, 0xb1, 0x9e, 0x3e, 0x83, 0xcf, 0x83, 0x07, 0x5d, 0xf0, 0xb9, 0xc7, 0x82, 0x18, 0x6b, 0xd7, 0xad, 0x2e, 0xb4, 0x3f, 0x00, 0xec, 0x7a, 0x03, 0x37, 0xe8, 0xe3, 0x23, 0x06, 0x3c, 0x06, 0x11, 0x42, 0x12, 0x8e, 0xa2, 0xcf, 0x4e, 0x08, 0xef, 0xc1, 0x1b, 0x84, 0x08, 0xf6, 0xb4, 0x7e, 0xcc, 0xa2, 0x18, 0x67, 0x34, 0xc1, 0x3a, 0xb4, 0xcb, 0x41, 0xe5, 0x54, 0x1c, 0x95, 0x8c, 0x18, 0xa5, 0xc2, 0xb1, 0xe8, 0xc4, 0x39, 0x3d, 0xa6, 0x89, 0x53, 0x6b, 0x50, 0xda, 0xf7, 0xc3, 0x9e, 0xeb, 0x43, 0xb7, 0x75, 0xee, 0x54, 0xcf, 0xa8, 0xc1, 0xef, 0xa1, 0x27, 0x02, 0xb0, 0xa8, 0x61, 0x24, 0x55, 0xc7, 0x5e, 0x10, 0xb6, 0x26, 0x0e, 0x96, 0x88, 0x1a, 0x12, 0x93, 0xe5, 0x8e, 0xba, 0x26, 0x74, 0x07, 0x35, 0x3c, 0x3f, 0x06, 0x1b, 0x71, 0x3c, 0x8c, 0xc0, 0x3e, 0xd8, 0x15, 0x3b, 0xc7, 0xd6, 0xde, 0xd1, 0x51, 0xdd, 0xda, 0xaf, 0x99, 0x13, 0x33, 0x31, 0xed, 0x86, 0x59, 0x37, 0x2d, 0x5c, 0x35, 0x13, 0x6f, 0x19, 0x46, 0x3c, 0x10, 0xb0, 0x7d, 0x75, 0xd9, 0x6e, 0x77, 0xe0, 0xb6, 0x73, 0xd3, 0xbe, 0xd8, 0xda, 0x36, 0x4f, 0x1a, 0xf8, 0x51, 0x43, 0xe8, 0xfb, 0xde, 0x01, 0x2b, 0x07, 0x25, 0xd7,
1 change: 1 addition & 0 deletions build/assets/yuemark.tic.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0x78, 0xda, 0xed, 0x55, 0xcd, 0x6f, 0xdc, 0x44, 0x14, 0x77, 0x0e, 0x54, 0xb2, 0xc5, 0x4a, 0xeb, 0x2b, 0xe2, 0xf0, 0x52, 0x84, 0xba, 0x9b, 0xee, 0x6e, 0xed, 0x4d, 0xb2, 0x20, 0x37, 0x1b, 0x2d, 0x05, 0x21, 0x22, 0x15, 0x09, 0x91, 0xd0, 0x10, 0xa9, 0x39, 0xcc, 0x7a, 0x67, 0xd7, 0x16, 0xfe, 0x58, 0xc6, 0xe3, 0xa4, 0x56, 0xd5, 0x6b, 0x4f, 0x1c, 0xf9, 0x03, 0x38, 0xc1, 0x15, 0x4e, 0xdc, 0xb9, 0x21, 0x6d, 0xa4, 0xfc, 0x01, 0x71, 0x54, 0xfe, 0x00, 0xb6, 0x1c, 0x22, 0x38, 0xc2, 0x1b, 0x8f, 0xed, 0xfd, 0x68, 0xd3, 0xf4, 0x06, 0x48, 0x19, 0xed, 0x73, 0xec, 0xf7, 0x7e, 0xbf, 0xf7, 0x66, 0xde, 0xc7, 0xe4, 0x4d, 0x43, 0x51, 0xde, 0x7a, 0xbb, 0x71, 0x78, 0xeb, 0xf0, 0xa7, 0xed, 0xdd, 0xe7, 0x4f, 0xf6, 0xff, 0x3e, 0x89, 0x7f, 0xf8, 0x63, 0xfc, 0xfe, 0xcf, 0x83, 0x77, 0xbf, 0x4e, 0xea, 0x9d, 0xf0, 0xee, 0xe1, 0xaf, 0x1f, 0x7c, 0xff, 0x67, 0xf4, 0xfc, 0xaf, 0x8b, 0x8b, 0x8b, 0x6f, 0x7f, 0xfc, 0xe5, 0x81, 0xf7, 0x74, 0x7d, 0x6b, 0x7f, 0xe5, 0xbb, 0x1b, 0xca, 0x55, 0x4b, 0xd7, 0x75, 0x94, 0x95, 0x14, 0xe5, 0x64, 0x49, 0x84, 0x2e, 0x55, 0xaa, 0xf8, 0xa8, 0xe8, 0xa7, 0x93, 0x25, 0x39, 0x4b, 0x95, 0x54, 0x2c, 0xe1, 0x21, 0x4d, 0xab, 0xfa, 0xe4, 0x6c, 0x51, 0x4e, 0x50, 0x27, 0xf4, 0x57, 0x2d, 0xe5, 0x7a, 0xfd, 0xab, 0xab, 0xa8, 0x73, 0x21, 0x2b, 0xca, 0x69, 0xfa, 0xdb, 0xf4, 0x1c, 0x65, 0x8a, 0xef, 0xcf, 0xce, 0x2b, 0x58, 0xe3, 0x4a, 0x9a, 0xaf, 0x0a, 0x1a, 0xd3, 0x49, 0x2a, 0x45, 0xae, 0x53, 0xac, 0xf1, 0x69, 0x5e, 0x6b, 0x29, 0x15, 0xa5, 0x34, 0xe2, 0xfb, 0x72, 0xbd, 0x45, 0x47, 0x54, 0x72, 0xa9, 0x5e, 0xd7, 0xff, 0xbf, 0x50, 0xff, 0xe9, 0xab, 0x24, 0x3d, 0x99, 0x4c, 0xd2, 0xc9, 0x92, 0x08, 0x5d, 0xb9, 0xaa, 0xfa, 0xd9, 0x92, 0xa4, 0x73, 0x72, 0x3d, 0xff, 0xff, 0xe7, 0xfa, 0xeb, 0x4a, 0xfa, 0x3b, 0x5e, 0x04, 0xd3, 0xe9, 0xb4, 0x82, 0xd8, 0x6a, 0x3e, 0xb3, 0x85, 0x88, 0x75, 0x8e, 0x35, 0x9e, 0xa2, 0x3c, 0x3b, 0xc7, 0x7f, 0x14, 0xd3, 0x45, 0xd1, 0x95, 0x2b, 0xcb, 0xaf, 0xbf, 0xf1, 0xcd, 0x0d, 0xa5, 0xd9, 0x04, 0xee, 0x72, 0x8f, 0x5a, 0x70, 0x2f, 0x0e, 0x82, 0xc4, 0x27, 0xec, 0x2b, 0x70, 0x03, 0x38, 0x88, 0xe9, 0xae, 0xcd, 0xdc, 0x31, 0xd7, 0x10, 0x40, 0x62, 0xee, 0x84, 0xcc, 0x82, 0xcf, 0xc3, 0x3e, 0xdc, 0x0f, 0x89, 0xed, 0x08, 0xe5, 0x80, 0x46, 0x36, 0x92, 0x68, 0x60, 0x3b, 0x82, 0xe4, 0x06, 0x23, 0xe0, 0x61, 0xe8, 0xe1, 0x03, 0x22, 0x4a, 0xc1, 0x09, 0x8f, 0xc1, 0x27, 0x41, 0x02, 0x7d, 0x74, 0xeb, 0xd2, 0x08, 0x6c, 0x12, 0xc0, 0xd0, 0x4b, 0x80, 0xb0, 0x30, 0x0e, 0x06, 0xc0, 0x1d, 0x0a, 0x91, 0xcd, 0x28, 0x0d, 0x1a, 0x10, 0x47, 0x82, 0x5d, 0x86, 0x6c, 0x09, 0xf7, 0x9e, 0x6b, 0xd3, 0x20, 0xc2, 0x6d, 0x7d, 0xba, 0xb3, 0x07, 0xf7, 0xe5, 0x87, 0xd0, 0xbb, 0xc1, 0x38, 0xe6, 0x16, 0x8c, 0x88, 0x4f, 0xc7, 0x64, 0x20, 0x34, 0x51, 0x46, 0xb2, 0x20, 0x89, 0x33, 0xc0, 0x11, 0x65, 0x91, 0x1b, 0x06, 0x16, 0x98, 0x2d, 0xb3, 0x65, 0x68, 0x9a, 0x0c, 0xb2, 0xef, 0x0e, 0xb8, 0x03, 0x5d, 0x68, 0x6f, 0x18, 0xb9, 0xe6, 0x13, 0xea, 0x8e, 0x1c, 0x8e, 0x2a, 0x73, 0xbd, 0xa3, 0x89, 0x9d, 0xf7, 0x09, 0x2b, 0x75, 0xa8, 0xc1, 0x27, 0x20, 0xdd, 0xf6, 0x48, 0x14, 0xc9, 0xdc, 0x68, 0x6a, 0xef, 0x58, 0xb8, 0xb1, 0xa0, 0xdd, 0xc1, 0x77, 0x27, 0x03, 0x5b, 0xb0, 0xde, 0xd6, 0x34, 0x35, 0xa0, 0xc7, 0x16, 0x74, 0xb7, 0x35, 0x55, 0xed, 0x3d, 0x42, 0xa6, 0x4f, 0xb8, 0xd3, 0x62, 0x24, 0x18, 0x84, 0x7e, 0xcd, 0x68, 0xc0, 0xfc, 0x1e, 0x9a, 0xd0, 0x93, 0x6e, 0xea, 0x02, 0x9c, 0x5c, 0x06, 0xce, 0xb7, 0x22, 0xd0, 0x32, 0x50, 0x06, 0x8f, 0xc6, 0x94, 0x0e, 0xbe, 0x5c, 0xe2, 0x34, 0x4d, 0x03, 0x69, 0xf8, 0xa8, 0xc3, 0x1d, 0xe8, 0x18, 0x25, 0xee, 0xe0, 0x75, 0x70, 0xcc, 0xe5, 0x54, 0x24, 0x01, 0xcf, 0x30, 0x60, 0x04, 0x0f, 0x51, 0xab, 0xcb, 0x73, 0xa0, 0xa9, 0x96, 0xdb, 0x1b, 0xd0, 0x7b, 0x84, 0x92, 0x20, 0x39, 0xfb, 0x19, 0xd9, 0x6f, 0x03, 0x7f, 0x75, 0xa4, 0xc5, 0xe3, 0x01, 0xe1, 0x74, 0x46, 0xc4, 0x04, 0xdc, 0xee, 0x42, 0xbe, 0x55, 0x79, 0xc6, 0xf2, 0xfb, 0x00, 0xf1, 0xaa, 0x3b, 0x04, 0x81, 0x29, 0xf2, 0x00, 0xdb, 0xf3, 0xf9, 0x41, 0xbb, 0x4c, 0xe1, 0x4b, 0x73, 0x96, 0x59, 0xf3, 0x24, 0xac, 0x75, 0xa1, 0x69, 0x96, 0xee, 0xb6, 0xc0, 0x28, 0xa9, 0xc6, 0x65, 0xb0, 0x24, 0x8b, 0x2a, 0xf3, 0x59, 0x86, 0x95, 0x99, 0xce, 0x28, 0x49, 0x19, 0xf7, 0x85, 0xf4, 0xcf, 0x5c, 0x1e, 0x2c, 0xb9, 0xdc, 0x82, 0x85, 0xee, 0x29, 0x1d, 0xbd, 0xa8, 0x5d, 0xa0, 0xe7, 0x9d, 0xf5, 0xf1, 0x67, 0xbb, 0x0b, 0xdd, 0x73, 0x44, 0xbc, 0x98, 0xe6, 0x67, 0xe8, 0x0d, 0x19, 0xb6, 0x79, 0x54, 0x7c, 0x21, 0x9e, 0xef, 0xb9, 0xbe, 0xb4, 0x6a, 0xea, 0x88, 0xf2, 0x07, 0x02, 0x3c, 0xcb, 0x3c, 0xee, 0x87, 0xa3, 0x1d, 0x3f, 0x71, 0xdf, 0x25, 0x7a, 0xab, 0x2b, 0x6a, 0x2e, 0x73, 0x92, 0x3b, 0xbc, 0x2d, 0x0a, 0xae, 0xaa, 0xd4, 0xc3, 0x99, 0x52, 0xe7, 0x82, 0xe6, 0xf6, 0x79, 0x68, 0x91, 0xcd, 0xb9, 0xe0, 0x32, 0x06, 0x6a, 0x19, 0xe5, 0x31, 0x0b, 0x40, 0xd2, 0x35, 0x6d, 0x38, 0x16, 0x70, 0x3c, 0xd0, 0xaa, 0x56, 0x0c, 0x7d, 0x17, 0x1e, 0x3f, 0xd1, 0x38, 0xe9, 0x7b, 0xb4, 0xe5, 0xe2, 0x00, 0x33, 0x5e, 0xcb, 0x2d, 0x0d, 0x39, 0x52, 0xab, 0xd8, 0x40, 0x23, 0x2f, 0xec, 0x13, 0x0f, 0xf6, 0x76, 0x3e, 0xec, 0x36, 0xf1, 0x14, 0x38, 0xc2, 0x3e, 0x5e, 0x08, 0xb6, 0x96, 0x1d, 0x07, 0xba, 0xb8, 0x01, 0x71, 0x59, 0x04, 0x18, 0x2f, 0xd3, 0xd7, 0x8c, 0xfa, 0xcc, 0xd4, 0x59, 0xeb, 0x6c, 0xac, 0xb5, 0x5b, 0xeb, 0xef, 0x6d, 0x2e, 0x62, 0x4c, 0xc4, 0x88, 0x09, 0xe6, 0x58, 0x70, 0xd1, 0xda, 0xe8, 0x74, 0x47, 0x5c, 0x1c, 0x19, 0xb3, 0xcf, 0x83, 0xcc, 0x89, 0x3a, 0x0c, 0x19, 0xb8, 0xa2, 0xf9, 0x1b, 0xb0, 0x29, 0x0e, 0xf9, 0xea, 0x8d, 0x66, 0xe9, 0xca, 0xe9, 0xe6, 0xe5, 0x74, 0x46, 0xfd, 0xf0, 0x88, 0xce, 0xe8, 0x66, 0x5d, 0xc6, 0xff, 0x22, 0x1b, 0x13, 0x4d, 0xb2, 0x1a, 0x80, 0x63, 0xe5, 0x8b, 0x8b, 0x76, 0x4c, 0x5c, 0x16, 0x15, 0x97, 0xa4, 0xa8, 0x21, 0xea, 0x1f, 0xca, 0x91, 0x5a, 0x95, 0xc4, 0x8f, 0x70, 0x2c, 0x35, 0xd5, 0xf6, 0xa2, 0x9a, 0xb9, 0x59, 0x7f, 0x3d, 0xbe, 0x98, 0x64, 0xc1, 0x66, 0xd4, 0xe6, 0x35, 0x39, 0xad, 0x73, 0xe3, 0xd4, 0x58, 0x6c, 0x4d, 0x34, 0xa3, 0x5b, 0x1c, 0xf4, 0x80, 0xd7, 0x6e, 0xde, 0x93, 0x8e, 0x2c, 0xb8, 0x09, 0xad, 0x16, 0xbc, 0x33, 0x3b, 0x45, 0xe6, 0xc4, 0xc4, 0x3f, 0x43, 0x82, 0x69, 0xc8, 0x14, 0xd9, 0xdb, 0x8c, 0x8a, 0x85, 0xcf, 0x69, 0xd8, 0x08, 0x0f, 0x8b, 0xee, 0x5c, 0x5d, 0xbc, 0xfd, 0xee, 0x40, 0xfb, 0x72, 0x4f, 0xff, 0x00, 0xc8, 0xda, 0xa8, 0x50,
1 change: 1 addition & 0 deletions build/baremetalpi/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ LIBS := \
$(TIC80LIB)/libluaapi.a \
$(TIC80LIB)/liblua.a \
$(TIC80LIB)/libmoon.a \
$(TIC80LIB)/libyuescript.a \
$(TIC80LIB)/libfennel.a \
$(TIC80LIB)/libzip.a \
$(TIC80LIB)/libblipbuf.a \
Expand Down
2 changes: 1 addition & 1 deletion build/baremetalpi/toolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ get_filename_component(ARM_TOOLCHAIN_DIR ${BINUTILS_PATH} DIRECTORY)
# Now squirrel works.
# Ideally should use the CFLAGS defined in circle build files, not hardwire them here too.
# For RPI2
#set(CMAKE_C_FLAGS " -DMINIZ_NO_TIME -DTIC_BUILD_WITH_FENNEL -DTIC_BUILD_WITH_MOON -DTIC_BUILD_WITH_JS -DTIC_BUILD_WITH_WREN -DTIC_BUILD_WITH_LUA -DLUA_32BITS -std=c99 -march=armv7-a+neon-vfpv4 -D AARCH=32 -D __circle__ -D BAREMETALPI --specs=nosys.specs -O3 -mabi=aapcs -marm -mfloat-abi=hard -mfpu=neon-vfpv4 -D__DYNAMIC_REENT__")
#set(CMAKE_C_FLAGS " -DMINIZ_NO_TIME -DTIC_BUILD_WITH_FENNEL -DTIC_BUILD_WITH_MOON -DTIC_BUILD_WITH_YUE -DTIC_BUILD_WITH_JS -DTIC_BUILD_WITH_WREN -DTIC_BUILD_WITH_LUA -DLUA_32BITS -std=c99 -march=armv7-a+neon-vfpv4 -D AARCH=32 -D __circle__ -D BAREMETALPI --specs=nosys.specs -O3 -mabi=aapcs -marm -mfloat-abi=hard -mfpu=neon-vfpv4 -D__DYNAMIC_REENT__")
# For RPI3
# investigate -funsafe-math-optimizations and -march=armv8-a+crc -mcpu=cortex-a53
set(CMAKE_C_FLAGS " -DMINIZ_NO_TIME -DLUA_32BITS -std=c99 -march=armv8-a -D AARCH=32 -mtune=cortex-a53 -D __circle__ -D BAREMETALPI --specs=nosys.specs -O3 -marm -mfloat-abi=hard -mfpu=neon-fp-armv8 -funsafe-math-optimizations -D__DYNAMIC_REENT__")
Expand Down
5 changes: 5 additions & 0 deletions cmake/core.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ target_include_directories(tic80core
PRIVATE
${THIRDPARTY_DIR}/moonscript
${THIRDPARTY_DIR}/fennel
${THIRDPARTY_DIR}/yuescript
${POCKETPY_DIR}/src
PUBLIC
${CMAKE_SOURCE_DIR}/include
Expand All @@ -72,6 +73,10 @@ if(BUILD_STATIC)
target_link_libraries(tic80core PRIVATE moon)
endif()

if(BUILD_WITH_YUE)
target_link_libraries(tic80core PRIVATE yuescript)
endif()

if(BUILD_WITH_FENNEL)
target_link_libraries(tic80core PRIVATE fennel)
endif()
Expand Down
2 changes: 1 addition & 1 deletion cmake/lua.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ if(BUILD_WITH_LUA AND PREFER_SYSTEM_LIBRARIES)
endif()
endif()

if(BUILD_WITH_LUA OR BUILD_WITH_MOON OR BUILD_WITH_FENNEL)
if(BUILD_WITH_LUA OR BUILD_WITH_MOON OR BUILD_WITH_YUE OR BUILD_WITH_FENNEL)
set(LUA_DIR ${THIRDPARTY_DIR}/lua)
set(LUA_SRC
${LUA_DIR}/lapi.c
Expand Down
70 changes: 70 additions & 0 deletions cmake/yue.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
################################
# YUESCRIPT
################################

option(BUILD_WITH_YUE "Yue Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_YUE: ${BUILD_WITH_YUE}")

if(BUILD_WITH_YUE)
set(YUESCRIPT_DIR ${THIRDPARTY_DIR}/yuescript)
set(YUESCRIPT_SRC
${YUESCRIPT_DIR}/src/yuescript/ast.cpp
${YUESCRIPT_DIR}/src/yuescript/parser.cpp
${YUESCRIPT_DIR}/src/yuescript/yue_ast.cpp
${YUESCRIPT_DIR}/src/yuescript/yue_parser.cpp
${YUESCRIPT_DIR}/src/yuescript/yue_compiler.cpp
${YUESCRIPT_DIR}/src/yuescript/yuescript.cpp
)

list(APPEND YUESCRIPT_SRC ${CMAKE_SOURCE_DIR}/src/api/yue.cpp)
list(APPEND YUESCRIPT_SRC ${CMAKE_SOURCE_DIR}/src/api/parse_note.c)

add_library(yuescript ${TIC_RUNTIME} ${YUESCRIPT_SRC})

if(NOT BUILD_STATIC)
set_target_properties(yuescript PROPERTIES PREFIX "")
else()
target_compile_definitions(yuescript INTERFACE TIC_BUILD_WITH_YUE)
endif()

target_link_libraries(yuescript
PRIVATE
runtime
luaapi
)

set_target_properties(yuescript PROPERTIES
LINKER_LANGUAGE CXX
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
)

target_include_directories(yuescript
PRIVATE
${YUESCRIPT_DIR}/src
${YUESCRIPT_DIR}/src/yuescript
${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/src/api
)

target_compile_definitions(yuescript PRIVATE
YUE_NO_MACRO
$<$<BOOL:${MSVC}>:_SCL_SECURE_NO_WARNINGS>
)

if(NINTENDO_3DS)
target_compile_options(yuescript PRIVATE -ftls-model=initial-exec)
endif()

if(MSVC)
target_compile_definitions(yuescript PRIVATE _SCL_SECURE_NO_WARNINGS)
else()
target_compile_options(yuescript PRIVATE -Wall -Wno-long-long -fPIC -O3)
endif()

if(APPLE)
target_compile_options(yuescript PRIVATE -Wno-deprecated-declarations)
endif()

endif()
114 changes: 114 additions & 0 deletions demos/bunny/yuemark.yue
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
-- title: Bunnymark in YueScript
-- author: Rob Loach
-- desc: Benchmarking tool to see how many bunnies can fly around the screen, using YueScript.
-- license: MIT License
-- input: gamepad
-- script: yue
-- version: 1.1.0

screenWidth = 240
screenHeight = 136
toolbarHeight = 6
t = 0

class Bunny
@width: 26
@height: 32

new: =>
@x = math.random(0, screenWidth - @@width)
@y = math.random(0, screenHeight - @@height)
@speedX = math.random(-100, 100) / 60
@speedY = math.random(-100, 100) / 60
@sprite = 1

draw: () =>
spr(@sprite, @x, @y, 1, 1, 0, 0, 4, 4)

update: () =>
@x += @speedX
@y += @speedY

if @x + @@width > screenWidth
@x = screenWidth - @@width
@speedX *= -1
if @x < 0
@x = 0
@speedX *= -1
if @y + @@height > screenHeight
@y = screenHeight - @@height
@speedY *= -1
if @y < toolbarHeight
@y = toolbarHeight
@speedY *= -1

class FPS
new: =>
@value = 0
@frames = 0
@lastTime = 0

getValue: () =>
if time() - @lastTime <= 1000
@frames += 1
else
@value = @frames
@frames = 0
@lastTime = time()
return @value

fps = FPS!
bunnies = {}
table.insert(bunnies, Bunny!)

global TIC=->
-- music
if t == 0 then
music(0)
if t == 6*64*2.375 then
music(1)
t = t + 1

-- Input
if btn(0)
for i = 1, 5
table.insert(bunnies, Bunny!)
elseif btn(1)
for i = 1, 5
table.remove(bunnies, 1)

-- Update
for i, item in pairs bunnies
item\update!

-- Draw
cls(15)
for i, item in pairs bunnies
item\draw!

rect(0, 0, screenWidth, toolbarHeight, 0)
print("Bunnies: " .. #bunnies, 1, 0, 11, false, 1, false)
print("FPS: " .. fps\getValue!, screenWidth / 2, 0, 11, false, 1, false)

-- <TILES>
-- 001:11111100111110dd111110dc111110dc111110dc111110dc111110dd111110dd
-- 002:00011110ddd0110dccd0110dccd0110dccd0110dccd0110dcddd00dddddddddd
-- 003:00001111dddd0111cccd0111cccd0111cccd0111cccd0111dcdd0111dddd0111
-- 004:1111111111111111111111111111111111111111111111111111111111111111
-- 017:111110dd111110dd111110dd111110dd10000ddd1eeeeddd1eeeeedd10000eed
-- 018:d0ddddddd0ddddddddddddddddd0000dddddccddddddccdddddddddddddddddd
-- 019:0ddd01110ddd0111dddd0111dddd0111ddddd000ddddddddddddddddddddd000
-- 020:1111111111111111111111111111111101111111d0111111d011111101111111
-- 033:111110ee111110ee111110ee111110ee111110ee111110ee111110ee111110ee
-- 034:dddcccccddccccccddccccccddccccccddccccccdddcccccdddddddddddddddd
-- 035:dddd0111cddd0111cddd0111cddd0111cddd0111dddd0111dddd0111dddd0111
-- 036:1111111111111111111111111111111111111111111111111111111111111111
-- 049:111110ee111110ee111110ee111110ee111110ee111110ee111110ee11111100
-- 050:dddeeeeeddeeeeeed00000000111111101111111011111110111111111111111
-- 051:eddd0111eedd01110eed011110ee011110ee011110ee011110ee011111001111
-- 052:1111111111111111111111111111111111111111111111111111111111111111
-- </TILES>

-- <PALETTE>
-- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
-- </PALETTE>
55 changes: 55 additions & 0 deletions demos/yuedemo.yue
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
-- title: game title
-- author: game developer, email, etc.
-- desc: short description
-- site: website link
-- license: MIT License (change this to your license of choice)
-- version: 0.1
-- script: yue

t=0
x=96
y=24

global TIC=->
if btn 0
y-=1
if btn 1
y+=1
if btn 2
x-=1
if btn 3
x+=1

cls 13
spr 1+(t%60)//30*2,x,y,14,3,0,0,2,2
print "HELLO WORLD!",84,84
t+=1

-- <TILES>
-- 001:eccccccccc888888caaaaaaaca888888cacccccccacc0ccccacc0ccccacc0ccc
-- 002:ccccceee8888cceeaaaa0cee888a0ceeccca0ccc0cca0c0c0cca0c0c0cca0c0c
-- 003:eccccccccc888888caaaaaaaca888888cacccccccacccccccacc0ccccacc0ccc
-- 004:ccccceee8888cceeaaaa0cee888a0ceeccca0cccccca0c0c0cca0c0c0cca0c0c
-- 017:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec
-- 018:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee
-- 019:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec
-- 020:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee
-- </TILES>

-- <WAVES>
-- 000:00000000ffffffff00000000ffffffff
-- 001:0123456789abcdeffedcba9876543210
-- 002:0123456789abcdef0123456789abcdef
-- </WAVES>

-- <SFX>
-- 000:000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000304000000000
-- </SFX>

-- <PALETTE>
-- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
-- </PALETTE>

-- <TRACKS>
-- 000:100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- </TRACKS>
Loading
Loading