zeromus
f6938dc80a
Merge pull request #217 from SuuperW/paths
...
Paths
2018-11-29 15:04:31 -06:00
rogerman
8e9e7c4a2a
GPU: Enable SSE2-accelerated custom-sized VRAM reads through the OBJ layer. This significantly improves the performance of many games, such as those that make use of dual-screen 3D, when running at the higher resolutions.
2018-11-29 02:00:21 -08:00
rogerman
6fc6ceb294
SoftRasterizer: For SSE2-enabled systems only, fix a rare graphical glitch that can sometimes occur in some games. (Regression from commit 21f04c9.)
2018-11-28 17:31:49 -08:00
rogerman
4f543aa8ca
Cocoa Port: Yet another attempt at eliminating microstuttering in Metal display views. While it hasn't been completely eliminated yet, it shouldn't be as bad now.
2018-11-28 13:36:02 -08:00
rogerman
1f9b9e02a4
SoftRasterizer: Fix build issues on Windows. (Regression from commit 21f04c9.)
2018-11-23 15:30:11 -08:00
rogerman
21f04c9ef2
SoftRasterizer: Do some minor improvements to both performance and code size.
2018-11-23 14:59:13 -08:00
Roger Manuel
b1abf50a01
Merge pull request #224 from Jules-A/WinOglCompatUI
...
WIP WinFrontend UI for the new OpenGL compatabilty tradeoffs.
2018-11-23 14:17:00 -08:00
Jules.A
a51a6d4b6d
Revert pointless changes that only saved a few lines.
2018-11-23 17:18:16 +08:00
Jules.A
20547d38a2
Remove unneeded bool initialisation and now that ini values are sanatized comboboxes can be initialised and set in a loop to save a few lines.
2018-11-23 17:05:40 +08:00
Jules.A
7e4a270644
Ughh... get rid of the extra semicolon...
2018-11-23 14:19:56 +08:00
Jules.A
db1ca70f59
Fix label variable naming, spacing and finally get ini value checking working without requiring to check for the value that is getting changed,
2018-11-23 14:12:52 +08:00
Jules.A
156c590ca4
Check if user inputted values are correct on initiation.
2018-11-23 01:47:14 +08:00
Jules.A
54c6205e95
Fix up the UI and delete the unusused function (it's really not worth it until more settings can be checked).
2018-11-22 22:16:36 +08:00
rogerman
d410b5c195
SoftRasterizer: Fix Z-depth calculations when compiling on MSVC. Fixes the overworld map in Dragon Quest IV. (Regression from commit d81a75c.)
...
- Apparently, MSVC has a more strict implementation of IEEE-754 single-precision floats (with 23-bit significands) than Clang and GCC, and so we going to drop 2 LSBs during the calculation so that we're multiplying z by a 22-bit significand. Coincidentally, this now matches what we're doing with the OpenGL renderer, so this tends to better code consistency.
2018-11-21 19:52:30 -08:00
Jules.A
30e9fb9c46
WIP WinFrontend UI for the new OpenGL compatabilty tradeoffs. Should be fully functional except for CheckValid3DSettingInt where I messed up so I left it commented out, honestly it's probably not needed anyways as there's already checks in place, it just doesn't update ini until you save settings. UI is still a mess, will have to work on that later.
2018-11-21 21:48:30 +08:00
intact
2f93fedbf8
Gtk+ Port: Use Desktop or Home as fallback directory for screenshots
2018-11-21 14:44:35 +01:00
rogerman
f03a880ef9
WiFi: In Compatibility mode, reset the current RX packet's latency counter for every halfword write like its supposed to be.
2018-11-20 23:14:09 -08:00
rogerman
adbbd406b1
Cocoa Port: Add tooltips for each of the OpenGL rendering accuracy options.
2018-11-20 17:56:18 -08:00
rogerman
6f8c060db6
OpenGL Renderer: It is now possible to toggle certain accuracy-related features on and off so that users can choose where to make their accuracy-performance tradeoffs. These four emulation accuracy features are: 'Shadow polygons', 'Special zero alpha blending', 'Depth-Equals test tolerance', and 'Depth-LEqual polygon facing'.
...
- New Behavior: Due to the rarity of needing to emulate 'Depth-LEqual polygon facing' and its guaranteed reduction in performance in all games, this accuracy feature is now OFF by default.
- Expose these new settings in the Cocoa port UI.
2018-11-20 11:44:30 -08:00
rogerman
1e18c3fb9f
Windows Port: When running OpenGL display method, properly initialize V-sync to match wantVsync rather than assuming that the default setting for wantVsync will match the default setting of the video driver.
2018-11-19 02:49:31 -08:00
rogerman
d81a75c867
SoftRasterizer / OpenGL Renderer: Drop less bits in the depth calculation, making for smoother depth transitions. For certain games, this may allow for better distance rendering, especially at the higher resolutions. (Related to commit c9025e8.)
...
- SoftRasterizer may now drop at most one LSB, down from dropping 9 LSBs.
- OpenGL will now drop only 2 LSBs, down from 9 LSBs. In this case, dropping 2 LSBs was specifically chosen to ensure that the Dragon Quest IV overworld map continues to work.
- If this change makes the depth inaccuracy too much worse than before, then we may have to make these particular depth calculations optional in the future. This will need additional testing.
2018-11-17 23:20:59 -08:00
rogerman
be8d08ae87
WiFi: Make WifiHandler::_CopyFromRXQueue() more efficient by doing less copying and less locking.
2018-11-17 19:50:45 -08:00
rogerman
91526e6324
WiFi: Significantly reduce the host-to-emulator latency of libpcap-sourced packets in Infrastructure mode by running RX packet receives on a separate thread, just like how socket-sourced packets in Ad-hoc mode do it.
...
- Also, Infrastructure mode can no longer "partially function." Now, it either works completely or not at all, just like how Ad-hoc mode does it.
2018-11-17 16:02:04 -08:00
rogerman
71df3f4f28
NDSSystem.cpp: Fix interactions between external firmware loading and BIOS loading. Always ensure that loading external firmware is dependent on loading both ARM9 and ARM7 BIOS files.
2018-11-15 01:04:06 -08:00
rogerman
e27cc87bdf
Firmware: Standardize how the firmware configuration is set.
...
- Now, the only two methods for changing any firmware setting is by modifying CommonSettings.fwConfig or by loading an external NDS firmware binary file.
- All methods for changing the firmware MAC address through the WifiHandler class have been removed.
- The FirmwareConfig struct can now handle the WFC User ID.
- Clients can now retrieve the current MAC address and WFC User ID using NDS_GetCurrentWFCUserID(). It is also possible to retrieve the WFC User ID from CommonSettings.fwConfig.
- Setting up the firmware in NDS_Reset() should now be more consistent. However, this does change some of the loading/unpacking order previously set by NDS_FakeBoot(). This will need additional testing.
- Do a whole bunch of code refactoring and cleanup.
2018-11-15 00:18:22 -08:00
rogerman
5d85ac2e23
WiFi: Reduce the number of packets read by pcap_dispatch() from 16 to 1, significantly reducing the host-to-emulator latency of Infrastructure packet reads. This seems to be the best choice for maintaining a stable online connection, albeit at a significantly increased CPU cost for the host machine.
...
- Also do some minor code refactoring and cleanup.
2018-11-08 01:49:36 -08:00
rogerman
6eb1a79a71
WiFi: Significantly reduce the host-to-emulator latency of socket-sourced packets and make the emulated copy-to-WRAM latency more consistent when running Compatibility mode.
...
- Also slightly reduce the host-to-emulator latency of libpcap-sourced packets.
2018-11-07 13:20:10 -08:00
Roger Manuel
7ae2d764b0
Merge pull request #216 from Jules-A/winWifi
...
Win Port: Wifi cleanups following 9d05935
2018-11-04 15:32:05 -08:00
SuuperW
4affd3ca8a
Allow user to change new path settings in the path config dialog.
2018-11-04 07:08:59 -06:00
SuuperW
c8d534299f
Add SRAM_IMPORT_EXPORT path setting to separate from the auto-save battery location.
2018-11-04 06:08:08 -06:00
rogerman
c8306de8d2
arm_jit.cpp: OP_LDRD_REG() and OP_STRD_REG() now treat even-numbered registers as double-word load/stores, while odd-numbered registers are treated as single-word load/stores. (Fixes #215.)
...
- This change shouldn't actually change any functionality in practice... probably. This change is there to silence a compiler warning more than anything else... hopefully.
2018-11-02 13:06:15 -07:00
Jules.A
aecf153016
Fix wrong bool type, attempt to make warnings more clear.
2018-11-02 10:18:27 +08:00
Jules.A
ef53eccb0e
I guess they aren't the same message.
2018-11-02 09:26:08 +08:00
Jules.A
b6c69b031f
Nit: GetBridgeDeviceList already has proper return codes so just initialize variable locally.
2018-11-02 09:19:55 +08:00
Jules.A
36040e90a3
Let the user know when WinPcap isn't loaded.
2018-11-02 07:35:15 +08:00
Jules.A
4705c3e59a
Whoops, fix deviceCount.
2018-11-01 21:47:15 +08:00
Jules.A
c640e5c480
Winport wifi cleanups after 9d05935
. Removes interface for setting wifi mode along with removing redundant code.
2018-11-01 21:40:14 +08:00
rogerman
620048c43c
Firmware: Add the NDS_ReadFirmwareDataFromFile() function, which allows ports to either retrieve the entirety of a firmware file's data or to quickly read just a specific piece of it.
...
- The Cocoa port uses this new function for UI purposes.
2018-11-01 03:44:05 -07:00
rogerman
9d05935696
WiFi: The user no longer has to manually choose between using Ad-Hoc or Infrastructure modes. The code now automatically sends/receives packets to and from their proper places.
...
- This change obsoletes "CommonSettings.wifi.mode", which now does nothing. Ports that make use of this setting should remove it.
- Also do a bunch of code refactoring and cleanup.
2018-11-01 00:23:41 -07:00
rogerman
1e9aa08f54
Cocoa Port: Do some minor code cleanup.
2018-11-01 00:02:05 -07:00
rogerman
84e5228274
matrix.cpp: Use the __restrict keyword for MatrixCopy(), MatrixCompare(), and MatrixGetMultipliedIndex() to further clarify that the passed in matrices must be separate and non-overlapping.
2018-10-31 23:45:49 -07:00
zeromus
d8c0ca6f5b
notify the lua script of an updated projection, in more cases (re: #130 )
2018-10-31 23:30:40 -04:00
zeromus
ad7b80ec87
add lua functions emu.gamecode and emu.smallgamecode for game-specific hacks in scripts
...
re #130
2018-10-31 21:29:25 -04:00
rogerman
56895a11aa
Cocoa Port: Delete the now defunct preferredResourceStorageMode property that was obsoleted by commit da3970d
.
2018-10-31 15:54:46 -07:00
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