Commit graph

113 commits

Author SHA1 Message Date
Andrei Alexeyev
021584a83b
emscripten: redesign shell, always use whole window for game canvas 2024-10-24 01:08:32 +02:00
Andrei Alexeyev
2a17e82f9d
emscripten: modularize js/wasm, split from html shell 2024-10-23 18:04:47 +02:00
Andrei Alexeyev
05168ac2d7
memory/mempool: rename from objectpool 2024-06-05 18:35:08 +02:00
Andrei Alexeyev
1914703edf
build: put most sources except main.c into a static lib
Allows building other executables (tests, tools like tsrtool, etc.) that
make use of taisei code in the future.
2024-05-14 04:37:11 +02:00
Andrei Alexeyev
858398f556
watchdog: return to main menu and reset config after inactivity in kiosk mode 2024-05-04 20:07:12 +02:00
Andrei Alexeyev
e3a4e9065e
ringbuf: add a generic ring-buffer data type 2024-04-23 17:38:21 +02:00
Andrei Alexeyev
67bf19ff4a
build/emscripten: work around mesonbuild/meson#12638 2024-01-24 05:29:39 +01:00
Andrei Alexeyev
96635c6092
build,ci: update emscripten to 3.1.51 and fix build 2023-12-17 04:41:49 +01:00
Andrei Alexeyev
31410b6ad7
build: emscripten: pass -lhtml5 for SDL 2023-06-18 14:59:03 +02:00
Andrei Alexeyev
8210521c6f
build: use find_program('meson') for dynstage
58aa301acc
2023-06-11 18:11:08 +02:00
Andrei Alexeyev
a6c9303350
build: add install tags 2023-05-18 21:02:29 +02:00
Andrei Alexeyev
df6b97caf7
stageobjects,objectpool: simplify and reimplement on top of arenas
All pools now allocate from the same arena that is initialized once with
8MB of initial space and never deallocated, only reset between stages.
2023-04-07 16:08:49 +02:00
Andrei Alexeyev
bf7964926c
memory: move into subdir 2023-04-03 01:53:36 +02:00
Andrei Alexeyev
e957f11790
thread: add over-engineered wrapper for thread management 2023-03-29 20:47:27 +02:00
Andrei Alexeyev
76bd4d88b2
refs: nuke from orbit 2023-02-24 05:37:58 +01:00
Andrei Alexeyev
e2c0282a30
vfs,build,emscripten: new resource delivery system for Emscripten
Resource files are no longer packaged and preloaded all in advance.
Instead, they are downloaded while the game is running.

The implementation is less than ideal, but it works. Resources are
requested on demand and cached into IDBFS. Unfortunately, since the
resource system was not designed with web-style asynchrony in mind and
we aren't ready for threads either, we have no way to do any useful work
while a required file is downloading. To somewhat offset that, we also
pre-fetch files that were not requested yet. The pre-fetching is limited
to 4 files at a time, which seems to be a reasonable compromise between
throughput and cold-cache load latency on slow connections. Also
unfortunately, it's dumb as rocks: we have no way of knowing which files
we will actually be needing soon, so the pre-fetching is done in
whatever order the files were indexed.

Possibly the easiest way to improve this system would be to bundle (and
compress) all of the tiny text files together to alleviate the overhead
of hundreds of HTTP requests.
2023-01-28 00:31:15 +01:00
Andrei Alexeyev
5a4dd417ca
emscripten: update asyncify blacklist 2023-01-28 00:31:15 +01:00
Andrei Alexeyev
b6978178b1
memory: use custom memory allocation wrappers
Introduces wrappers around memory allocation functions in `memory.h`
that should be used instead of the standard C ones.

These never return NULL and, with the exception of `mem_realloc()`,
zero-initialize the allocated memory like `calloc()` does.

All allocations made with the memory.h API must be deallocated with
`mem_free()`. Although standard `free()` will work on some platforms,
it's not portable (currently it won't work on Windows). Likewise,
`mem_free()` must not be used to free foreign allocations.

The standard C allocation functions are now diagnosed as deprecated.
They are, however, available with the `libc_` prefix in case interfacing
with foreign APIs is required. So far they are only used to implement
`memory.h`.

