rogerman
60c01bd63a
GPU: Do a few more minor optimizations to rendering complete OBJ layer lines. Most notably, all complete OBJ layer lines, not just ones reading directly from custom VRAM, now benefit from the SSE2-accelerated code.
2018-11-30 20:12:58 -08:00
rogerman
9a53e8be69
GPU: Fix bug in GPUEngineBase::_PixelUnknownEffectWithMask16_SSE2() where blending effects for OBJ layers were being handled incorrectly. This bugfix only affects SSE2-enabled systems. (Regression from commit 8e9e7c4
. Fixes #232.)
2018-11-30 17:10:56 -08:00
rogerman
2c5c2f6186
GPU: Use the same technique in the commit 6bcd19b
GPUEngineBase::_CompositeVRAMLineDeferred() bug fix in order to do a tiny optimization to GPUEngineBase::_CompositeLineDeferred(). Also makes the code more consistent as well.
2018-11-29 22:25:37 -08:00
rogerman
d0330fc96e
Cocoa Port: Upgrade Interface Builder .xib files to 3.2 format with minimum deployment target of macOS 10.6. This change effectively drops support for building DeSmuME directly from a PowerPC Mac. Fixes #231 .
...
- It is still possible to create a PowerPC binary, but this now requires some extra steps. From now on, you must use an Intel Mac running Mavericks or earlier to re-save the .xib files with a deployment target of macOS 10.5 in Interface Builder 3.2, and then use Xcode 3 to build a PowerPC binary using the Xcode 3 project file.
2018-11-29 22:02:07 -08:00
zeromus
3e37352bee
winport - menu option to control CLI console visibility
...
fixes #230
2018-11-29 16:25:59 -06:00
rogerman
6bcd19b3cb
GPU: Fix a bug in GPUEngineBase::_CompositeVRAMLineDeferred() where compInfo.target.xCustom was overstepping its bounds in X-dimension only custom buffers. This had the effect of causing undefined coloring when running at custom resolutions. (Regression from commit 8e9e7c4
. Fixes #228 and fixes #229.)
2018-11-29 13:12:56 -08:00
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