5ba9983594also migrate frame accumulator to world state instead of it being a static variable in some weird timeline i have multiple physics sims running at once
master
ecker2026-08-19 20:18:45 -0500
cb86b34076impressive... (some physics fixes i wasn't able to find myself), some fixes to get it to compile under linux (again, I thought it did before)ecker2026-08-19 19:32:27 -0500
2b41912c4d'what an expensive mistake this turned to to be' (was curious and revived my mistake of a .5K rig from a couple of years ago to toss the CPU=>GPU serialization issue at it just for it to shuffle some lines after 5M tokens)ecker2026-08-19 15:44:13 -0500
a0fab08ca4non-blocking transient buffer draining + ring buffer or somethingecker2026-08-18 22:41:55 -0500
b43a6179dffixed vxgi trace, something else I thinkecker2026-08-16 19:50:27 -0500
a43b1567b3rabbithole of swapping VXGI to SVOGI (currently enabled arbitrary regions to voxelize into (mostly working)), repaired shadowmaps (kind of flickers from depth precision when moving), to-do: fix annoying race issue when GPU is under load that is not fixed with N-buffered attachments, but is fixed with vkDeviceWaitIdle (although this is a horribad bandaid fix)ecker2026-08-15 23:36:26 -0500
08134804cfmesh/texture ''streaming'' (dynamic loading) is (relatively) seamless on the dreamcast now (due to concurrency issues with disk reads despite there only being one worker thread), a bunch of s/push_back/emplace_back since i've been getting lazy with itecker2026-08-14 12:27:26 -0500
0f29016823cleaned up GD-ROM/MIL-CD creation stack with my own utility, updated documentation (somewhat)ecker2026-08-12 15:47:41 -0500
1f84f2b214fixed audio issues for AICA backend (sound effects play now, OGG/WAV plays too), updated uf::io::preferred to have an order of preference, added query caching for most uf::io callsecker2026-08-10 20:43:46 -0500
8565569ec5fixed issue with -ffast-math treating nan == nan as true instead of false, fixed normalize on dreamcast, squashed remaining failing physics unit tests (while hunting for the first two bugs), fixed position solverecker2026-08-10 16:24:27 -0500
f7f6d54c54re-enabled internal allocator for STL containers (because of lines being swapped), fixed async asset loading (for OpenGL, Vulkan still doesn't like it), grouped OpenGL draw calls by material type for a speedup, some other stuffecker2026-08-09 23:28:11 -0500
956b0ddb4afinal fixes (refit/decide is flat aware, can fully clear unflat bounds/nodes when flattened, some timing issue with creating/initializing/updating the physics state), dreamcast still stutters on streaming in data though......ecker2026-08-09 13:13:48 -0500
d078784088fixed footsteps returning wrong sound (due to it assuming the view ID was a triangle ID), overhauled flattened BVHs by shrinking node size and quantizing AABBS to reduce memory footprint, fixed BVHs to clear the unflattened node/bounds when flattened (for meshes, broadphase BVHs need to be updated to use the flattened versions)ecker2026-08-09 11:35:04 -0500
1324cf7e42properly fixed this streamed-in BVH nightmare (to-do: fix the footsteps because it's passing in a local triangle ID instead of a global triangle ID like it expected before)ecker2026-08-08 22:55:20 -0500
992556b054more fixes (to-do: fix BVH serialization/deserialization since I'm very sure it's wrong, but everything else should be plumbed right)ecker2026-08-08 20:54:32 -0500
24d1d63516actually fix BVH building, overhauled BVH building to (theoretically) allow for nodes to be disabled so the BVH is loaded once and unloaded mesh regions are deactivated, build mesh BVHs when saving graph to disk and load them (to-do: actually fix it, since the writer might be broken)ecker2026-08-08 16:09:13 -0500
ff72196418fixed some bugs (to-do: squash the stutter from building the mesh's BVH)ecker2026-08-07 22:51:35 -0500
fed6db2d17more overkill optimizations (dedicated uf::thread implementation for KOS, replaced std::istream in VFS, mesh code cleanup, probably fixed std::swap maybe naively copying), dramatically sped up mesh streaming/processing, but still a small noticeable stutter on the dreamcastecker2026-08-07 21:08:58 -0500
25ee978a8dfixed bug in texconv, dreamcast settings adjustments (namely shrinking the threshold for reading the entire file vs streaming it in because for some reason I thought 2MB wasn't an issue)ecker2026-08-07 10:30:26 -0500
e3ae6d6b85mesh streaming works with interleaved meshes, overhauled mesh streaming to work asynchronously (ironically only x86_64 OpenGL works well with it), reverted dtex conversion to 32x32 because any larger size doesn't actually workecker2026-08-06 20:45:41 -0500
d758cf6db9fixed some weird memory leak with keymap import/merge, validated allocator settings, some other things (mds-mcdonalds can now theoretically load on a real dreamcast) (to-do: asynchronous mesh loading since it stutters on streaming new mesh data)ecker2026-08-05 20:18:21 -0500
f4fdf5208ffixed emitted audio crashing if not-existant, fixed GLdc non-compressed texture loading, bin lightmaps to partitions for NewDark MIS and Valve BSP loaders (NewDark doesn't group by portal-cell), validated that game scene does load on dreamcast (even though mds-mcdonalds clocks at 23MiB at runtime with gutting everything......)ecker2026-08-04 20:40:56 -0500
fc47cff1famaybe final fixes for opengl (properly set depth range and ops, just need a scene to test for dreamcast......)ecker2026-08-03 23:28:44 -0500
eacde883d0finally fixed dreamcast/flycast not rendering the main menu (to-do: fix inside out for x86_64 opengl), fixed uf::vector::notEquals, added deterministic fnv1a hashing for when it needs to be cross platformedecker2026-08-03 19:30:52 -0500
d481d8ae4aadded cache VFS to store all these offline-converted formats, repaired opengl renderer because of some annoying bug of implicitly casted vectors of different dimensions......ecker2026-08-01 00:03:06 -0500
44e0caca5badded ADPCM, added encode/decode functions for vorbis/wav, automatically convert audio to ADPCM for Dreamcast playback, (theoretically working) spatial audio for AICA-audio backend, non-streamed (SFX) maybe working?ecker2026-07-28 00:57:52 -0500
d3d33383ecactually flycast had a bug that refused to play audio from kallistios-based programs...ecker2026-07-27 07:24:14 -0500
9ac47e843fmore schizophrenic fixes for the dreamcast build (for audio/graphics to still be broken), dropped freetype for stb_truetype (to shrink the DC binary down to 2.6MB)ecker2026-07-26 20:36:55 -0500
c61e502dcba bunch of schizoshit to get dreamcast target to boot (crashes from a memory pool assert) while simultaneously shrinking the .elf (3.60MB=>3.06MB)ecker2026-07-24 22:45:57 -0500
9597916568fixed simd normalize because i guess you needed to check for dot > eps2, actually enabled use of custom allocator for uf::stl containers, updated nlohmann/json wrapper to use supplied types (should fully remove the need to glue on float64_t to it for dreamcast, even though either -m4/-m4-single fixed that last i checked), fixed weird issue with debug draw having frame % 3 draw the wireframe without a transformation matrix presumably because the camera viewport was [4] instead of [6] (even-even though it fixed itself when i only set the specialization constant for debug text only), mostly corrected source-engine physics state even though it should probably get defined in the bsp loader or somethingecker2026-07-23 21:45:57 -0500
b309a60b8cmore physics tweaks (disabled NGS because it behaved poorly, added some small code to keep objects when grounded to moving bodies, fixed oversight with kinematic bodies), made darkengine lightmaps properly dark with baking it as srgbecker2026-07-21 00:11:43 -0500
5cc441bb63chasing down demons in the physics system......ecker2026-07-20 20:18:00 -0500
afd04c317erenamed ttlg => lgs (because it makes slightly more sense as it follows the naming convention of ext::valve for Valve formats, although it might be better to instead be dark/source or darkengine/sourceengine)ecker2026-07-20 16:41:18 -0500
4fba288af5newdark: cleaned up code, io.lua handles strictly IO, osm.lua handles replicating OSM code, schema_db.lua handles resolving schemas => filenames, lua hook calls returns their values (to-do, try and return any value, probably never happening)ecker2026-07-20 16:35:56 -0500
988a61de7anewdark: code cleanup (with uf::stl::reader), squashed bugs with ambience (to-do: fix attenuation), more I/O (buttons actually work, most things sans keycard readers emit the right sound, elevator lifts mostly work), added mask filtering for raycast to avoid hitting triggers, to-do: add a crosshair and draw a square around entity looking at, fix SIMD normalize being dreadfully slowecker2026-07-20 00:06:17 -0500
7bd018dae0newdark: (ughhhh) binding physics states, ambient sounds, doors, triggers, songs (missing things like XXMIX_S), to-do: more I/O, fix trigger bounds being weird, optimize physics bodies because it eats half my frametime | added dir listing for VFS, added queueing pending sounds to seamlessly transition (streamed audio only), probably a lot of other things just to make the former features happen..............ecker2026-07-19 02:38:10 -0500
bd6b41a7a7newdark: fixed orientation (naively binding a light to a proper entity caused issues), code cleanup (to-do: fix some models loading the wrong materials, finish binding data)ecker2026-07-17 20:13:44 -0500
9520e33d75newdark: fixed lights not loading, almost fixed orientation loading wrong, (to-do: fix prop materials sometimes being wrong)ecker2026-07-17 11:55:20 -0500
c5e49e59ebfixed stacking multiple Zip mounts from overwriting due to not assigning mount.path, adding NewDark .mis loading (to-do: fix rotation quirks, some textures not loading, implement LGMM loading, handle non-lightmap lights, handle soundscapes, tie in links, etc.)ecker2026-07-15 22:19:11 -0500
234aba6782finishing integration of batched-scattered reads for fast loadecker2026-07-12 22:12:49 -0500
d1c2de0423added lz4 because i forgot to finish it i guess (and starting to abstract this batched-scattered read paradigm)ecker2026-07-12 12:44:07 -0500
2a02e08383fixes for streaming in meshes/textures (sped up scene loading because I was thrashing I/O with re-walking a gunzip file constantly the moment i swapped to storing all mesh data inside one file......), some other things I don't remember since it was a week agoecker2026-07-11 17:48:07 -0500
ad360a351dwhen load times regress (more fixes related to opengl, to-do actually make interleaving + streaming work)ecker2026-07-04 23:20:09 -0500
fa5f421140more opengl related fixes (like proper instancing), disabled signaling a command buffer rebuild on graphic.updateMesh (to-do: properly handle this strictly for immediate-mode debug draw, or just do some lambda memery)ecker2026-07-02 19:22:07 -0500
a2636e834copengl related fixes that almost are done (some props aren't rendering because of alpha shitcannery)ecker2026-06-28 19:56:55 -0500
c3e337bb87finalized VR rendermode, rendertarget handles the camera for where it should render at (defaults to 3 units in front of camera), fixed flat GUI not clicking/hovering when in VR because of mismatched viewport sizes, fixed validation error regressionsecker2026-06-23 21:51:01 -0500
a98298b668repaired VR support (to-do: make the VR rendermode work)ecker2026-06-22 22:04:18 -0500
e0fbed4a14more fixes (chasing down demons because of forgetting to support BGR888......), theoretical HDR image saving/loading and animated textures (to-do: actually animate them)ecker2026-06-20 23:10:53 -0500
def459e72cadded 3D skybox rendering (to-do: fix some quirks), fixing lighting issues (to-do: fix tangents or normal maps or something i dont know)ecker2026-06-20 00:24:33 -0500
aa2740979coverhauled saving/loading graphs, made joints global IDs, fixed some quirk with subsequent graphs loading, fixed quirks with async graph loading, some other thingsecker2026-06-18 20:42:39 -0500
941ad2ead9fixing issues related to asynchronous asset loading (disabled for now because there's an inconsistent vulkan-related crash that I'd like to fix)ecker2026-06-17 22:49:13 -0500
2944335904refractored player behavior into not-monolithic code, better player handling, stair stepping going up and down, lua serialization/deserialization should be more optimal by virtue of not stringifyingecker2026-06-16 21:41:18 -0500
a834adca13audio effects via gaytracing, fixed IO connectivity of triggers, fixed linear doors not dooringecker2026-06-16 00:26:52 -0500
de5fc31ff5refractored audio system into audiosource and audioclipecker2026-06-15 21:23:07 -0500
d5f374350ecubemap handling from vbsp parser (eventually to be used for PBR irradiance or whatever i guess)ecker2026-06-13 23:53:05 -0500
7034da71demanaged to fix the disgusting icky input lag at specific frametimes (because the swapchain was rendering to the wrong frame for presentation), attempting to fix a regression with shadowmaps being ickyecker2026-06-12 22:28:35 -0500
8aee000b05fix non-msaa because of cringeecker2026-06-11 22:43:06 -0500
02d98c1176more neurotic changes, triangle IDs are dispatched in collision events, proper footstep sounds (to-do: make use of the physics material), Lua script can handle footsteps too (probably shouldn't because Lua invocations are kinda slow on dreamcast last I checked due to lack of LuaJIT), some other things I forgot alreadyecker2026-06-11 22:24:16 -0500
595e986903did not plan on actually implementing tr_polys with forward+ (it didn't even solve the issue of incadescent light panels not working right because they're baked into worldspawn)ecker2026-06-11 00:08:31 -0500
590eee0684even more SFINAE abuse shoving the hasher into unordered_map (and somewhere along the line scene loading is quicker because of things)ecker2026-06-10 21:15:45 -0500
334b897e19fixed the issues with uf::hashed_string keys for hook system (because of a lot of annoying things)ecker2026-06-10 20:37:42 -0500
5931a5dc6freverted hook hashes because all non-entity hook dispatches breaks, dilate texture atlases if padding is requested, proper mipmapping in deferred shader, some other code cleanup, parse mass from MDL, load error model as fallbackecker2026-06-09 23:24:05 -0500
f9d7cf2dc8microoptimization of having hook system keyed to hashes rather than strings directly (and hash hook names containing '%UID%' with that entity's UID rather than replace the string)ecker2026-06-09 19:54:24 -0500
0fdba55927schizofixes before converting hooks to hashes finallyecker2026-06-08 23:24:16 -0500
9e823645a4several agonizing hours of dealing with more GCC v13 gremlins involving calculating tangentsecker2026-06-07 23:53:41 -0500
6ae24419e7more bug fixes (fixed that weird instancing bug where things get rendered at origin because of instanced graphics also rendering, mdl fixes, fixed lightmaps with displacements, fixed trigger physics bodies)ecker2026-06-07 17:04:03 -0500
e4ad164203odd bug fixes involving entities that load more than one lua script (nasty hack), issue with audio not streaming from non-disk VFSs, more valve compliance (doors, IO connectivity, ambience_generic)ecker2026-06-07 00:59:19 -0500
22fb850709more engine cleanup and fixes (removed the footgun of texture2Ds/instanceAddresses, parse VMT values into material information, re-parent nodes for BSP loader, hopefully final VFS integration fixes)ecker2026-06-06 15:36:36 -0500
98ec4933dainsanity (added VFS, piped everything through it and made it work, 90% done with valve loaders)ecker2026-06-06 00:10:29 -0500
06e88cbf17cleanup (strictly de-interleaved meshes, cleaned up atlas packing and xatlas unwrapping, dropped mesh attribute ID since it's not necessary with draw command/instance indirectin)ecker2026-06-04 19:56:45 -0500
46c08b0516lots of things (cleaned up how graph storage works, fixed bugs related to loading from gtlf rather than a graph, fixed lightmap baker, use RGBExp32 format for lightmaps, some other things, in-progress BSP/VTF/MDL loader)ecker2026-06-03 22:55:14 -0500
f8da959ffdlots of old code cleanup (camera, image, glyph, atlas, etc.), reintroduced un-staged buffers (to test if this solved the immediate mode jitter but it was the camera)ecker2026-05-31 19:34:20 -0500
90758175carender entity information, properly handle when there's no lines/strings to render (as it would never update the buffers to say theres nothing to draw), skip resolving manifold contacts if a body is a trigger (idle thought told me that i needed to do this before i bother with triggers)ecker2026-05-30 23:07:44 -0500
4f03712001mucho texto (hunted down a weird GCC v13 bug that required uf::transform::apply to be inlined, working clang again, more attempts to fix ragdolls, made GUI text much more optimal, debug draw text, a bunch of other things)ecker2026-05-30 21:48:28 -0500
e434f33092tie joint matrices to ragdoll jointsecker2026-05-27 23:06:07 -0500
5402aff2a8imagine my shock the week-long issue predicated on scaling issues (constraint solving is now scaling aware, automatic ragdoll rigging seems to work, but need to actually bind the transforms to joint matrices)ecker2026-05-27 20:54:51 -0500
94ce7be618even more inane code cleanup, migrated immediate mode debug draw into its own file, added transform flattening pre/post physics step (for two reasons)ecker2026-05-26 22:08:16 -0500
0a92fed14aattempt at generating a ragdoll from a skinned mesh (doesn't work right now), fixed normal mappingecker2026-05-24 22:23:41 -0500
3a2dfb0833retrieval of collision eventsecker2026-05-23 15:34:36 -0500
eec75781baan almost perfect ragdoll (has issues when you grab it)ecker2026-05-22 22:02:13 -0500
6deb8795c5even more inane code cleanup, more lua bindings, multiple bodies for an entity (doesn't work?), ragdoll (doesn't work)ecker2026-05-22 20:19:28 -0500
40157df205even more inane cleanup, and even more constraintsecker2026-05-22 00:02:37 -0500
7bd4b00514NGS position solver fixed because of a pesky minus signecker2026-05-20 22:32:34 -0500
9097aebc92lots of physics cleanup and fixes (split-impulse performs better than a NGS position correction somehow?)ecker2026-05-20 20:59:47 -0500
098281ad81removed PGS solver since it is the iterative impulse solver, fixed returning problem of boxes sinking, some other thingsecker2026-05-20 15:02:29 -0500
437df59459more cleanup (physics seem to /almost/ work without issues)ecker2026-05-19 22:25:22 -0500
f054874fedgenerate proper-ish contacts for triangleAabb/triangleObb, code cleanupecker2026-05-19 15:01:38 -0500
a1f62ef0c3added forward+ rendermode, added debug draw for physics system (revealed my meshAabb/neshObb ocntact points were wrong)ecker2026-05-18 21:11:42 -0500
6b07173804added OBB colliders, painfully trying to resolve issues with rotating bodiesecker2026-05-16 23:19:49 -0500
142f584684fixed odd regression where door collision broke (and trying to fix the weird flickering with using the aliased camera UBO for the deferred pass)ecker2026-05-15 20:37:10 -0500
07f2a7d17bunneeded now (and this somehow caused vxgi to double-light up the voxels from constantly re-recording)ecker2026-05-15 14:30:50 -0500
f132f5d6d2refractored descriptor sets to properly handle multiple sets for a given shaderecker2026-05-15 14:18:50 -0500
e35806bb04painfully diagnosed a performance hit with vxgi from one line being commented out (and a bug from eyepos being wrong)ecker2026-05-14 22:00:17 -0500