* Creates the BUILD_SURF build option
* Managing starting with no game loaded
When built with BUILD_EDITORS=OFF, and we execute the app without any
game, it starts by showing the Main menu.
We also hide options from the menu when there is no cart loaded: the
Resume and Reset.
When we start with no cart and we try to do a Surf, it was saying there
were changes made to the cart, so I also do a check if the cart was
loaded before showing the warning.
So, basically when the App is started without any games, it will show
the options: Surf, Options, Quit
* Android: BUILD_EDITORS=OFF & BUILD_SURF=ON
* Fix inisializing cart by arg when BUILD_EDITORS=OFF
* rebuild
* Initial Nintendo Switch Port
* Switch: Enable CRT shader
* Switch: Some QOL changes
- hack: make the menu accessible with "+"
- Invert Controller buttons A/B X/Y
- Enable network log only for debug builds
- Enable touchscreen mouse emulation
Also add myself to the credits in README
---------
Co-authored-by: Vadim Grigoruk <grigoruk@gmail.com>
- fix use of deprecated macro
- move network stuff to platform directory
- ensure all lua is built for 32 bit integers
- clean up build configurations
- use newer docker image
* Publish Code
* Fixed YueScript build.
* Disabled macro feature which crashes runtime.
* Update YueScript submodule
* Try to fix the "function TIC()..." isn't found bug, no luck so far...
* Fix Demo and Mark
* Format yue.cpp
* Make it work in C99, let's hope this compiles in Win XP et cetera
* Fix Compilation Issues
* Try fixing rpi-baremetal(4) and nintendo-3ds builds
* Try fixing linking
* Reenable Exceptions
* Override YueParser
* Try forcing newer glibc?
* Debugging Build Step
* Update YueScript version
* Simplify build
* Add yue.cpp
* Whoops
* Update YueScript
* Update circle.patch to try to fix the build error
* Try removing -lstdc++fs
* Modify Patch
* Revert Update circle.patch
* ???
* Forgot to git Apply
* Accidentally put it in macOS instead of N3DS
* Remove platform specific configurations for now
* Remove thread_local for N3DS Build
* Use a more reliable way to disable thread_local on N3DS
* Forgot to pass in initial-exec
* Remove build/yuescript-makefile-remove-stdc++fs.patch
* Include libyuescript in the baremetal Makefile
---------
Co-authored-by: Li Jin <dragon-fly@qq.com>
* web: Fix Safari Arrow keys in HTML export and webapp\n\n- Remap Arrow key events with KeyboardEvent.location === 3 (numpad) to location: 0 on WebKit in capture phase\n- Prevent page scrolling on Arrow keys while canvas is focused\n- Ensure canvas is focusable (tabindex=0) and focused on start\n\nThis addresses Safari/WebKit misclassification of physical Arrow keys so games receive directional input correctly.
* Add missing semicolon
* Update index.html
* Update index.html
* [Android] Update gradle and gradlew to v9.0.0
As we update gradle-wrapper.jar, it is desirable to confirm the
authenticity.
It can be checked by verifying:
sha256sum gradle/wrapper/gradle-wrapper.jar
to be identical to the one available at:
http://services.gradle.org/distributions/gradle-9.0.0-wrapper.jar.sha256
that should be:
76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3
* [Android] updates JDK to v17
* [Android] Updates NDK to version r23
* [Android] informs NDK version in gradle file
The newer versions of Gradle requires us to explicitly inform the NDK
version we use.
* readme and comments
* [Android standalone] fix association of .tic and .png to TIC-80 app
Solves #2811
* [Android standalone] Fix loading directly from files
The android app was not configured to open directly form apps.
This now should work.
Code written by Gemini.
* [Android standalone] .tic file association case insensitive
* [Android standalone] update SDL files to v2.32.10
* fixed multiline comment
I tried to selective update the file, butt there were a multiline
comment I mislook. So I just updated he full file SDLActivity.java file.
* [Android standalone] Restore custom virtual keyboard after SDL update
[Gemini 2.5 Pro] The custom virtual keyboard on Android is no longer
displayed after updating the underlying SDL library from v2.26.2 to
v2.32.10.
This was caused by a change in how the new version of `SDLActivity.java`
handles text input. The newer SDL version more aggressively activates
its own text input system (`SDL_StartTextInput()`) on Android.
The TIC-80 C code in `src/system/sdl/main.c` has a function,
`isKbdVisible()`, which determines whether to render the custom
keyboard. This function contained a specific check for Android:
`!SDL_IsTextInputActive()`. This line was intended to hide the custom
keyboard when a native (e.g., system) keyboard was active.
Because the newer SDL version keeps its text input system active by
default, this check was causing the custom TIC-80 keyboard to be
permanently hidden.
This change resolves the issue by commenting out the
`!SDL_IsTextInputActive()` check. This restores the intended behavior,
ensuring that TIC-80's own integrated virtual keyboard is always used
for input on touch devices, independent of the underlying SDL text input
state.
* Restore virtual keyboard and system keyboard toggle
Tries to make the system keyboard show when it was previously working.
* [Android standalone]
The virtual keyboard was not appearing after updating SDL to v2.32.10.
The new `SDLActivity.java` now enables text input on launch by default,
which caused TIC-80's logic to hide its custom keyboard.
This is fixed by adding an explicit `SDL_StopTextInput()` call during
initialization to restore the correct default state. A redundant text
input call was also removed from the `SDL_KEYDOWN` handler to ensure the
system keyboard is only activated by its specific toggle key.
* Remove fopen/fclose reference from bytebattle part to fix baremetal pi boot (avoid 4-colour screen)
* Add support for isdir, deldir and delfile in baremetal pi
* Skip tic80.com folder in baremetal pi as there is no network
* Hide .local folder in baremetal pi
* Hide pixel cursor in baremetal pi, as a cursor is already rendered by tic80
* Fix potential buffer overflow in baremetal pi
* Remove unused code
* Add support for USB storage, using SD card as fallback, in baremetal pi
* Add baremetal pi support for ES locale while keeping US as default
* Use mouse raw mode instead of cooked mode to fix missing button-up events in baremetal pi
* use O3 with flto
* fix msvc builds
* back to minsizerel in msvc, baremetal and 3ds
* default to static in builds with flto
* use ubuntu 22.04 for linux amd64
* use gcc12 in ubuntu 22.04
* include ubuntu24.04 + gcc14 for linux amd64
* Update build.yml
* Update build.yml
* add required dep for ubuntu24.04
* Update build.yml
* try to force strict aliasing
* revert and try to get latest gcc14
* build with Os + flto to compare
* compile with O2 with flto to compare
* go back to O3+flto as is the faster option
* forgot to use release in android
* use macos13 as 12 is being deprecated
* more platforms
---------
Co-authored-by: Vadim Grigoruk <grigoruk@gmail.com>
* update 3ds docker
* try to fix 3ds lua error
* revert and try to fix wren error
* disable lua and scheme for 3ds
* try to fix lua
* try to fix lua
* try to fix lua
* test
* revert
* try to fix lua
* test
* test
* continue
* possible last lua fix
* disable javascript in 3ds
* disable js correctly
* disable python for 3ds
* try to fix script.c
* try to fix another error
* test
* try to fix miniaudio
* test
* test
* test
* test
* test
* test
* try to fix gif errors
* test
* test
* test
* continue
* try with official devkitarm docker image
* test
* clean
* proper miniaudio fix
* mianiaudio version used before
* use cmake to build 3dsx
* use explicit name
* fix 3ds build instructions
* use NINTENDO_3DS from devkitPro cmakery
* fixup build commands
* output to build/bin
* update tested version
---------
Co-authored-by: Dave Murphy <davem@devkitpro.org>
In my previous PR I didn't commit this file because I didn't know what it was for.
I understand now that this is the default config, which gets loaded when you use `config reset` in the console, so it's important that it's up to date.