Perhaps the most important change is the introduction of the `ALLOC()`,
`ALLOC_ARRAY()`, and `ALLOC_FLEX()` macros. They take a type as a
parameter, and allocate enough memory with the correct alignment for
that type. That includes overaligned types as well. In most
circumstances you should prefer to use these macros. See the `memory.h`
header for some usage examples.
2023-01-18 13:23:22 +01:00
Andrei Alexeyev
0a5b7a3d63
build: fix deprecation warning 2023-01-05 04:25:21 +01:00
Andrei Alexeyev
68f1f9dc1a
emscripten: remove redundant -O link flag 2023-01-05 04:25:21 +01:00
Andrei Alexeyev
366506c41d
emscripten: don't pass --emrun
--emrun forces EXIT_RUNTIME=1, which is currently incompatible with
Taisei.
2023-01-05 04:25:21 +01:00
Andrei Alexeyev
8891b8dff6
emscripten: raise default stack size to 1MB
Emscripten 3.1.27 reduced the default from 5MB to 64KB, which is not
enough for Taisei in some cases (e.g. loading some of the larger iqm
models; might want to switch to heap allocation there).
2023-01-05 04:25:21 +01:00
Andrei Alexeyev
da67472719
coroutine: break down into smaller sub-modules 2022-12-28 23:47:48 +01:00
Andrei Alexeyev
267f47fc0e
build,ci: Build system maintenance (#350)
Squashed commit of the following:

commit 9ab0197ee1
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 28 23:05:58 2022 +0100

    build: add dummy descriptions for deprecated options

commit b0c41d4719
Author: Alice D <alice@starwitch.productions>
Date:   Mon Dec 26 15:18:09 2022 -0500

    update docker containers with ones containing meson 0.63.3

commit a2dd4173fc
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Dec 25 19:20:44 2022 +0100

    build: featurize audio options

commit 7c59e2a569
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Dec 25 19:20:35 2022 +0100

    build: remove dead code

commit cf500af137
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Dec 25 19:07:37 2022 +0100

    doc: update BUILD.rst

commit 9764ac706f
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Dec 25 17:12:37 2022 +0100

    ci: disable WGI joystick backend for SDL

    Fails to build with latest llvm-mingw

commit 2d4f310b90
Author: p-sam <p-sam@d3vs.net>
Date:   Sun Dec 25 17:03:47 2022 +0100

    switch: fix missing include

commit 9264f1649d
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Dec 24 14:36:41 2022 +0100

    ci: update meson to 0.63.3 due to a bug

commit 3e37be3d8f
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Dec 24 13:42:34 2022 +0100

    ci: update build options

commit 281a39a4f5
Author: Alice D <alice@starwitch.productions>
Date:   Sun Dec 18 00:17:07 2022 -0500

    ci: change when apt is cleaned up for switch image

commit 2f2100a84c
Author: Alice D <alice@starwitch.productions>
Date:   Sun Dec 18 00:11:08 2022 -0500

    ci: bump switch homebrew container version

commit ebaff59260
Author: Alice D <alice@starwitch.productions>
Date:   Sat Dec 17 22:55:39 2022 -0500

    ci: bump windows container version

commit 7ce6f23419
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Dec 17 07:36:28 2022 +0100

    build: featurize renderer options

commit a345f21b35
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Dec 17 07:33:30 2022 +0100

    build: revert to explicit fallback for libzstd

    Implicit fallback causes conflicts in the basis_universal subproject

    https://github.com/mesonbuild/meson/issues/11189

commit b2de61f5c5
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Dec 17 05:29:29 2022 +0100

    build: remove debug_opengl

    This option was always misdocumented, as it only controlled whether GL
    debugging is on by default. You can still control it with the
    TAISEI_GL_DEBUG environment variable, which is set to 1 in meson devenv.

commit 4c659ba195
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Fri Dec 16 08:03:37 2022 +0100

    build: set up useful env vars for meson devenv

    Makes Taisei load resources from the source tree, making live reload
    work; enables OpenGL debugging by default; works around ASan stack use
    after return false positives.

commit 1ddc58b84a
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 08:06:32 2022 +0100

    build: featurize docs; always install licenses

commit c3a94d7f5b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 07:46:28 2022 +0100

    build: featurize shader_transpiler

commit 619d82ae36
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 07:38:30 2022 +0100

    build: allow libzip fallback by default

commit 79ab72292a
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 07:35:51 2022 +0100

    build: featurize use_libcrypto

commit b393077f71
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 05:03:20 2022 +0100

    build: featurize validate_glsl

commit 7d76484079
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 04:34:31 2022 +0100

    build: featurize some more installation options

commit 17c0bda205
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 03:24:46 2022 +0100

    build: deprecate enable_zip for vfs_zip; convert package_data into feature

commit 9a4ef8c091
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 02:37:55 2022 +0100

    build: deprecate developer=auto; default to false

commit 807240e508
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 02:24:04 2022 +0100

    build: move subproject fallback info into wraps

commit 08c953f487
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 01:57:33 2022 +0100

    build: deprecate 'static' option

    Meson has a built-in `prefer_static` now

commit c575601537
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 01:49:31 2022 +0100

    build: remove complicated shaderc detection logic

    Meson does all of this internally since 0.51.0

commit cd2d460d4b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 01:45:17 2022 +0100

    build: Require meson >=0.63.0

commit 10abd790f7
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Dec 12 05:16:47 2022 +0100

    ci: remove meson dist version workaround from release workflow

    Meson should know the correct version now

commit 31a07d8c3c
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Dec 12 03:46:28 2022 +0100

    build: use built-in summary() function

commit 0c47f6d14b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Dec 12 04:33:01 2022 +0100

    build: remove -Dversion_fallback and introduce .VERSION file

    The version script will now first try to read the version from a
    .VERSION file in the source root. If that file does not exist, it will
    query git. The .VERSION file is not included in the git repository, it
    is generated for inclusion in source tarballs.

    Package maintainers who had any use for -Dversion_fallback may want to
    create the .VERSION file themselves.

    Additionally, some git-specific files have been removed from source
    tarballs.

commit d32332a5e3
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Dec 12 03:00:07 2022 +0100

    build: set the "real" version in project()

commit f9a3fbc729
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Dec 12 01:50:08 2022 +0100

    build: raise meson_version and remove some legacy workarounds

    Effectively 0.56.0 was already required since we started using some of
    its features at some point.

    This also fixes all current meson warnings.
2022-12-28 23:15:55 +01:00
Alice D
b27f0f0a67
ci: Release Automation (#289)
* initial commit of release automation

squashing commits

Squashed commit of the following:

commit c4f2a423a587201874229af541cd93e8096061fa
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 19:23:38 2021 -0400

    fix changelogs and prevent no changelog from blocking release

commit 5af6d66dc1d0f9842b42c85ac0fba346b080351a
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 18:53:47 2021 -0400

    fix file extensions for sha256sum

commit 0327bc5e3d4ba3b6fe9c66a8e50d1f05c0a6457b
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 18:43:03 2021 -0400

    fix macos and linux

commit 7065adf4691deec45ed39a160d795b6613b84df5
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 18:32:17 2021 -0400

    don't stomp over source zip

commit 0df7be4a0072bdcd17d4fb7902e070c9e3f847b5
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 18:25:19 2021 -0400

    add correct file

commit 0585258439c23fd1ddff77bd60442da73fc2b635
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 18:21:06 2021 -0400

    whoops

commit e85623afd3ac6def2a128f03c56d7713679558be
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 18:09:07 2021 -0400

    kfix env

commit b98c0942c649430e62f5128bd578d1aa64190a7d
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 18:02:44 2021 -0400

    fix missing output

commit 1f9f6dff140a218c452ba0afe9207d4b95603b71
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 17:59:20 2021 -0400

    fix paths for zip

commit 9e5358a8a33a08daf59968992e6b5790b559695e
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 17:44:03 2021 -0400

    fix paths for zip

commit a641521775069d746d7edcf3e114d83848a44b5a
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 17:31:23 2021 -0400

    fix names and paths

commit ed0efb972877aee9f407d3fbbeef7d4c4c0e67f6
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 17:10:32 2021 -0400

    remove relative paths

commit 9948669744b3281b1f9340e696913b7c131ab92d
Author: Alice D <alice@starwitch.productions>
Date:   Tue May 11 16:46:24 2021 -0400

    add source compress, add GPG signing

commit 38703f888541c7ae2256fcaaffe2fa858f0deda3
Author: Alice D <alice@starwitch.productions>
Date:   Mon May 10 16:59:06 2021 -0400

    release fixes

commit d6a811c50167697f15df130d41471348a1f58102
Author: Alice D <alice@starwitch.productions>
Date:   Mon May 10 00:21:15 2021 -0400

    fix logging paths for emscripten and switch

commit 140e64b62f065019cc7770fa2048a5608b3c14ef
Author: Alice D <alice@starwitch.productions>
Date:   Mon May 10 00:19:11 2021 -0400

    fix logging paths for emscripten and switch

commit a3d5b94f5b5f4af33131730091dae6a6e8643a3a
Author: Alice D <alice@starwitch.productions>
Date:   Mon May 10 00:07:34 2021 -0400

    fix tag var

commit eb537f5f62f7c796615e3ebc0b9752921a4b71ca
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 23:49:53 2021 -0400

    ninja

commit 81f60e540f8a64d9e0af8598c0f79913d7ac7983
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 20:38:38 2021 -0400

    add Switch release builds

commit 39f5403a8e4daa9c80272339d4fb076693e5c0a3
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 19:35:54 2021 -0400

    modernize crossfile for switch

commit 464d7e28e3cead6b279df2956c5539c430219894
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 16:41:53 2021 -0400

    use my own image lol 3

commit e7061f9ba2a1b9952931f693da2c826a95fb3987
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 16:40:19 2021 -0400

    use my own image lol 2

commit 86abdee991bef25538f5b7596fce22edb50dc753
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 16:39:45 2021 -0400

    use my own image lol

commit 196e84c5fc157b821277ccb3380870b33d7f0b3e
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 15:36:10 2021 -0400

    add switch test build 12

commit 284c42c498d896640754792ce8a03d126b812446
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 15:34:03 2021 -0400

    add switch test build 11

commit a1031bbe94902bd9dd98ec8784a290d1e5980943
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 15:32:51 2021 -0400

    add switch test build 10

commit acc8a631f9ece695e3d59f55a9122fda661c56a6
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 15:32:06 2021 -0400

    add switch test build 9

commit dab31a118a5d5ca2cdd06e398a2934ea026a3e3c
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 15:18:21 2021 -0400

    add switch test build 8

commit 5cf25e70d5de4e8be966088e89a6854989061332
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 15:16:35 2021 -0400

    add switch test build 8

commit b2b6237d21e77af737d5a2b3e7caeea30856f6db
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 15:14:32 2021 -0400

    add switch test build 7

commit a3572de63495fbd2c195b23179295df523d0a7b2
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 15:03:47 2021 -0400

    add switch test build 6

commit fb4f5665103522557ecd56f64d2025ac49ede0cb
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 15:00:42 2021 -0400

    add switch test build 5

commit b734b245751445a0ddd7c87d3cb8eda1520bd2a2
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 14:58:50 2021 -0400

    add switch test build 4

commit 373cb1b4ba02da312d4c634bfaadbdf9c0ec4028
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 14:56:38 2021 -0400

    add switch test build 2

commit 9fb48d5faa36f10937badf8a40230f6672f6833f
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 14:54:02 2021 -0400

    add switch test build

commit 4d6b553d3b8a67a9b1846611a6112359243e73e6
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 13:46:22 2021 -0400

    clean up some names

commit ac9a4fb28312cd332ea704a196e7c8fc3e8da6d0
Author: Alice D <alice@starwitch.productions>
Date:   Sun May 9 11:06:06 2021 -0400

    revert to newer image

commit 9bb9cd1c142976d2d074ff46b3c325026a2efbb4
Author: Alice D <alice@starwitch.productions>
Date:   Sat May 8 17:19:49 2021 -0400

    use older version with llvm 11.0 to see if it fixes an x86 compile crash

commit f0494b30ccb42cd0825dc8fe4cac80997262a5b2
Author: Alice D <alice@starwitch.productions>
Date:   Sat May 8 16:33:48 2021 -0400

    fix some artifact paths, add tag to emscripten

commit 1a1f5cb56db04944feab1210a6df51a67d0108d0
Author: Alice D <alice@starwitch.productions>
Date:   Sat May 8 16:17:03 2021 -0400

    fix some typos

commit 5109a8690543919acf04db44cefbb1fe2b4aa546
Author: Alice D <alice@starwitch.productions>
Date:   Sat May 8 16:08:04 2021 -0400

    fix name

commit 82904ffeac1b3413a3b3c4f3f081c062532ad6d4
Author: Alice D <alice@starwitch.productions>
Date:   Sat May 8 15:27:38 2021 -0400

    add emscripten publish, and ANGLE repo pull

commit 5a12078946a24bf32dd924d8220630d67e727f28
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 20:11:26 2021 -0400

    emscripten nightly 5

commit 28ad212f5d56f64bc7e1c27f634800064a9cf6dd
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 19:37:13 2021 -0400

    emscripten nightly 4

commit 954ab3391ffd61149e4b3728ecf137dcd6c37efd
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 19:12:56 2021 -0400

    emscripten nightly 3

commit 9330ba810cec1fd15d5f066199aa783f8b3f3f5c
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 18:50:35 2021 -0400

    emscripten nightly 2

commit eae34ee5d8e0b271912d0d04ccae11fe0c3b4c0c
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 18:48:09 2021 -0400

    emscripten nightly

commit 685121646d559a54487e6305e5f7acbbcd36f015
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 17:57:26 2021 -0400

    fix style

commit 5673129d410887fcf940a6e35ed36f3cf81bd83a
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 17:55:58 2021 -0400

    rename back to original

commit 01db06e6006a44bc62f834fe40b029fdb085b0e5
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 17:04:07 2021 -0400

    emscripten build test 2

commit b2151f0f97bf7e1370ebc1ed7524f2941e794ed9
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 17:00:49 2021 -0400

    emscripten build test

commit 8c2a29efc21f2f03d273a2ddd56eb7ea9716ea2c
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 16:21:46 2021 -0400

    fix SDL2 werror

commit fc8c11cfe22eb5112ef0f9c8d053373e93f232bd
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 15:37:08 2021 -0400

    fix machine files for basis_universal

commit f8c2e661ccb813a8222f4a87c0f9b8386bb3e865
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 15:06:28 2021 -0400

    bump meson to 0.56.2

commit e7eed9330adad62be8334919a4a51df0e7e15588
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 13:27:41 2021 -0400

    fix paths

commit d31b1f673b139d6c3ece6f3a96f3607ec19cc8a1
Author: Alice D <alice@starwitch.productions>
Date:   Thu May 6 20:12:13 2021 -0400

    fix race condition

commit c62df468a930f2b7bafbd5022ae5123f64b6b31f
Author: Alice D <alice@starwitch.productions>
Date:   Thu May 6 19:05:09 2021 -0400

    fix path

commit 33bd03589236b45afbf3cbe1dc47346133214c51
Author: Alice D <alice@starwitch.productions>
Date:   Thu May 6 18:50:50 2021 -0400

    ???

commit d9acdce134354d390283b15926d7924c705b948e
Author: Alice D <alice@starwitch.productions>
Date:   Sat May 1 16:11:23 2021 -0400

    version for testing

commit f9ba7ecf124881168714326926bb091d4f201af5
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 12:53:28 2021 -0400

    fix paths

commit 981f4022b2158ada0d76e938a7dc13bcf7192635
Author: Alice D <alice@starwitch.productions>
Date:   Fri May 7 12:29:18 2021 -0400

    hopefully fixing emscripten by moving to Linux build

commit 6abb7cc524ac07ac421588ea9b7a77ec1a8f9471
Author: Alice D <alice@starwitch.productions>
Date:   Thu May 6 17:53:31 2021 -0400

    fix path for file_packager

commit c565173e7987b9745cecc158a871e573774612e8
Author: Alice D <alice@starwitch.productions>
Date:   Thu May 6 17:34:33 2021 -0400

    native -> cross

commit 4b19afa3ee4fd01a33bc523c2a7b1dffcf9c873b
Author: Alice D <alice@starwitch.productions>
Date:   Thu May 6 17:32:24 2021 -0400

    more emscripten changes

commit a1530a28abaff33cdcd509acc83ad815cabbbbfe
Author: Alice D <alice@starwitch.productions>
Date:   Thu May 6 17:05:05 2021 -0400

    move to latest for emscripten

commit 4af45358e51c27ce29e1b8fff3e7d6c2ac472bf2
Author: Alice D <alice@starwitch.productions>
Date:   Thu May 6 16:09:28 2021 -0400

    add emscripten CI, add labels to CI jobs

commit 27b7c2c412661fca20715b6789e1be9fb72d0bd0
Author: Alice D <alice@starwitch.productions>
Date:   Thu May 6 13:59:43 2021 -0400

    clean up machine files

commit c8172ab4b0a79e3ec2b7e07a9fb358774d9eeb80
Author: Alice D <alice@starwitch.productions>
Date:   Mon May 3 15:43:32 2021 -0400

    stashing emscripten machine file

commit 3c61741626a6bb2c9a302af2782bf6306082f194
Author: Alice D <alice@starwitch.productions>
Date:   Sat May 1 16:25:32 2021 -0400

    change macos version, fix windows paths for .zip

commit 305e42a01afd46c2ab8b9453a5ae74b8064de285
Author: Alice D <alice@starwitch.productions>
Date:   Sat May 1 16:08:49 2021 -0400

    add experimental macOS Apple Silicon build/release

commit 75fb7151bc9e3053bd195f7197a0a8af6fc11134
Author: Alice D <alice@starwitch.productions>
Date:   Fri Apr 30 19:57:47 2021 -0400

    add windows x86 build add, .zip packaging, tune macOS build

commit 58f3e734b9fc2b5163e80ab7b46f1a391dd3f8bb
Author: Alice D <alice@starwitch.productions>
Date:   Fri Apr 30 00:34:50 2021 -0400

    delete dockerfiles, moved to different PR

squashing commits

fix compile issue for x86 windows builds

re-enable x86 builds

fix markdown path [skip ci]

fix sha256sum extensions [skip ci]

change publish pipeline name [skip ci]

re-enable ARM64 macos builds

revert CI tests in forked branch, wait until merged in main repo

remove dockerignore

bump emsdk to 2.0.21

remove emscripten nightly, moving to another PR [skip ci]

fix merge issue

preemptive PR changes, make it more readable

improve GHP example

move to project-owned Docker image [skip ci]

change pipeline name [skip ci]

* fix wildcards for branches [skip ci]

* fetch tags manually

* fix github checkout issue

* remove unncessary match [skip ci]

* initial PR changes to make things more streamlined

* one line change to test builds

more tag shenanigans

remove unneccessary step

modernize

add release_files

add release_files

fix builds (hopefully)

fix builds (hopefully 2)

* fix typo

* make paths more explicit

* fixes

* add token

* add ref

* fix ref

* fix emscripten tests [skip ci]

* bump switch image

* slight fixes to scripts

* fix -rc/-beta/etc tags in version script

* add additional comments

* typos and missing help

* move publish.yml to own PR, improve release.yml

* remove unneccessary python module

* Revert "remove unneccessary python module"

This reverts commit e7c3d6a5bcdcd15e94d91b79a2139221777ce4b6.

* rebase and job name cleanup

* fix merging

* fix windows building issues

* cleanup

* bump ARM64 runner to macos-11

* bump Switch docker image version, and emsdk version

* change path to ANGLE libraries

* macos-11.0 -> macos-11

* clean up PR stuff

* fix emscripten error

* update macos script to handle universal binaries as well as releases

* update for macos universal

* update for macos universal 2

* MacOS universal release build

* PR review

* more smaller fixes

* typo

* more small fix

* small fixes

* small fixes 2

* PR review and refactoring

* typos

* python3.6 fix

* use custom Ubuntu 20.04/llvm-mingw image

* remove dead meson options

* final touchups

* CI test uses new image, also fix Emscripten builds again

* updating and allowing for custom refs

* squashing commits

* get rid of version-guessing kludge

* PR review
2022-11-19 20:16:13 +02:00
Andrei Alexeyev
f10a8c17be
build,ci: emscripten updates 2022-02-22 11:37:11 +02:00
Andrei Alexeyev
ae1d1410d5
build: disable LTO and expensive optimizations for stages lib 2022-02-05 18:21:02 +02:00
Andrei Alexeyev
dcb630b37d
stageinfo,stage: implement stage hot-reloading
POSIX platforms only. Must be enabled via -Dstages_live_reload=true.
2022-02-05 17:58:42 +02:00
Andrei Alexeyev
e629d927ba
filewatch: add filewatch module for basic file monitoring
Currently only an inotify-based backend is implemented.
2022-01-02 08:28:11 +02:00
Andrei Alexeyev
1ae8811bc4
lasers: improve collision; move to lasers/
Moved quantization out of the draw code. The laser is now quantized once
per frame, and the segment data is used for both collisions and
rendering. Player motion is now accounted for as well, preventing
phasing through thin lasers. The overall result is more precise *and*
faster collision detection.
2021-08-25 11:58:08 +03:00
Andrei Alexeyev
4d1b4eb72a
lasers: new renderer based on signed distance fields (#317)
* lasers: new SDF-based renderer (WIP)

* lasers: tweak sdf_apply shader

* lasers: fix incorrect rendering at 'unlucky' resolutions

* lasers: optimize rendering of multiple lasers

Try to coalesce render passes as much as possible

* lasers: fix warning

* lasers: move rendering into a new file

* lasers: correct "time" coordinate mapping for texturing

* lasers: wrote a novel about laser rendering [skip ci]

* lasers: fux tpyo

* remove references to old laser shape shaders

* lasers: fix some rendering edge cases
2021-08-22 01:27:12 +03:00
Alice D
c6a6bda159
build,ci: turn on precompiled headers for emscripten (#315) 2021-08-06 01:59:55 +03:00
Andrei Alexeyev
efdaf51928
stage3d: add free camera control tool for debugging 2021-07-09 22:56:07 +03:00
Alice D
7955529bfd
build,ci: Bump emsdk to 2.0.25, rework separate check for tot (#304) 2021-07-02 14:03:28 +03:00
Andrei Alexeyev
173c8c3cc6
replay: general refactor
* Split replay.c into multiple files under replay/; improve logical
  separation of replay-related code.
* Separate replay playback state from data.
* Get rid of global static replay struct and avoid unnecessary replay
  copying.
* Replay playback and recording are now independent and may occur
  simultaneously, although this functionality is not yet exposed. This
  enables replay "re-recording" while synthesizing new desync check
  events, possibly at a different rate from the original replay.
* Rate of recorded desync check events can now be controlled with the
  TAISEI_REPLAY_DESYNC_CHECK_FREQUENCY environment variable. The default
  value is 300 as before.
* Probably other stuff I forgot about.
2021-06-16 01:43:10 +03:00
Alice D
a977b9480f add -lwebgl.js to fix macOS emscripten building, see emscripten/10171 2021-05-06 22:41:51 +03:00
Andrei Alexeyev
14d5904985
fix various emscripten crap 2021-04-21 04:31:26 +03:00
Andrei Alexeyev
9b5d515721
Cutscenes (#249)
* WIP cutscenes

* cutscene tweaks

* cutscene: erase background drawing under text

* Make text outlines thicker

* Prepare an interface for adding new cutscenes

* Basic progress tracking for cutscenes

* cutscene: support specifying scene name and BGM

* cutscene: exit with transition after scene ends

* Implement --cutscene ID and --list-cutscenes CLI flags

* fix progress_write_cmd_unlock_cutscenes

* Play intro cutscene before entering main menu for the first time

Also added --intro parameter in dev builds to force playing the intro
cutscene

* Add intro cutscene

* cutscenes: update opening/01 scene

* add Reimu Good End

* remove Bonus Data

* split up a bit of dialogue, revert an image change in intro

* small typo

* most cutscenes complete

* smartquotify

* finish Extra intros

* new cutscenes routed into main game

* fix ENDING_ID

* rough 'mediaroom' menu

* fix cutscene menu crash

* derp

* PR changes

* fixing imports

* more PR fixes

* PR fixes, including updating the script to #255

* add in newlines for readability

Co-authored-by: Alice D <alice@starwitch.productions>
2020-11-28 12:11:10 +02:00
Andrei Alexeyev
f3dab68e76
emscripten: remove .full_path() hack 2020-11-10 08:12:06 +02:00
Andrei Alexeyev
875d841c52
Emscripten fixes 2020-11-10 07:36:57 +02:00
Andrei Alexeyev
40425c346b
Enemy system extensions (#256)
* Add red fairies; tweaks to blue fairies and circles

* Add more fairies and a simple enemy archetype system

Note that existing stages not utilizing the new enemy spawning system
will have a visual regression - fairies will not have their magic
circles and particle effects visible. These are no longer implemented by
the enemy visual rules and require additional setup from the new spawner
wrappers. All stages should be converted to the new system.

Also improved old fairy sprites

* enemy_classes: rebalance HP

* enemy_classes: add EnemySpawner typedef

* items: add ITEMS() shortcut macro for use with enemy spawners
2020-10-08 05:00:52 +03:00
Andrei Alexeyev
a5fd6fe5d9
Texturing overhaul: GPU compression, sRGB sampling, swizzles, etc. (#240)
* WIP compressed textures, swizzles, sRGB sampling, ...

* refactor texture type info & fix random bugs

* fix preprocessing of sRGB textures

* handle y-flipped basis textures

* glcommon: better WebGL compat for compressed format detection

* missed WEBGL_compressed_texture_pvrtc

* implement compressed texture xcoding and uploading

* Add basis_universal submodule

* Reorganize texture loader code

Clean up some code
Isolate Basis Universal loader into a separate module

* Add wrapper script for encoding .basis textures

* basisu: honor custom metadata written by the mkbasis.py script

* mkbasis.py: add --incredibly-slow and --dry-run

* Move pixmap code from util/ to pixmap/

* Add an on-disk transcode cache for basis textures to speed up loads

* Compress texture cache with zlib

* Use readable format names for basisu cache filenames

* basisu: mip bias test code

* basisu: small caching cleanup

* add TAISEI_BASISU_MIP_BIAS env variable

* Improve OpenGL format matching heuristics

* Document considerations for compressed format priority

* Remove dead code

* Enable two forgotten formats, BC3_RGBA and ATC_RGBA

Also prefer BC7 over BC1/BC3

* Recognize GL_ANGLE_compressed_texture_etc for ETC2 textures

* Default depth buffers to 24-bit; remove ANGLE hack

* Fix glcommon_check_extension for GLES2/legacy gl

* Add renderer feature bit for texture swizzle masks

* glcommon: Fixup internal formats for GLES2

Sized internal formats are not allowed in GLES2

* Fix emscripten compile errors

* Update basis_universal

* remove more dead code

* revert irrelevant stage4 change

* shut up UBSan

* basisu: shut up some debug spam

* Add normalmap sampling helper to util.glslh

* basisu: add a gray-alpha mode

* mkbasis.py: Abort if image dimansions aren't multiples of 4

* Add basic Basis Universal encoding documentation (WIP)

* doc/basisu: Add paragraph about modes; minor tweaks

* basisu: workarounds for GL texture size requirements

* gles20: fix uncompressed sRGB formats

* Partial workaround for missing swizzles in gles2 and webgl

* remove invalid assertion

* New renderer API to expose glDrawBuffers-like functionality

* stagedraw: disable all color outputs for copy_depth pass

required for WebGL compatibility

* support GL_ANGLE_request_extension

* emscripten: include *.basis in gfx package

Also fix a potential problem when more than one .pkgdir is used to
construct emscripten packages

* Don't rely on emscripten runtime to enable webgl extensions
2020-08-15 14:51:12 +03:00
Andrei Alexeyev
324dccb79a
emscripten build fixes 2020-08-11 13:22:36 +03:00
Andrei Alexeyev
8480d41b7b
Audio rewrite (#236)
This replaces SDL_mixer with an internal streaming and mixing system,
relying only on basic SDL audio support. It's also a partial refactor of
the audio API, most notably BGM-related. The BGM metadata resource type
is gone, as well as the `.bgm` files. The metadata is now stored inside
the `.opus` files directly, using standard Opus tags.
2020-06-22 17:41:03 +03:00
Andrei Alexeyev
00e4837827
Separate StageInfo-related APIs from game-stage code (#227) 2020-05-16 23:41:54 +03:00
Andrei Alexeyev
9f10dfef21
bunch of portrait and dialog-related shuffling around 2020-04-27 22:59:16 +03:00
Alice D
56e64498a6
Player Statistics (#219) 2020-04-26 22:27:13 +03:00
Andrei Alexeyev
0928f0be98
update for building with latest emscripten 2020-04-10 06:09:36 +03:00
Andrei Alexeyev
0cbc86c66e
Add generic type-safe facility for dynamic arrays (#207)
Replace most ad-hoc opencoded dynamic arrays across the codebase
2020-04-05 05:51:00 +03:00
Andrei Alexeyev
5435971a08
bunch of emscripten crap 2020-03-19 08:58:51 +02:00