Commit Graph

6117 Commits

Author SHA1 Message Date
rogerman 8944328f80 OpenGL Renderer: Partially fix rendering in the Customize screen of Sands of Destruction.
- This fix properly emulates the less-than-or-equal depth test rendering for front-facing polygons drawn on top of opaque back-facing fragments, but only if the front-facing polygon is opaque. Translucent front-facing polygons are not supported at this time due to requiring extensive changes to the rendering logic and shaders in order to emulate this extremely rare and niche NDS feature. (If you require the proper rendering of translucent front-facing polygons on top of back-facing fragments, then you must use SoftRasterizer.)
2018-10-31 13:44:20 -07:00
rogerman 44ac04df27 OpenGL Renderer: Do some small optimizations to the OpenGLRenderer::ZeroDstAlphaPass() and OpenGLRenderer::RenderEdgeMarking() methods. Also reduce VRAM usage. 2018-10-31 01:23:13 -07:00
rogerman dab414c725 OpenGL Renderer: Force front facing and back facing polygons to draw in separate groups, fixing a rendering bug in the car selection screen of "Need For Speed: Most Wanted". (Regression from commit 47a7194. Fixes #212.) 2018-10-29 15:00:59 -07:00
rogerman 276e26c194 OpenGL Renderer: Calculate the polygon facing for each individual polygon, just like how SoftRasterizer does it. 2018-10-29 14:08:44 -07:00
rogerman 2000737593 GPU: Remove now defunct line info buffers. 2018-10-29 09:58:00 -07:00
rogerman 1c36705fe3 Windows Port: Fix all the compilers warnings when using the CACHE_ALIGN macro by reverting the use of alignas(X) back to __declspec(align(X)). 2018-10-28 15:54:09 -07:00
zeromus 26bfb66caf auto-select retail nand for Daigassou! Band-Brothers DX (fixes #213) 2018-10-28 09:00:24 -04:00
rogerman 0beabec97c Save States: Properly rescale and convert the internal 3D framebuffer to and from a standard format -- 32-bit RGBA8888. (Related to commit c1eafc5 and completes all the work in PR #190 by @SuuperW.) 2018-10-27 22:54:30 -07:00
rogerman 79687d3031 GPU: Okay, so fix another potential bug with main memory display mode in 15-bit since the evaluation order of function parameters is not guaranteed across different compilers. (In this particular case, the evaluation order is actually important.) 2018-10-27 19:49:24 -07:00
rogerman fb7dbca344 GPU: Fix bug with main memory display mode when running 18-bit or 24-bit color depth. (Fixes #211.) 2018-10-27 19:25:15 -07:00
rogerman 4735079c9a Save States: The GPU framebuffer downscaling code can now take a faster code path if available. 2018-10-27 16:28:00 -07:00
rogerman 0f9f86fe61 GPU: Improve the code consistency when it comes to scaling up lines. 2018-10-27 15:50:16 -07:00
rogerman 4b28d272a7 Save State: Properly rescale and convert the GPU framebuffers to and from a standard format -- native size at 15-bit RGB555. (Related to commit c1eafc5 and PR #190 by @SuuperW.) 2018-10-27 12:11:34 -07:00
rogerman c1eafc53f2 Save States: Manually merge in most of the changes (with the exception of the GPU framebuffer rescaling and reformatting code) based on several commits in PR #190 by @SuuperW. 2018-10-26 00:17:08 -07:00
rogerman c3dbb920fa Cocoa Port: Do some UI tweaks with reporting the firmware MAC address. 2018-10-25 15:42:27 -07:00
rogerman 2e7099052d Linux GTK Port: Fix compiling for GTK port. (Regression from commit 064527e.)
- The new behavior for the Multisample Antialiasing checkbox: Checked - GFX3D_Renderer_MultisampleSize = 4, Unchecked - GFX3D_Renderer_MultisampleSize = 0. (If someone else wants to make some UI so that GFX3D_Renderer_MultisampleSize can be set to other sizes, then have at it.)
2018-10-25 11:55:44 -07:00
rogerman e2d60f62fd Windows Port: Fix compiling for Windows port. (Regression from commit bb38022.) 2018-10-25 02:34:26 -07:00
rogerman bb38022873 Firmware: Replace the old NDS_fw_config_data struct with the new FirmwareConfig struct, which allows for easy modification of all the user-related settings, including all the WiFi settings. Also do a massive refactor and cleanup of the firmware-related code.
- Also exposes all of the WiFi-related firmware settings in the Cocoa port UI.
2018-10-25 01:43:19 -07:00
rogerman da3970d817 Cocoa Port: Improve the performance and robustness of Metal display views.
- Add a unique sequence number to fetched frames to ensure that older frames are not drawn after newer frames.
- After much research, finally settle on a method for fetching the NDS framebuffers -- using a MTLBlitCommandEncoder to blit a MTLBuffer to a MTLTexture. It is faster than uploading a texture using [id<MTLTexture> replaceRegion:mipmapLevel:withBytes:bytesPerRow:], and also faster than using a pinned-memory backed linear texture. This method will be the way going forward for fetching framebuffers in Metal.
2018-10-25 01:05:36 -07:00
rogerman 064527e24e CommonSettings: Remove the now obsolete GFX3D_Renderer_Multisample setting. (Related to commit 94ddf1a.) 2018-10-25 00:35:22 -07:00
Roger Manuel 3cc4a64b69
Merge pull request #205 from Jules-A/antialiasing_settings
AntiAliasing Settings
2018-10-24 23:56:07 -07:00
Jules.A 0965eef5b3 rogerman fixes 2018-10-25 07:05:06 +08:00
Jules.A cfd77abaf7 Fixed UI elements moving around by simply re-arranging the order in resources.rc... Also added extra check when context is created. 2018-10-25 04:50:33 +08:00
Jules.A 65285aeb8c Cleaned up variable positions, added dummy OGL initiation so max device samples could be obtained from any renderer.
As a result, values higher than user is capable of won't be created.
2018-10-24 08:04:59 +08:00
Jules.A 3fd42ae720 WIP Updates. 2018-10-24 04:41:15 +08:00
rogerman ff84420424 OpenGL Renderer: Improve robustness when changing the MSAA sample size. 2018-10-23 00:04:28 -07:00
rogerman d85f140b64 Cocoa Port: Sigh... let's try to fix building this time... 2018-10-22 13:17:31 -07:00
rogerman 0ef9543f87 Cocoa Port: Oops! Fix a compiling issue caused by commit 5d3e53d. 2018-10-22 13:01:42 -07:00
rogerman 5d3e53d804 Cocoa Port: Expose the new user-selectable MSAA sample size feature in the UI that was introduced in commit 94ddf1a.
- Also add some other future UI-related stuff that was already in-flight at the time of this commit.
2018-10-22 12:33:04 -07:00
rogerman 68174fb31f movie.cpp/movie.h: Fix compiling issues for old GCC 4.2, which doesn't allow for variable initialization in C++ class declarations. (Regression from commit e83ec89.) 2018-10-22 11:38:06 -07:00
Roger Manuel acf49dfa01
Merge branch 'master' into antialiasing_settings 2018-10-22 11:08:49 -07:00
rogerman 94ddf1a467 OpenGL Renderer: The MSAA sample size is no longer automatically selected and must now be manually selected via GFX3D_Renderer_MultisampleSize.
- All frontends will need to be updated to use the new GFX3D_Renderer_MultisampleSize setting.
- This change obsoletes GFX3D_Renderer_Multisample, which currently does nothing at the moment. It will be removed after all frontends are updated.
2018-10-22 10:32:16 -07:00
rogerman a894000333 matrix.cpp Fix a bug with _Vec3_MultiplyByMatrix() returning an incorrect value on SSE4.1. 2018-10-20 14:53:49 -07:00
matthias gatto 2dfc7866d0 dlditool: fix redefinition of VERSION 2018-10-20 07:30:22 +02:00
matthias gatto bf3e1b1cf3 posix: fix deprecated warning about g_thread_init
problems with the old if, is that the code still compiled(but optimised out)
as g_thread_supported is a macro, #if work well enouth and doesn't generate
warning
2018-10-20 07:27:28 +02:00
matthias gatto 50755c6a45 ROMReader: fix specified bound depends on the length of the source argument
It seems gcc have a (new ?) warning that doesn't allow *ncpy functions
to have any source length related value as len argument.

I've use strdunp to fix this, but I guess there is some other solutions
that doesn't require free.
use c++ strings ?
use strcpy(...); tmp1[strlen(filename) - 4] = 0; ... ?
remove the warning in the Makefile ?

but as the strdump solution is simple enouth I've keep this.
2018-10-20 07:15:48 +02:00
rogerman 68e91ec57f OpenGL Renderer: Fix a bug with the MSAA automatic selector where the MSAA sample size would be selected based on the PREVIOUSLY set framebuffer size, even though the selection should be based on the CURRENTLY set framebuffer size. 2018-10-19 16:33:37 -07:00
Jules.A 1010709de2 Fix #c65ec32 illogical operators (|| instead of &&), save to ini straight away to avoid wrong value being displayed there and don't bother creating another variable to try make a turd prettier. 2018-10-17 22:40:54 +08:00
Jules.A c65ec323ef Default to 8 if invalid uservalue is entered, add a check so it won't be set to 2x if limiting is disabled and clean up settings interface more. 2018-10-17 21:18:58 +08:00
Jules.A d818155e8e Fixed settings not getting instantly updated causing MSAA sample checkboxes to not be disabled. 2018-10-17 03:51:21 +08:00
Jules.A faeced5c66 Clean up interface. 2018-10-17 02:24:23 +08:00
Jules.A 118b629728 Be more specific for VS2017 ignores. 2018-10-17 01:21:25 +08:00
Jules.A c53f9632ed Change from "force" to "limit", half sample amount since x16 was pointless and remove some unneeded logic. 2018-10-17 01:01:45 +08:00
Jules.A d045b9fa34 Initial AntiAliasing Settings. 2018-10-16 20:39:12 +08:00
zeromus 01225c65ee
Merge pull request #203 from QueeferSutherland/master
added support for joystick axes to lua function, controller.get()
2018-10-12 00:46:28 -04:00
QueeferSutherland b9829ba349
added support for joystick axes to lua function, controller.get() 2018-10-12 00:19:39 -04:00
matthias gatto 8c6c2e8071 threads: fix implicit declaration of memset 2018-10-11 23:22:21 +02:00
rogerman da714ea719 WiFi: Standardize the handling of received packets for both Ad-hoc and Infrastructure modes.
- Received packets are now queued properly and should no longer be overwritten or lost.
- Received packets under Ad-hoc mode now use the same transfer delay as Infrastructure mode. (Read one halfword every 8 microseconds.)
- Received packet transfer delay only works when the emulation level is set to WifiEmulationLevel_Compatibility. Transfer delay can be disabled by setting the emulation level to WifiEmulationLevel_Normal, which will cause the entire received packet to be transferred immediately.
2018-10-09 15:32:11 -07:00
rogerman 4e92d24b14 WiFi: Some more minor code cleanup. 2018-10-08 13:50:25 -07:00
rogerman e3653b76ce WiFi: Clean up and refactor some more stuff, mostly related to LLC/SNAP encapsulated 802.11 frames. 2018-10-07 21:02:19 -07:00