Changes since previous nightly (bd833a2a):
- ci: run the unit tests in the pull request checks and leave them out of the release builds (2d51d25)
- docs(site): move the contributing guide to the docs site (b81ec51)
- fix: clear the clang-tidy findings (85e607f)
- fix: stop the UI system without posting work to itself (6dfce75)
- refactor(codegen): rename the image config the title defines to kPPCImageConfig (d98cd27)
- fix: make the static registrations non throwing (baa260e)
- refactor(filesystem): initialize every field of a mount entry at the call (9e44439)
- refactor(hid): make the pad device id a strong integer type (e0e6ed0)
- scripts: run clang-tidy 22 through one script on every platform (718b81c)
- docs(site): serve the docs at docs.rexglue.com (3965770)
- docs: shorten the README and link the docs site (327130a)
- ci: update the GitHub actions to their current releases (02b11a8)
- fix(kernel): log the processor core count warning once (2fe071c)
- ci: run the format and clang-tidy checks on a pull request by hand (9bb9bd3)
- build: link with lld where the large code model is used (df21a40)
- ci: install VMA and LLVM 20 for the Windows builds (d255a8e)
- ci: build macOS on release tags and leave it out of the nightly (7147dd4)
- build: group the IDE target folders and create the header set targets only on request (982708b)
- refactor(xam): take the five per title interfaces from the app factory (b5a50d4)
- refactor(kernel): serve the five per title interfaces from the kernel module (21421dc)
- refactor(kernel): keep TitleState, StateOf and Dispatcher out of the rexkernel exports (1308505)
- refactor(xbdm): serve the XBDM export bodies from the rexxbdm module (8cae2f3)
- refactor(base): move the input key vocabulary into rexbase as rex::VirtualKey and friends (e15f4d2)
- refactor(kernel): forward declare the filesystem types in module.h and file_object.h (2d147ee)
- refactor(base): move the path helpers into rex::string (8dee452)
- refactor(base): move NativeWindow, IOverlayRenderer, IUIThread and AppInfo into rexbase (60f6d14)
- feat(kernel): serve the title workspace from a best fit range allocator (e00a720)
- build: replace o1heap with TLSF in GuestAllocator and the shim heap (f224515)
- feat(xam): add XamAllocEx with the heap and physical paths (36088f1)
- fix(xam): return the console HRESULTs from XamAlloc and make XamFree return void (f305a28)
- fix(xam): let XamAlloc with flags 0 use the title workspace (4125924)
- fix(kernel): report no more files after the first directory query (652e4bc)
- fix(kernel): return the console statuses for a missing file, folder, device and link (ba6b0b7)
- fix(filesystem): report a missing or non folder parent as kPathNotFound (3a03761)
- fix(base): release a failed placeholder with size zero (75f15af)
- fix(xam): take keystrokes from any user and from the devices the flags select (90888a9)
- fix(xam): create one directory level and set the last error on failure (5b8f1e5)
- fix(xam): store and compare FILETIME with the high word first (993bfb4)
- fix(kernel): raise the shim heap minimum to 4 MiB and correct the fill shim descriptions (7e5a31e)
- fix(kernel): match the CRT results of the secure copy and compare shims (2c55fd8)
- fix(memory): decide the 0xE0000000 offset from the host page size at build time (10acc0d)
- fix(memory): map file views through placeholders on Windows (34f9923)
- fix(kernel): wake a suspended thread when a stop is requested (3821d8a)
- fix(gpu): queue ring buffer setup without waiting for the command processor (b61e88c)
- fix(kernel): stop a spinning host worker only on the CheckStop condition (5e5f736)
- test: set the CMake minimum in the script mode tests (9a64c73)
- build: require AppleClang 17 and default the macOS deployment target to 13.3 (48ab173)
- ci: install the LunarG Vulkan SDK, use Visual Studio Clang and Ubuntu 24.04, run macOS by hand (5d9f974)
- build: take Vulkan, VMA, the loader and MoltenVK from the Vulkan SDK (6430599)
- fix(kernel): initialize the file object body the console sets on open, with its event signaled (e3bdbaa)
- fix(kernel): order mutant release, acquire and reinitialization under one lock (cc6f243)
- fix(kernel): give each NtCreate object a console guest body that a Ke initializer rewrites in place (1a285b9)
- fix(kernel): read XEX header fields as guest addresses in XamGetExecutionId and the workspace size (2904bf1)
- fix(memory): unprotect a watched host page by the access of every guest page in it (1f03b90)
- test(kernel): check FP masking against the masked state of each host (9c792bb)
- test(ppc): capture operands only on a mismatch (eaa16cf)
- test(kernel): shorten the pinned wait timeout (465a970)
- test(gpu): bound the frame limit from above (ced5377)
- test(kernel): read exported names from Mach-O libraries (63d5923)
- fix(memory): read the access of every guest page in a larger host page (8757a9a)
- fix(core): check callability before constructibility (7b2864b)
- docs(site): add the documentation site (049e565)
- test: remove duplicate and restating tests and merge small test files (83a2e8d)
- fix(kernel): implement ObReferenceObject (58db52c)
- fix(kernel): give file, IO completion, link and notify objects a guest body (89b2b2d)
- refactor: rename misleading names in the public API (a24434a)
- fix(kernel): give every open its own handle and follow OBJ_OPENIF (8cc7c7b)
- refactor(ppc): hold VSCR in one register type (52a1c38)
- feat(ui): add table, nav and rounding slots to the style (aef9457)
- feat(settings): accept the old flat setting names (6e31745)
- feat(platform): set the priority of the current thread (f3ae610)
- feat(kernel): read a GuestVector element through a memory view (8ef45f5)
- fix(memory): keep the 0x1000 offset of the 0xE0000000 view on 4 KiB hosts (a2f7fc1)
- fix(memory): check the physical range before clearing write watches (56cad34)
- fix(kernel): flag the stub shims and warn on a shim with no function (4d6a19d)
- build: install module libraries beside the executables (cdfedde)
- fix(kernel): return the operation status from file reads and writes (a795c93)
- fix(kernel): make XAudioGetSpeakerConfig follow the host channel count (f1bba98)
- refactor(log): write the log through spdlog and give each category its own macros (6da0681)
- fix(kernel): keep the shim strtok position per guest thread (ca1432f)
- build: give every library a precompiled header and verify the public headers (22023c3)
- refactor(codegen): remove the data region scan and the data_region_threshold setting (5da3f0a)
- fix(ppc): evaluate the REX_STUB_RETURN value once (15e5db8)
- fix(codegen): mask mtmsrd to the EE and RI bits (e5b4848)
- refactor(codegen): build the recompiler and tool on the module libraries (73175d1)
- feat(app): own the process lifecycle in rexapp (8aea9e1)
- feat(ui): add the UI system and the SDL3 UI driver (adcfb16)
- feat(gpu): add the graphics system and the Xenos drivers (71d87f8)
- feat(apu): add the audio system and its driver (f80eb58)
- feat(hid): add the input system and its drivers (d6f1ddb)
- feat(xam): build XAM as the rexxam module and install content packages (5ae338c)
- feat(kernel): add TitleRuntime and serve kernel objects through the object table (b0b39a8)
- refactor(filesystem): build the file system as rexfilesystem (77b1a8c)
- feat(memory): add checked guest memory and mapped pointers (13175cb)
- refactor(ppc): split the ppc headers and add kernel hooks (9c8a216)
- feat(base): add rexbase with modules, settings, logging and the platform layer (2015713)
- fix(kernel): fail object type mismatches and test only bit 31 in XSUCCEEDED (afe4313)
- fix(kernel): match the console in Ke timers, events, mutants and semaphores (4c31c2e)
- fix(kernel): pick the highest set affinity bit and round TLS slots like the console (8f52fbb)
- fix(kernel): match the console in the virtual memory and image header exports (d0de695)
- fix(kernel): lower Latin 1 capitals in RtlLowerChar (9e49fe7)
- fix(kernel): print an unknown printf conversion character (8c4f27e)
- fix(codegen): copy v14 to v31 through ctx around register sharing calls (e8f302d)
- fix(fs): preserve on-disk names in macOS file stats (2b168be)
- fix(core): initialize the clock globals at setup (773e345)
- fix(build): skip the missing tag warning for a source tree without git (9c1f41f)
- fix(core): clear the process runtime at Shutdown and exit nonzero on startup failure (13d0b06)
- fix(codegen): format the disassembled operands by their text length (0f56cc3)
- fix: run the unit tests clean under ThreadSanitizer (4d1aff7)
- perf(memory): read page protection without the heap lock (5b03365)
- perf(ppc): read the thread state and detour frame from the context (66b7312)
- perf(codegen): forward stack stores, fuse vector stores and tail call functions (55dd9b0)
- build: clean up the SDK CMake files (98eb5e3)
- test: remove wall time checks, CMake script tests and redundant unit tests (d72a25d)
- perf: wait for work instead of spinning in the Xenos workers and the null GPU (ecf5692)
- build(sdl): ship SDL3 as a shared library (4b3254d)
- feat(codegen): choose fast or exact vector math per instruction (9740cac)
- fix(filesystem): read game_mount_flags when the standard mounts are made (9f9a778)
- fix(ui): read overlay input capture from atomics and request a Vulkan window (6baed0e)
- feat(memory): add the host allocator and allocation profiling (088cf07)
- docs: document the remaining public members with Doxygen (9198699)
- feat(cli): add --modules and enforce cvar types, locks and init only (8603477)
- refactor(runtime): move the status types into xstatus.h (db68c54)
- refactor(codegen): remove the unused analysis settings and REX_MEMORY_SIZE (a336aff)
- fix(runtime): end the title heap range below the system range (7bc6e12)
- fix(core): escape control characters in saved config strings (48b522c)
- fix(hid): scale the stick deadzone against the axis range (ac2a474)
- fix(runtime): read the content license from the header of the package owner (e0ff750)
- fix(codegen): reject conflicting midasm hooks and accept the macro spellings (259dba8)
- fix(kernel): accept the DOS device prefix and open a symbolic link whatever the attributes (bea77ed)
- feat(core): share one unwind between App and rex::Shutdown and add IsTitleLaunched (c2c9526)
- feat(cvar): report reads of unregistered cvars and config values no cvar received (46f069e)
- fix(modules): order the module requirements and disconnect a failed GPU module (48bc75b)
- fix(cli): reject bad init project names and report recompile-tests failures (ac3bdd9)
- feat(codegen): warn about unknown and mistyped manifest keys (84e0e45)
- build: install runtime files and modules beside the executables (e4cb749)
- feat(init): write multi config presets and per configuration recomp options (72a1790)
- fix(xam): publish an overlapped receive and its event together through one helper (5fb8cc3)
- build: rebuild codegen output when its inputs change (0cb0918)
- build(tests): precompile the common headers and compile shared sources once (9817b33)
- feat(log): format log messages in rexcore and keep run numbers after a prune (c322b28)
- feat(runtime): map the host language and add the missing languages (b123ebf)
- feat(hid): add input bindings, key capture and pad info (8902706)
- feat(kernel): add math and DebugPrint shims and fix the wide string shims (53bfe5d)
- feat(string): add wide string and Shift-JIS conversions (99343fe)
- feat(dbg): add Tracy plots, zones, frame marks and memory profiling macros (ab60c53)
- feat(platform): add Relaunch, host path helpers and a higher open file limit (1dd00e9)
- feat(runtime): add checked guest memory access, be_ptr resolution and guest globals (c680b3b)
- feat(codegen): declare mid asm hooks in C++ (728d828)
- feat(ppc): add StackFrame and REX_DETOUR for hooks that run their original (0c04449)
- fix(kernel): fail the memory exports for an address outside every heap (e2fb9fd)
- fix(core): stop reading the process map on page commits and write watch faults (ded24d4)
- fix: read unaligned fields through memcpy and add the UBSan option (0d1fd9d)
- fix(core): refuse a misplaced fixed mapping on older Linux kernels (d95d909)
- fix(tests): fail when a manifest does not load (4065df8)
- fix(gpu): fix D3D12 bindless samplers, depth handling and tiled addresses (30eaa07)
- fix(scripts): go up three folders in the Get-ReXRoot fallback (1c4989d)
- refactor: rename misleading public names (fa241bf)
- fix(ppc): limit the ARM64 flush mask to FZ (6069ba1)
- refactor: use named casts and make moves and key reads noexcept (efcd130)
- docs: document the public declarations with Doxygen (3906b75)
- fix(ppc): align the vector mask and shift tables to 16 bytes (925a88d)
- fix: set every bit of the middle blocks in SetRange (f0f3b54)
- build(cmake): format and lint the SDK CMake files and pin the tool versions (d7b6c78)
- fix(kernel): convert Rtl strings like the console and print unsigned 64-bit printf values (86af321)
- feat(runtime): follow the PPC calling convention for host calls into recompiled code (fa6b73b)
- fix(kernel): ignore thread name exceptions of another type and cut unterminated names (f11c36b)
- fix(runtime): reject a malformed ELF, a bad XDBF block and a fake XMA context (a7d3aeb)
- fix(runtime): treat an empty wait as signaled and keep affinity inside the six hardware threads (02c4cb5)
- refactor(codegen): remove the late jump table pass and the unused scanners (223c8e8)
- fix(kernel): limit the printf digit buffers and format counted strings like the CRT (b04dc4f)
- fix(xam): show the message box in XamShowMessageBoxUIEx and add the stats enumerator (c7265de)
- fix(kernel): end the title on a bug check and reject bad NtCreateTimer types (bd46ded)
- fix(codegen): fix jump tables, noreturn calls, function ends and funclet saves (e9c1a0f)
- build: split rexglue_helpers.cmake into target, module and metadata files (de18ddb)
- refactor: rename the XMA packet, known function, interface and xcontent headers by contents (ddcb8c7)
- fix(core): report failed host file writes and keep invalid UTF-8 and UTF-16 bytes (3afb045)
- feat(runtime): add GuestAllocator and the title guest pool (c273dd8)
- fix(core): keep round_up of 0 at 0 and add round_up_nonzero (d05d8c0)
- fix(kernel): copy the byte length and respect a zero capacity in Rtl string copies (e20291e)
- fix(kernel): check NT path characters in one function (1937b7e)
- refactor(kernel): name the guest page sizes and reuse the kernel list and hash helpers (1306322)
- refactor: reuse shared helpers instead of local copies (0cedc9b)
- fix(codegen): register code that no function reaches and size import thunks by shape (a86428b)
- feat(app): declare command line actions with REX_CLI_ACTION (2a3b4dd)
- fix(core): hold timed waits to their deadline and round timeouts up to milliseconds (07b6be0)
- fix: find host files, content and mounts without regard to case (6141731)
- fix(runtime): refuse modules from another SDK build and skip unloaded importers (6f7c95e)
- fix(build): install and stage the PDB beside each runtime DLL and module (e8e2fa6)
- feat(kernel): implement NetDll_getsockname and fix the net tests (1da9e1e)
- refactor: reorganize the public headers by what they own (23e79f9)
- fix(build): build the POSIX core and the unit tests on macOS (725e176)
- fix(ui): keep each ImGui drawer on its own context (d90212b)
- fix(codegen): apply top level manifest keys to every binary and match DLL imports by name (1ed1f08)
- refactor(build): rename SDK libraries and split the Xenos module per host API (1481965)
- test: merge the unit test binaries and share the test helpers (ff01526)
- fix(core): keep the shutdown request and exit code in one value (9ddbc33)
- feat(rexglue): build host code as an object library and optimize recompiled code in Debug (35b5502)
- fix(runtime): resolve user module imports by ordinal and decode the XEX image in host memory (099fafc)
- feat(kernel): use ExCrypt for the XeCrypt exports and remove the vendored crypto sources (1f58bea)
- fix(gpu): skip render targets for draws whose depth test never passes (11539bc)
- fix(gpu): use fetch_constant_word_3 for the exponent bias (71275d3)
- fix(core): provide the clock conversion trait on every libc++ (d41ae19)
- build: point MSPACK_DIR at the real sources, not the symlink tree (f064ce3)
- refactor(codegen): decode instructions with the binutils table and select builders by opcode (5c81126)
- fix(memory): remove shared memory names left behind by dead processes (48846ee)
- fix(runtime): start every thread with VSCR NJ set like the hardware (66660e5)
- feat(runtime): zero the PE header pages of a module after its headers are parsed (0272e2e)
- fix(codegen): stop block discovery at the entry of another known function (11742bf)
- fix(codegen): fix AltiVec decoding, vpkd3d128 packing and fctiw NaN results (80c6aba)
- fix(cmake): copy the SDK shared libraries next to a Linux host (f9c5f1c)
- fix(gpu): attach to RenderDoc only if loaded and build the paint pipeline once per format (f52b398)
- fix: load recompiled DLLs by platform name, one module at a time (5bb891c)
- fix: find the entry XEX through the guest file system and keep host path case in init (2d6cdeb)
- fix(runtime): unload a recompiled module with the key it was loaded with (c739590)
- refactor(core): use SIMDe for SIMD on every architecture (4677f75)
- fix(kernel): report the device type of the volume under a content root (6ab3671)
- fix(kernel): document the XeKeys console sign and verification exports (c68a084)
- fix(xam): fix enumerate results, empty profile settings and XMP playback (4756b07)
- fix(kernel): set overlapped WSA status after its data and add getsockopt and setsockopt (95bd047)
- fix(runtime): reuse a user module thunk for the same caller and ordinal (ab7f190)
- fix(runtime): give each enumerator body its own handle (ac825b7)
- fix(runtime): run timer completion APCs from the dispatch thread and the timer queue (0bc0077)
- fix(core): wait on POSIX objects without polling (95159d2)
- fix(codegen): saturate out of range vpkd3d128 fields and fix vB reads (23a625e)
- feat(codegen): add mtvscr and mfvscr, set VSCR saturation and fix vmsum results (dc3b735)
- feat(codegen): add vpkpx and match hardware rounding in vmaddfp and vnmsubfp (6de395a)
- fix(codegen): match hardware in vupkd3d128 and fctiwz and run all assembly tests (57b701b)
- feat(ppc): compute the estimate instructions exactly and run hardware tested cases (95f546e)
- fix(gpu): request the shared memory range when a vertex fetch goes out of sync (cf75b89)
- fix(gpu): bind the Vulkan tessellation system constants correctly (8f83821)
- fix(gpu): write the SV_SampleIndex semantic for sample rate memexport pixel shaders (0d5178c)
- refactor: rename methods, accessors, constants, enumerators and hiding parameters (4ac26c0)
- refactor(ui): order input listeners in InputListenerList (a39939a)
- fix(rexglue): run the init module without the init only options (a6494c3)
- fix(codegen): decode VMX loads and stores and return a defined analysis before seal (750d559)
- fix(core): initialize, lock and scale the tick clock without overflow (a5925a1)
- fix(runtime): report QueueUserAPC failures and deliver queued APCs at waits (a50fa82)
- fix(xam): report missing content and bound the XDBF reader (9dc907a)
- fix(kernel): fix memory reset, root directory and event lookups (aec2576)
- fix(kernel): fix socket lifetimes, select set sizes and overlapped WSA receives (1dca6c8)
- fix(runtime): fix ELF and XMA includes and free the loaded module with its object (64107f2)
- feat(rexglue): read init template overrides from a directory (f9d9d45)
- refactor(codegen): name the manifest module path key and test the manifest loader (f80b0e8)
- refactor(kernel): make the kernel object functions methods of their objects (94eb89d)
- refactor: rename value builders, kernel object names and macros (653e717)
- fix(kernel): lay out the processor control block and object header like the kernel (bcb05fe)
- refactor: check the size of every guest layout struct at compile time (878765e)
- refactor: size enums to their range and make every conversion explicit (72f6f98)
- fix: handle every ignored result and failed object lookup (4bbe7ef)
- fix(filesystem): close only a content's own files and match its root by whole path part (5a5aec5)
- fix(runtime): register an achievement batch all or none and report a rejected batch (6134fe2)
- fix(ui): parse 64-bit cvars at full width in the settings overlay (d0a28f4)
- fix: stop assertions, logging and teardown from throwing and report main exceptions (5e0f4e5)
- fix(runtime): give every process its own ReX memory mapping (dabe904)
- fix(kernel): handle an empty playlist in the XMP app (abd17e8)
- fix(kernel): check socket address lengths and use network byte order (ce403aa)
- fix(kernel): treat the character as unsigned in RtlUpperChar and RtlLowerChar (973fe88)
- fix(core): keep scaled relative waits negative and carry microseconds into seconds (42df464)
- fix(runtime): unlink the KTHREAD of a thread that fails to launch (336f6bd)
- fix(ppc): read the ARM64 FPCR rounding mode back as the matching PowerPC mode (e007b1d)
- fix: build and run the SDK and its unit tests on macOS (df45fc2)
- test(kernel): wait for thread CPU time to build up before checking kernel time (2704287)
- fix(core): build with libc++ (157be0e)
- fix: reject out of range file dispositions, socket arguments and language ids (fdbdc7f)
- fix(gpu): fix D3D12 pipeline threads, cache insertion and render target depth (ae08321)
- refactor: use rex types in place of std types (36624ca)
- fix(runtime): stop freeing guest APCs after they are delivered (4c26323)
- docs: add the copyright block and Doxygen documentation to every file (24f61a9)
- feat(gpu): dump translated SPIR-V when dump_shaders is set (f03efd1)
- build: compile with warnings as errors and remove the MSVC only branches (9553afc)
- fix(codegen): compare generated register values as u64 (5b5165b)
- feat(kernel): format XAM dates and times from a filetime on POSIX (0134d55)
- fix(ppc): read 64-bit export arguments as a whole (48eafbb)
- refactor: remove unused code, shader bytecode and vendored sources (426f7a4)
- fix(core): write BitStream data in big endian and include cstddef (d243279)
- fix: use atomics for overlapped results, spinlock owners and GPU completion words (c0070f8)
- fix(platform): fix POSIX SEH scopes, suspend signals, alertable waits and mapped memory (cc1856f)
- fix(xam): return the enumeration items that fit the buffer the title passes (5bcc010)
- fix(core): initialize missing fields and compare RtlCompareStringN lengths (e64978c)
- test: report failed assertions on guest threads from the main thread (993e9dc)
- feat(runtime): stop guest threads on request and fix thread teardown order (2666f95)
- fix(gpu): fix command processor and vsync threading, type 0 headers and Linux builds (3ed27f3)
- fix(runtime): run host calls into recompiled code on the thread's own registers (3bfd774)
- fix(ppc): shift vsl lanes by a runtime count on every architecture (77bbb7d)
- refactor: apply the clang-tidy modernize checks (d61deac)
- refactor: replace fmt with std::format (5b67937)
- refactor(core): replace utfcpp with a UTF codec in core (824c95d)
- refactor(ui): move the window and overlays into rex-ui-sdl3 and add key chords (67d6734)
- refactor(core): export only marked symbols and rewrite the timer queue (104a705)
- feat(gpu): add a null GPU to the runtime and a null host path to rex-gpu-xenos (83fe503)
- refactor: move audio and input into the rex-apu and rex-hid modules (772e7fd)
- refactor(gpu): split the register table and host code into separate modules (cdd4afb)
- build: use dashes in SDK binary names and pick the GPU host API at runtime (a795de1)
- feat(xam): allocate XamAlloc and enumerator memory from a title workspace (b025c4a)
- fix(filesystem): match NT behavior for wildcards, rename, exclusive create and flush (32d2c0c)
- refactor(core): return Result from lookups and use be_ aliases (b236301)
- fix(runtime): read content data file names within the 42 character field (bc62184)
- fix(kernel): match XDK thread, mutant and file behavior and add stack guard pages and TLS (420e9ec)
- feat(memory): add a title memory budget and keep the XEX heap intact on load (23cf91e)
- feat(kernel): add DPC dispatch, Ke mutants, timers and interrupts (ded3f1e)
- feat(core): report crashes from core for every kind of fault (506e6a4)
- refactor(filesystem)!: parse XEX images in core and shrink XexModule (d632b46)
- refactor(mmio)!: classify MMIO at recompile time and remove the runtime MMIO handler (1f2faba)
- refactor(audio): run the XMA decoder on a std::jthread (35291b4)
- perf(runtime): speed up address translation and add MemoryView (bd75200)
- refactor(runtime)!: replace KernelState with runtime interfaces owned by Runtime (b75ca55)
- refactor(kernel)!: replace the XObject classes with a handle table and KernelThread (a07615e)
- refactor(kernel)!: replace the crt layer with a shim registry and checked export tables (9974535)
- test(codegen): fix backslash escaping in the depfile test (b9318ca)
- feat(log)!: replace spdlog with the core logger (f1ac0c9)
- feat(ui): add a console model with saved history, completion help and undocking (2f54d4c)
- feat(platform): add ranked mutexes with a debug lock order check and an interrupt mask (bc4d43e)
- feat(filesystem)!: move the filesystem into rexfilesystem.dll and switch the kernel to it (ae24076)
- feat(core): add container descriptions, host file helpers and a flag enum trait (e8499c4)
- refactor!: remove the leftover JIT code, the save state code and the bump allocator (b726cdd)
- feat!: split rexcore.dll out of rexruntime (2a85be4)
- refactor(gpu): move the Xenos description into rex::xenos (70e34cc)
- refactor: merge the root and platform namespaces and rename the profiling macros (a027590)
- feat!: replace ReXApp with rex::App and TitleApp and fix shutdown and relaunch (7185173)
- feat(core): add the cvar registry and register Config structs through rex::Init (6bcd7f0)
- feat(core): add the module loader and load the Xenos GPU plugin through rex::Init (646ab23)