Watertoon
watertoon.bsky.social
Watertoon
@watertoon.bsky.social
I reverse engineer game engines among other software memery.
Minecraft McNugget. (The frontmost McNugget was actually 2 McNuggets crafted together)
April 3, 2025 at 11:49 AM
Switch 2 backwards compatibility is hard, but not intractable. The api boundaries between application and sdk are well-defined despite both running in the same userland process. So Nintendo could replace the entire NVN api transparently and then use extra Switch 2 power for data conversion/caching.
April 2, 2025 at 4:44 PM
Great to see PhysX 5.6 open-source the GPU CUDA code. I still have reservations certain features like deformable (soft) bodies currently require a NVidia GPU, but PhysX 5 is close to my top choice for a game physics api I am planning (the internal struggle to not just write my own physics engine).
March 27, 2025 at 7:51 AM
Real unimpressive tech demo #1.
January 6, 2025 at 8:14 AM
Happy new year. This year I will use my custom in-progress game engine to start producing real unimpressive tech demos that can be seen and heard with graphics I poorly art and sounds I screech alongside unapologetic technical babble I'm attracted to as an overbearing dim-witted moth. In good fun.
January 1, 2025 at 10:19 AM
The new 1.4 NV Vulkan driver added vkGetImageViewHandle64NVX. Currently combined image handles are implied as 2 packed numbers in a 32-bit uint, 20:12, image_id:sampler_id. A (new?) flag exists that increases the image id to a full 32-bits, raising the max image cap from 1,048,576 to 4,294,967,296.
December 3, 2024 at 2:46 AM
I investigated VK_NVX_image_view_handle (rev2) since I wanted to use NV_bindless_texture (I must macro descriptor indexing vs NV_bindless_texture for Vulkan vs NVN already) and concluded it returns the same data as using vkGetDescriptorEXT, it seems I could also get the raw sampler handle this way.
November 30, 2024 at 6:21 AM
Made a primitive drawer for the Gamecube in a day to illustrate to someone how ridiculously long it takes to support modern graphics api's properly. That someone is me. I saw this and it fried my brain for the past 8 hours relieving all my PC graphics programming trauma I am not done with just yet.
November 23, 2024 at 4:07 PM
NintendoWare g3d2 encompasses bfres v9.1.1, v10.0.0, and v10.2.0 so far (bfres being a 3d model archive file format). Only ModuleSystem titles feature g3d2 though, every other g3d title I've seen still only uses g3d capped at bfres v9.1.0.
November 13, 2024 at 9:16 PM
By at least Switch Sports, Nintendo EPD's main graphics library, agl, moved to using "pipeline" state objects, likely during the addition of Vulkan as a backend (outside NVN). In NSO Playtest, there no longer seems to be pipeline objects. This could possibly be a result of recent Vulkan extensions.
November 11, 2024 at 12:26 AM
From between nnsdk 16.2.0 to 18.3.4. nn::os::ReaderWriterLockType was rebalanced and further optimized internally. I believe effectively up to 1023 read and write acquisitions can now safely happen, up from 255. Games use RWLocks plenty, so it's good work to see.
November 7, 2024 at 5:12 PM
Me when the new g3d2 version in the NSO Playtest software added meshlet support on the console without mesh shaders.
November 5, 2024 at 1:28 PM
The nnSdk in Switch games has a math library under nn::util, while Nintendo EPD has a math lib under sead. In EPD games the matrix types can interact. It seems a sead 3x4 row-major matrix is equivalent to an nn::util 4x3 column-major matrix, I'm just going to pretend sead is column major 4x3 lol.
November 2, 2024 at 3:21 PM
Unironically how I went about learning C++ and Operating Systems was by writing an entire cooperative thread scheduler on Windows to emulate the Nintendo Switch's cooperative threading model. Which I then scrapped in my lib recently once managing single vs cross process threads became too annoying.
October 20, 2024 at 7:04 PM