Ethin Probst on 2026-04-15T14:49:30Z: Fix typos in threading
Sam Tupy on 2026-04-13T19:51:00Z: Fix voice over speech on MacOS (resolves #372)
Daniel Nash on 2026-04-13T18:51:57Z: Added logic to detect arm64 linux triplet (#379)
Sam Tupy on 2026-04-13T17:19:45Z: bundler now cleans build directories when creating new bundle This came with side effect of improved bundling facility interface using SDL_RunOnMainThread for message boxes and questions rather than a limited multistep compilation task interface.
Sam Tupy on 2026-04-13T15:21:03Z: Revert "Bundling: do not append platform to generated executable" The $platform variable does sstill need to be allowed, however feedback about how it should not be used by default has been received and is being taken into account. This reverts commit c6eba52c0a73cd1af83b9fd201b6acfda132d175.
Lukáš Tyrychtr on 2026-04-12T17:30:07Z: speech-dispatcher-engine: Use lower priority for non-interrupted messages (#374) The current text priority was always interrupted (at least on Arch linux) when interrupt was set to false when calling screen_reader_speak, so decrease it to SP_PRIORITY_MESSAGE which can get queued properly.
Day Garwood on 2026-04-12T17:27:23Z: Fix character limitation in input_box (#377) Input box was limited to 60 characters and would crash when pasting longer texts. This is now fixed. Fixes #376.
Day Garwood on 2026-04-12T17:25:51Z: Fix bug in SCRIPT_MAIN_PATH (#378) SCRIPT_MAIN_PATH could be empty when running a script from the working directory using the command line. This is now fixed. Fixes #375
Sam Tupy on 2026-04-10T06:25:09Z: attempt fix for voiceover speech on MacOS (regarding #372)
Ethin Probst on 2026-04-06T21:52:36Z: Bundling: properly fix output_basename everywhere
Ethin Probst on 2026-04-06T21:08:37Z: Bundling: fix assertion violation when setting output_basename in nvgtrc
Ethin Probst on 2026-04-06T20:30:08Z: Bundling: do not append platform to generated executable
Ethin Probst on 2026-04-06T16:22:21Z: Linux compilation output target: fix failure to restore ELF header
Ethin Probst on 2026-04-06T15:58:05Z: Anticheat: do not do memory-based inline hook speed hack detection on wine (for now)
Sam Tupy on 2026-03-28T14:26:04Z: fix missing fclose calls when checking uptime on Linux (fixes #366)
Sam Tupy on 2026-03-27T03:09:52Z: uppercase Info.plist when generating macos bundle
Sam Tupy on 2026-03-27T02:57:25Z: Implement SDL_process wrapper allowing std IPC at long last (closes #189 resolves #286)
Sam Tupy on 2026-03-26T18:18:19Z: include zdsrapi.dll (fixes #325 fixes #164)
Sam Tupy on 2026-03-26T18:13:29Z: update to latest Angelscript master commit and latest universal speech static
Sam Tupy on 2026-03-26T16:40:48Z: add include preprocessor word (resolves #214)
Sam Tupy on 2026-03-26T15:49:23Z: add mobile and desktop preprocessor words
Sam Tupy on 2026-03-26T15:43:45Z: Wrap SDL's system tray API (resolves #219)
Sam Tupy on 2026-03-25T09:10:45Z: verify working mac build locally
Sam Tupy on 2026-03-25T08:45:47Z: fix arm64-osx triplet regarding angelscript-nc
Sam Tupy on 2026-03-25T08:33:14Z: fix some old and just now exposed usage of BOOL instead of bool in UI.cpp
Sam Tupy on 2026-03-25T08:01:23Z: Make UPX stubs build only for windows at this time
Sam Tupy on 2026-03-25T07:30:20Z: fix missing semicolon which certain compilers did not error report
Patrick Wilson on 2026-03-25T07:08:06Z: Docs: Updates regarding new platform
Sam Tupy on 2026-03-25T06:54:57Z: generic changes for initial IOS support! NVGT can now compile .ipa bundles that can run on IOS! Simply go into the compile script submenu on windows and click "IOS debug" and by default, NVGT will produce an unsigned but otherwise fully runnable IOS app of your game! At this point in time, NVGT disclaims responsibility regarding the actual deployment of such apps onto an IOS device, however we have confirmed that these bundles can be properly deployed with xcode as well as less official sideloading tools. Theoretically this should work on IOS versions 16 and newer, any arm64 device. We have everything from direct touch with voiceover to input box to AVSpeech and voice over speech output working here! On one hand, feedback is very appretiated! On the other, however, understanding of the fact that support on the IOS subject might be rather limited until further documentation has been written would also be very appreciated. Thanks and have fun! Prepare for potential CI failure starting now and over next few commits.
Sam Tupy on 2026-03-25T06:49:04Z: remove windows datatypes from scriptstuff such as DWORD
Sam Tupy on 2026-03-25T06:45:51Z: system_fingerprint was calling an invalid API causing endless hang on IOS, fix
Sam Tupy on 2026-03-25T06:44:18Z: Update vcpkg deps for IOS.
Sam Tupy on 2026-03-25T06:43:47Z: merge ios.mm and macos.mm into apple.mm while adding IOS input box
Sam Tupy on 2026-03-25T06:41:33Z: updates to CI and build scripts regarding initial IOS work
Sam Tupy on 2026-03-25T06:34:42Z: Update bundling facility to support IOS and to bundle with libarchive instead of PocoZip. * Switched to libarchive instead of PocoZip, thus executable permission bits are now added to cross compiled apps on windows (fixes #287), allowing compilation to .tar.gz for linux and .iso for MacOS on windows etc. * By default, the basename for distrobutions will contain the appended platform now. You can set #pragma compiled_basename dist/$platform/appname, if you want NVGT to place binaries in dist/windows/appname, for example. * Adds nvgt_compilation_output_ios which can create compatible .app or .ipa bundles which can be signed and deployed/sideloaded on to a device using whatever way you know to do so!
Sam Tupy on 2026-03-25T06:29:50Z: For mobile platforms where we must cross compile, added an optional target=platform argument to the SConstruct. From this point, env["NVGT_TARGET"] should be used to determine what is being compiled for. This prepares for IOS support - coming now, and for building Android with SConstruct later.
Sam Tupy on 2026-03-25T06:25:15Z: Add #pragma config key=value, and also #pragma asset $assetname, the prepended $ insures that the given asset is not bundled compressed (useful for reading certain inline assets such as sounds on Android).
Sam Tupy on 2026-03-25T06:24:56Z: conform to new SConstruct target argument in plugins
Sam Tupy on 2026-03-25T06:15:11Z: Begin conversion of library object to libffi! The test/quick/library.nvgt file still works. Conversion still in progress, but it is at least as functional as before. Returns var@ instead of dict, possible to fetch library_function@ and call directly.
Sam Tupy on 2026-03-17T00:12:25Z: Make windows fullscreen by default on Linux for Wayland focusing (fixes #255)
Sam Tupy on 2026-03-16T22:47:16Z: fix microphone::set_device (resolve #338)
Sam Tupy on 2026-03-16T20:55:22Z: Spatialization and freeverb now work on multichannel audio devices (fixes #323 fixes #302)
Aryan Choudhary on 2026-03-16T16:16:03Z: Add graphics_texture class for GPU caching (#356) Introduced the graphics_texture class to wrap SDL_Texture, allowing developers to cache textures. This eliminates the severe performance bottleneck caused by converting SDL_Surface to SDL_Texture every frame in the legacy render_graphic method, even for loaded images that could just be cached.
Sam Tupy on 2026-03-16T14:30:15Z: Update scriptdictionary addon and fix print_func's dictionaryValue output (resolves #354)
NKPR0d on 2026-03-16T14:00:36Z: Fix MSVC compilation errors by writing version.cpp as UTF8 (#355)
Sam Tupy on 2026-03-16T06:40:18Z: update SDL android java code (fixes #353)
Sam Tupy on 2026-03-16T01:06:00Z: dep update - angelscript, sdl, more
Sam Tupy on 2026-03-16T00:27:46Z: Fix legacy_sound broken because of tonesynth not using namespace accessor (fixes #342)
Sam Tupy on 2026-03-16T00:01:46Z: Loads of work on game_window class and implementing graphics functions enspired from @aryanchoudharypro
Sam Tupy on 2026-03-15T23:55:07Z: The #pragma stub option works again (resolves #259) (fixes #340)
Arto Baltayan on 2026-03-14T22:53:47Z: Fix capitalization and hyphenation in README (#352) Fix README formatting (cross-platform, Unity, Unreal)
Aryan Choudhary on 2026-03-14T18:12:05Z: add window flags to show_window and new window sizing functions (#351) * fix lagg in open and save as dialogs on windows * add window flags to show_window and new window sizing functions * added optional flags argument to show_window to allow creating fullscreen, maximized, resizable, or hidden windows * added get_window_width() and get_window_height() to retrieve the current pixel dimensions of the game window * exposed various SDL window flags to AngelScript through the new window_flags enum * added accompanying documentation for the new functions and flags * fix docs and enums
Aryan Choudhary on 2026-03-14T02:16:35Z: fix lagg in open and save as dialogs on windows (#350)
Sam Tupy on 2026-03-12T19:12:37Z: attempt loading libspeechd.so.2 on linux (fixes #326)
Day Garwood on 2026-03-12T18:01:02Z: Several improvements and bug fixes to Sapibridge (#345) 1. Fix a few potential memory leaks (voice enumeration, stream creation, cleanup) 2. API consistency (getters now always return from cache) 3. Pitch now works (all text is now sent via XML and escaped) 4. Library now considers previous COM initialisation (fixes #344 Problem loading voices after window is created). 5. UTF8 consistancy (fixes #346 Chinese text is garbled in built-in TTS / SAPI5 on Windows).
Sam Tupy on 2026-03-12T17:57:48Z: fix windows screen_reader_braille UTF8 conversion (#346)
Sam Tupy on 2026-03-12T17:57:10Z: Add /utf-8 windows build argument (#346)
Sam Tupy on 2026-03-10T22:02:23Z: attempt to upload install action (untested at this time)
Quin Gillespie on 2026-03-06T16:45:01Z: Add parameter names to functions and fix brace coding style in cppmath.cpp.
Aryan Choudhary on 2026-03-05T04:10:58Z: added a get_process_id function (#343)
Quin Gillespie on 2026-03-05T03:52:14Z: Clean up run function on Windows, leading to far more reliability, remove a few old quick tests.
Sam Tupy on 2026-03-02T19:40:55Z: Attempt to fix overcomplicated settings::ensure_path_exists function to fix absolute path not working on some platforms
Sam Tupy on 2026-03-02T19:39:51Z: Fix statset deserialize_linear number detection so string stats can start with numbers and still deserialize
Mateo Cedillo on 2026-03-02T19:38:26Z: Added soundtrack and a quick test (#328) * This is version 1 (original) without drums, pitch bend or harmonies. Those can't be added at the moment because some internal functions are missing. * We can write songs to both memory or file. * Includes quick test.
Day Garwood on 2026-02-27T21:43:17Z: InputBox: Switch from richedit to edit control (#337)
Sam Tupy on 2026-02-27T19:37:32Z: fix bundler duplicating resources
Sam Tupy on 2026-02-27T19:16:05Z: http keepalive timeout and uuid properties
Sam Tupy on 2026-02-23T21:38:40Z: seems our automatic releases action broke mid dev, try latest ver of it?
Sam Tupy on 2026-02-23T20:55:34Z: hack parse_json to use aswrappedcall until we can fix angelscript exceptions on Intel Macs
Sam Tupy on 2026-02-23T17:16:36Z: manually lipo Angelscript on MacOS to attempt fixing intel exception mishandling
Sam Tupy on 2026-02-18T16:12:15Z: first attempt at signed windows installer!
Sam Tupy on 2026-02-17T02:00:56Z: several improvements to AVTTSVoice that showed themselves on MacOS26 - causes much faster NVGT app launches!
Sam Tupy on 2026-02-17T02:00:10Z: add a property to touch to determine if input has reached the manager recently
DalisonCPU on 2026-02-12T17:15:35Z: Changing core to allow DATE/TIME override by plugin (#336) * feat: Changing core to load plugins after ConfigureEngine and split time globals * fix: Initialize time cache on first read
Ethin Probst on 2026-02-10T12:36:44Z: Update contributor guidelines to moderate AI-generated pull requests
Ethin Probst on 2026-02-10T12:04:13Z: Revert "Little Code Enhancements (#332)" This reverts commit 7503627bc01aa1c1d73401a05e908a5397a805af.
Hamza Ahmad on 2026-02-09T15:21:47Z: Little Code Enhancements (#332) * Clarify regexp_match parameter names in registration Updated the registration of the regexp_match global function to include explicit parameter names (subject, pattern, options) for improved clarity in the scripting API. * Add property attribute to set_looping method registration The set_looping method is now registered with the 'property' attribute, aligning it with the get_looping method and improving script interface consistency. * Add parameter names to regexp global function signatures Updated the registration of regexp_search and regexp_replace global functions to include parameter names for clarity. This improves code readability and helps script users understand the function arguments.
MarcroSoft on 2026-02-02T11:15:08Z: Compile angelscript-nc again and use it in the windows stub (#331)
DalisonCPU on 2026-01-31T04:09:58Z: Implementations for random64 (#256) * add: Implementing Range64 * feat: Implementing rnd_xorshift_range64 * feat: Added Random64 function * refactor: Using Next64 instead of Next to Random64 and registered Next64 for AngelScript * feat: Added random64 test example
Day Garwood on 2026-01-31T02:53:29Z: improve input_box module (#307) * Fix potential bugs and leaks in window destruction * Few other minor fixes - OK NULL guard, correct brush reference, fix M_SETREADONLY parameter. * Fix leak (FreeLibrary) * Fix alignment helper. Hopefully now works with both static and text controls (no crashes/errors but can't confirm visual UI layout). * Fix clipboard retention bug
Aryan Choudhary on 2026-01-31T02:40:30Z: added the new touch include with better gesture detection using events (#318) This drastically improves the reliability of the touch include while adding several new features, such as flicks and long holds.
Sam Tupy on 2026-01-31T01:49:16Z: be sure android.mk no longer looks for miniaudio.c
Sam Tupy on 2026-01-31T01:48:34Z: local android builds now run after upgrading gradle/sdl project files, miniaudio is now vcpkg dep!
Sam Tupy on 2026-01-30T21:47:26Z: try forcing deps and nvgt to use same ndk
Sam Tupy on 2026-01-30T20:51:52Z: we appear to be building deps with different ndk ver than nvgt because of gradle. Downgrade to ndk r25b for now
Sam Tupy on 2026-01-30T20:14:01Z: update vcpkg baseline - android is building locally...
Sam Tupy on 2026-01-25T00:26:43Z: Needed to also set c++_static in jni/application.mk
Sam Tupy on 2026-01-24T23:41:20Z: oops? We want dynamic not shared for Android triplet
Sam Tupy on 2026-01-24T23:16:21Z: add aryanchoudharypro/NVGTBridge support to NVGT apps by default!
Sam Tupy on 2026-01-24T23:12:37Z: Try Android NDK r29 and switch to c++_shared in Android toolchain
Sam Tupy on 2026-01-23T23:41:10Z: attempt to upgrade to Android ndk r27d to fix missing fstream ops after dep upgrades
Sam Tupy on 2026-01-23T23:29:05Z: add missing Linux packages to CI after dep upgrades
Sam Tupy on 2026-01-12T20:16:45Z: Massive dep upgrade including Angelscript miniaudio SDL and VCPKG baseline! Unfortunately my local setup for testing various platforms is a bit in need of love at the moment, so we're going to let CI report errors on various platforms other than windows until we fix them.
Sam Tupy on 2026-01-08T18:22:17Z: update to latest miniaudio dev miniaudio dev commit 5ef2e1ec57cdbd2b9b09d776f0a13c2c2a796a7d
Sam Tupy on 2026-01-08T08:23:59Z: fix memory leak in JSON wrapper when assigning arrays and objects via operator overloading
Sam Tupy on 2026-01-07T20:07:24Z: add menu::delete_all_items() method to menu.nvgt
Sam Tupy on 2026-01-06T19:32:29Z: timer_queue::set forces timeout to be at least 1ms to avoid debug assertion from underlying timer_wheel, a bit of styling to timer_queue in the process
Quin Gillespie on 2026-01-06T17:43:10Z: Added the / operator overload to spec::path for cross-platform path joining, as well as a test case for it.
Aryan Choudhary on 2026-01-01T01:52:31Z: fix is_window_active on android (#322)
Aryan Choudhary on 2026-01-01T01:50:29Z: fixed detection of jieshuo on Android when the game mode is active (#321)