19
I Use This!
Low Activity

Commits : Listings

Analyzed 1 day ago. based on code collected 1 day ago.
May 03, 2023 — May 03, 2024
Commit Message Contributor Files Modified Lines Added Lines Removed Code Location Date
GFX3D / SoftRasterizer: Small refactor to use some of the new data types introduced in commit cda8cb5. - Also make SoftRasterizer's framebuffer out-of-bounds width check more robust. More... about 1 year ago
GFX3D: Fix clear color on big-endian systems. (Regression from commit 97848fc.) More... about 1 year ago
CI: limit autoconf build to 8 processes More... about 1 year ago
Silence some compiler warnings. More... about 1 year ago
Core: Move low-level vector, vertex coordinate, and color data type declarations into types.h so that they can be used universally. Also update the data type names to be more descriptive and have better consistency. - Add SIMD-float32 data types, and also add macros to track SIMD data-type availability. - Also fix some bugs where 3D would fail to render on big-endian systems. (Regression from commit a67e040.) More... about 1 year ago
Cocoa Port: Silence some compiler warnings. More... about 1 year ago
GFX3D: Remove the mistaken addition of color clamping when converting fixed-point vertex colors into floating-point. Fixes the proper coloring of Princess Peach in the opening sequence of Super Mario 64 DS. (Regression from commit 7751b59.) More... about 1 year ago
OpenGL Renderer: Use the fixed-point vertex list data instead of the floating-point based one, alongside other tune-ups. - To determine polygon facing, use GFX3D's CPoly.isPolyBackFacing instead of using GLSL's gl_FrontFacing. This eases OpenGL version requirements and improves older GPU compatibility a little. - Also fix a bug where GPUs that support FBOs, but not shaders, were unable to read out their framebuffers properly. More... about 1 year ago
GFX3D: Y-sorting and writing out vertices to a save state are now handled using fixed-point instead of floating-point, where appropriate. More... about 1 year ago
GFX3D: Polygon clipping, viewport transformation, perspective correction, and face calculations are now done in fixed-point instead of floating point. More... about 1 year ago
GFX3D: Vertex post-processing has been moved from the 3D renderers to GFX3D. - Specifically, viewport transformation, face calculation, and face culling are now handled in GFX3D, and are now standard behaviors for all 3D renderers. This reorganization makes more sense since the 3D renderers are primarily responsible for rasterization and framebuffer post-processing, rather than for processing geometry. - As a positive side-effect, the OpenGL renderer gains a small performance improvement as well as better accuracy in face culling. More... about 1 year ago
OpenGL Renderer: Fix bug where the Depth L-Equal Polygon Facing option would fail to become enabled when running OpenGL 3.2 or later. (Regression from commit ab38d17. Note that this bug does affect the 0.9.13 release build.) More... about 1 year ago
OpenGL Renderer: Silence compiler warnings. More... about 1 year ago
GFX3D: Move some last bits of static data floating around in gfx3d.cpp into the GFX3D struct, and then make the instantiation of the struct itself static. More... about 1 year ago
GFX3D: Fix longstanding potential overflows related to polygon lists by reducing POLYLIST_SIZE from 20000 to 16383. - Historically (ever since commit b1e4934 and commit d5bb6fd), VERTLIST_SIZE (based on POLYLIST_SIZE) could reference an index over 66535, but POLY.vertIndexes has always been an unsigned 16-bit value with a max value of 66535, making for a potential overflow. In practice, an overflow has never happened in the past 15 years because a hardware NDS has a limit of 6144 polygons (or 24576 vertices), and that even a VERTLIST_SIZE of 80000 is way more than plenty to accommodate that. Rather than increasing POLY.vertIndexes to 32-bit, it makes more sense to reduce POLYLIST_SIZE to 16383 to keep VERTLIST_SIZE below 66536. Even with this change, POLYLIST_SIZE and VERTLIST_SIZE should be more than plenty in practice. - Also, now that we're performing polygon clipping for all client 3D renderers (ever since commit e06d11f), we're finally accounting for the fact that the clipped polygon list size is larger than POLYLIST_SIZE. Client 3D renderers have been updated to now reflect this change and avoid theoretical overflow issues that have never actually happened in practice. More... about 1 year ago
GFX3D: The shininess table is no longer a part of SWAP_BUFFERS. - Since the shininess table is only ever used for vertex generation, it makes no sense for the table to included for the rasterization step. The shininess table has been moved to the NDSGeometryEngine class, which is a class dedicated to just vertex and polygon generation. This reorganization seems more sensible. More... about 1 year ago
GFX3D: Reorder members of the GeometryEngineLegacySave struct to better reflect the actual order of data in the existing save state format. - Also rename some matrix-related members for better clarity. More... about 1 year ago
GFX3D: Attempt to fix an MSVC compiling issue. (Related to commit 5d6e866.) More... about 1 year ago
GFX3D: Finish refactoring geometry engine related stuff into the new NDSGeometryEngine class. - Also, the vector test has been changed so that the result vector accounts for the 4 sign bits and proper sign expansion on overflow. More... about 1 year ago
GFX3D: Clean up some lighting-related code. More... about 1 year ago
GFX3D: Continue encapsulating stuff into the new NDSGeometryEngine class, mostly focusing on matrix-related things. - There are two significant behavior changes in this commit that will require further testing. - Behavior change: Before, MTX_LOAD_4x4 and MTX_LOAD_4x3 commands would update the individual values in the current matrix for each command. Now, these commands will batch the values into a temporary matrix until the temp matrix is complete, and then copy the temp matrix into the current matrix. This now matches the batching behavior that the other matrix commands already do. - Behavior change: Before, there was a single shared temporary multiplication matrix used to batch the values of incoming MTX_MULT_4x4, MTX_MULT_4x3, and MTX_MULT_3x3 commands, theoretically allowing these commands to be used interchangeably and overwrite values from previous commands until the last command made a completed multiplier matrix. Now, there are 3 separate temporary multiplier matrices, one for each of the MTX_MULT_* commands, which means that each command type must now complete its own multiplier matrix before it can perform a matrix multiply. More... about 1 year ago
GFX3D: Begin encapsulating stuff into the new NDSGeometryEngine() class. - Also do some minor misc. code cleanup. More... about 1 year ago
Cocoa Port: In the OpenGL blitter, prevent FBO-related GL calls if FBOs are not available. - Also silence some compiler warnings. More... about 1 year ago
fixed: EMUFILE_FILE eof() on textmode failed on windows (caused .dct files from mac systems freeze process while loading) More... about 1 year ago
GFX3D: The Box Test is now performed with integer operations instead of with floating point. - The integer-based Box Test should be just as good as the old float-based one, as tested by "American Girl: Julie Finds a Way". Of course, there are still bugs compared to a hardware NDS, but we haven't transitioned to rendering with integer-based vertices yet to make a meaningful test possible. More... about 1 year ago
Oops! Forgot a file. (Related to commit a67e040.) More... about 1 year ago
GFX3D: Do some major code cleanup. - Rename a bunch of variables to better reflect their intended usage. - Add new data types for organizing 3D vectors and coordinates. - C functions that are called in response to 3D commands now follow the exact same pattern: “static void gfx3d_glFuncName(const u32 param)” - Be super explicit about the usage of numeric data types and their typecasts to improve their code visibility. - Remove implementation-specific ambiguity of right bit-shifting signed numerics (Logical-Shift-Right vs Arithmetic-Shift-Right) in the following functions: gfx3d_glLightDirection_cache(), gfx3d_glNormal(), gfx3d_glTexCoord(), gfx3d_glVertex16b(), gfx3d_glVertex10b(), gfx3d_glVertex3_cord(), gfx3d_glVertex_rel(), gfx3d_glVecTest(). More... about 1 year ago
GFX3D: Remove POLY struct members that don't need to be swapped. This results in less buffer copying for all POLY lists. - Also remove Viewer3D_State.indexList. This member is obsolete since Viewer3D_State.gList.clippedPolyList is generated in the same order described by indexList. - Encapsulate and rename some more lists to make their intended purpose more descriptive. More... about 1 year ago
Merge pull request #632 from hjung4/fix/strchr-oob-check More... about 1 year ago
fix: strchr check More... about 1 year ago