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
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
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
rogerman
7fda7997b2
MMU.cpp: Only report a VCOUNT change if the new value differs from the existing value.
2018-10-07 14:35:25 -07:00
rogerman
f67154484f
WiFi: Do a whole bunch of code cleanup, as well as some minor behavioral changes which are listed below.
...
- If the WiFi emulation level is Off, then always set POWER_US.Disable = 1.
- If POWER_US.Disable == 1, then do not trigger any further WiFi actions.
- The name contained within DeSmuME's frame header has been changed from "NDSWIFI\0" to "DESMUME\0".
- DeSmuME's frame header size has been increased from 12 bytes to 16 bytes.
- Baseband data is now set to a default dataset on reset.
- Baseband data reads/writes now respect the actual R/W behavior of each data byte.
2018-10-05 18:31:55 -07:00
Chris Branch
af205cf582
Fix undefined behaviour converting 3D postest registers
...
If the position test register is negative, conversion to unsigned
integer is undefined. This breaks games on arm64 where the behaviour is
defined as 'truncate to zero'. Converting to a signed integer first
guarantees the intended behaviour.
2018-10-05 22:59:06 +01:00
zeromus
c741f37c11
Merge branch 'newluastuff'
...
fixes #198
# Conflicts:
# desmume/ChangeLog
# desmume/src/Makefile.am
# desmume/src/OGLRender.cpp
# desmume/src/OGLRender.h
# desmume/src/OGLRender_3_2.cpp
# desmume/src/OGLRender_3_2.h
# desmume/src/render3D.cpp
# desmume/src/render3D.h
2018-10-04 22:52:31 -04:00
zeromus
ad2dafe661
add lua apis for raw joystick input (on windows, anyway)
2018-10-04 22:43:21 -04:00
rogerman
151b577cc0
GFX3D: Fix compiling for ports that don't support Lua. (Regression from commit 43fcaf6.)
2018-10-03 01:06:42 -07:00
zeromus
43fcaf68f1
add "ability to move camera" (aka freelook). it requires use of a lua script to actually control the matrix switcheroo
...
re: #130
2018-10-03 03:18:16 -04:00
zeromus
d6babce9b7
winport - add some kind of hack to exit the emulator better whenever a lua script is running
2018-10-03 03:13:48 -04:00
zeromus
0406828da2
winport - don't break build if git isn't found in environment
...
fixes #186
2018-10-03 00:55:51 -04:00
rogerman
e6b3dfd5bd
Cocoa Port: Sigh... replace the pipe character '|' with a double-dash '--' so that the generated .xcscheme file names won't screw up the file systems of lesser operating systems (cough... Windows... cough).
2018-09-26 02:44:39 -07:00
rogerman
d9aa1ac31e
Cocoa Port: Update all build schemes in "DeSmuME (Latest).xcodeproj" for compatibility with Xcode 10.
2018-09-26 02:26:19 -07:00
rogerman
a857e0e65c
ROMReader.cpp: Fix compiling on non-Windows systems. (Regression from commit 12c9323.)
2018-09-22 13:41:28 -07:00
zeromus
12c93232b9
winport - minimal work to get wacky characters filenames loading via file menu
...
fixes #192
2018-09-22 15:56:02 -04:00
zeromus
1b10b39603
fix bugs in utf8/utf16 string conversion functions dating back to libretro-common installation
2018-09-22 15:55:09 -04:00
rogerman
acb140209a
GPU: Make the overall functionality of CopyLineExpand() and CopyLineReduce() more complete. Also do some small optimizations to GPUEngineBase::_LineCopy() while I'm at it.
...
- GPUEngineBase::_LineCopy() optimizations only apply to 2x, 3x, and 4x scaling.
- Add SSE2 version of 3x CopyLineExpand() when using ELEMENTSIZE==1.
- Add SSE2 versions of CopyLineReduce() and add specific 2x/3x/4x versions of CopyLineReduce_*() algorithms.
- CopyLineExpand() now supports vertical scaling in addition to horizontal scaling.
- GPU buffers that were previously only cache-aligned are now page-aligned if appropriate.
2018-09-19 16:06:39 -07:00
rogerman
7c80205a40
Render3D: Small optimization to scrolling clear images on non-SSE2 systems.
...
- Also fix a depth bug for scrolling clear images on SSE2 systems by disabling the SSE2-specific code. This issue will need to be researched at a later date.
2018-09-19 15:51:58 -07:00
rogerman
1767651b19
Fix all current build issues for all non-Windows platforms. Truly fixes #191 . (Regressions from commit e697391
and commit b8ebe97.)
2018-09-15 14:50:11 -07:00
zeromus
5bb4437720
fix movie.cpp
2018-09-15 17:21:06 -04:00
zeromus
1a34cfae5f
fix posix build error in wifi.h. fixes #191
2018-09-15 16:59:18 -04:00
zeromus
0c6f18d5eb
fix replay-related posix build error
2018-09-15 16:58:10 -04:00
zeromus
e09f269914
Merge pull request #188 from SuuperW/paths
...
Paths
2018-09-13 18:44:47 -04:00
zeromus
e828070d4d
Merge pull request #187 from SuuperW/movies
...
Movies
2018-09-13 18:44:28 -04:00
rogerman
b8ebe973b9
WiFi: Huge code cleanup and refactor, mostly reworking register handling.
...
- Note that functionality should remain practically the same as before. Any actual functional changes are completely unintentional.
2018-09-12 16:54:33 -07:00
SuuperW
35337a562a
fix commit 910661f
2018-09-07 16:34:31 -05:00
SuuperW
910661f982
(Windows) Switch Record WAV to use the same directory as Record AVI.
2018-09-07 16:24:02 -05:00
SuuperW
39f473c590
(Windows) Save selected WAV path
2018-09-07 16:14:00 -05:00
SuuperW
3b310082dc
(Windows) Properly set ofn.lpstrFile for import/export sav and for recording AVI/WAV
2018-09-07 16:12:54 -05:00
SuuperW
0cb3bbe87d
Format code. (mostly fixing indentation)
2018-09-05 00:39:12 -05:00
SuuperW
aaad5e63c5
(Windows) Save and use all config paths.
...
Add StateSlots path to avoid losing saved slot states when user manually selects a file to load elsewhere.
2018-09-05 00:27:49 -05:00
SuuperW
e2d83f99fe
Support type string in setpath, use new method in several places.
...
Make SwitchPath check for all directory delimiters when removing trailing delimiter, remove redundant trailing delimiter logic in CFIRMWARE::GetExternalFilePath().
2018-09-04 12:14:02 -05:00
SuuperW
524997e406
clean up Path::IsPathRooted
2018-09-04 11:23:11 -05:00
SuuperW
c9c6049892
Move PathInfo method definitions to .cpp file.
2018-09-04 00:26:34 -05:00
SuuperW
407b01b39d
(Windows) Set default path for exporting a save to path.BATTERY (same as importing a save)
2018-09-03 06:02:01 -05:00
SuuperW
4c5842d2aa
code cleanup
2018-09-03 05:42:30 -05:00
SuuperW
2a7103ec0b
Save movie's savestate to a separate file instead of encoding it in the movie file. (This gives significantly faster performance, and will make it easier for the user to edit the starting savestate if need be.)
2018-09-03 05:35:05 -05:00
SuuperW
e697391dfd
Support recording/playing movies starting from a savestate.
2018-09-03 01:05:41 -05:00
SuuperW
484b062bf5
Add swiFromBios and bootFromFirmware to MovieData.
2018-09-02 10:52:53 -05:00
SuuperW
11e2448d1c
Better loading of JIT settings from a movie.
2018-09-01 12:38:39 -05:00
SuuperW
3645ff4e77
Alert the user when opening emulation/firmware settings while they are set by a movie.
2018-09-01 12:34:17 -05:00
SuuperW
80047bff91
When closing or rebooting a ROM, reset emulation settings that were set by a movie.
2018-09-01 12:05:21 -05:00
SuuperW
4a844b2394
bugfix from last commit
2018-09-01 12:03:31 -05:00
SuuperW
e83ec89578
Loading a movie now sets emulation/firmware settings.
2018-09-01 11:12:01 -05:00
SuuperW
bd299672a1
Save jitBlockSize to movie files
2018-08-31 23:02:47 -05:00
SuuperW
10dc63abca
Some more cleanup of movie.cpp LoadFM2
2018-08-31 21:30:13 -05:00
SuuperW
a5d843e361
Rework MovieData::installValue to separate code for each key/value and to avoid using a long if else if chain.
2018-08-31 21:13:16 -05:00
SuuperW
491ee62754
Clean up movie.cpp LoadFM2.
2018-08-31 16:18:21 -05:00
zeromus
c8ef38ad20
Merge pull request #185 from SuuperW/hotkeys
...
Hotkeys
2018-08-30 14:55:13 -05:00
SuuperW
57bfbb1562
Change implementation of moving a cheat in the cheat list. (originally implemented in commit 24cdbf0
)
2018-08-30 11:49:11 -05:00
SuuperW
dee24cdbc1
Print a message when a cheat code forces the JIT to reset.
2018-08-30 11:47:56 -05:00
SuuperW
bbb190a136
bugfix (from commit 534cf251
)
2018-08-30 11:47:35 -05:00
SuuperW
38b2039844
(Windows) Implement Ctrl+A shortcut for cheat list.
2018-08-30 11:45:57 -05:00
SuuperW
534cf2515b
(Windows) Allow un/checking multiple cheats at once. ( #178 )
2018-08-30 11:45:57 -05:00
SuuperW
24cdbf0269
(Windows) Allow rearranging of cheats in the cheat list. (Requested by #178 )
2018-08-30 11:45:56 -05:00
SuuperW
084a42a2f8
(Windows) Ask the user if they want to save changes to the Cheat list when the dialog's close/X button is clicked, if there are changes to save.
2018-08-30 11:45:31 -05:00
SuuperW
51303b9bc9
(Windows) Extend last column of Cheats list to fully show max-length descriptions, and shorten window/list view width. (Requested by #178 )
2018-08-30 11:45:10 -05:00
SuuperW
80cfb59c2c
(Windows) Clean up/combine string tables.
2018-08-30 11:27:25 -05:00
SuuperW
56477f0c5c
(Windows) Add hotkeys for toggling display layers.
2018-08-30 11:14:44 -05:00
SuuperW
811d9a3c18
(Windows) Move TwiddleLayer from main.cpp to display.cpp (prepare for new hotkeys)
2018-08-30 11:01:57 -05:00
SuuperW
5cc49fe417
(Windows) Add hotkeys for cheat list and toggle cheats.
2018-08-30 10:35:29 -05:00
SuuperW
48414b144d
(Windows) Reorganize some hotkeys code, and move Lua hotkeys to the Tools page.
2018-08-30 10:34:57 -05:00
SuuperW
16ea99e78c
(Windows) Remove redundant hotkey initializing code.
2018-08-30 10:34:12 -05:00
zeromus
b3a352a409
Merge pull request #176 from SuuperW/refactor
...
Refactor+Bugfixes
2018-08-28 13:50:27 -05:00
zeromus
77e05eb1f8
dont lose toon table when geometry engine is powered off ( fixes #179 )
2018-08-24 16:53:26 -05:00
rogerman
0aa8dad199
WiFi: Fix a bug where AdHoc connections would fail to read the socket on non-Windows systems.
2018-08-23 21:50:17 -07:00
rogerman
5d384f9eae
Cocoa Port: Fix a bug in Metal display views where the internal V-sync would cause the total frame rate to be divided amongst multiple visible display views.
2018-08-23 09:56:23 -07:00
rogerman
5c85bcd732
Cocoa Port: Rework the auto-frameskip algorithm yet again. It should be more accurate this time.
2018-08-22 01:25:52 -07:00
SuuperW
8fa3c6f9ed
fix regression from commit 17c30c48
2018-08-21 10:26:11 -05:00
SuuperW
d671d0a888
minor cleanup
2018-08-20 10:23:10 -05:00
SuuperW
43d79393c7
Remove unused flags for display method, and remove OpenGL-specific display flag.
2018-08-20 10:23:10 -05:00
SuuperW
c4ea4ad879
fix: DD_DoDisplay would not update the display if resolution had just been changed
2018-08-20 10:23:10 -05:00
SuuperW
c9b41e3c53
Fix regression from commit 2acfdbe; setting display method to DDraw HW/SW did not actually set ddraw.systemMemory
2018-08-20 10:23:10 -05:00
SuuperW
2c8909ed3c
Fix regression from commit 2acfdbe; the selected display method wasn't checked.
2018-08-20 10:23:10 -05:00
SuuperW
212f0a358f
Only wait for the display thread if the previous frame was not skipped.
2018-08-20 10:23:09 -05:00
SuuperW
2890c4b075
Regression fix: Lua functions which draw to the screen work again.
2018-08-20 10:23:09 -05:00
SuuperW
17c30c48c5
more refactoring; created display.cpp and .h files
2018-08-20 10:23:09 -05:00
SuuperW
89fc0a12e3
move/refactor OpenGL code
2018-08-20 10:23:09 -05:00
SuuperW
4c83ec19e9
Move DirectDraw code to its own .h and .cpp files.
2018-08-20 10:23:09 -05:00
SuuperW
4357ba8f47
Am I doing this right?
2018-08-20 10:22:42 -05:00
retr0s4ge
6fa6467c5c
Merge pull request #175 from retr0s4ge/master
...
(Windows Frontend) Add Fullscreen Options And Window Sizing Fixes
2018-08-17 08:04:14 +02:00
retr0s4ge
7fa405b679
(Windows Frontend) Rename "Non-exclusive Mode" option to "Force Windowed Fullscreen"
2018-08-16 13:20:26 +02:00
rogerman
c9a405e959
OpenGL Renderer: Use memcmp() to ensure that UploadClearImage() uploads clear image data only when necessary. Significantly improves the performance of games that use clear images.
2018-08-15 23:07:22 -07:00
retr0s4ge
9314fc2d5e
(Windows Frontend) Ignore the menu key if the main window has no menu
2018-08-15 00:33:22 +02:00
rogerman
208f99f4a6
Cocoa Port: Fix a bug where HID devices would fail to be detected on startup when running on macOS High Sierra.
2018-08-13 23:33:24 -07:00
rogerman
8448b3ee10
Cocoa Port: Instead of using a single shared draw timing for all displays, use individualized draw timings for each display.
2018-08-13 23:32:31 -07:00
retr0s4ge
775e3ae91a
(Windows Frontend) Fix the bug where cursor is auto-hidden even when over the menu
...
Also, changed the time before auto-hiding to 10 seconds.
2018-08-12 19:58:02 +02:00
rogerman
c9009c9302
Linux Ports: Now require libpcap for all POSIX builds. (Related to commit 5e67e9c.)
2018-08-11 13:19:45 -07:00
retr0s4ge
36b97ada75
(Windows Frontend) Add Fullscreen Options And Several Window Sizing Fixes
2018-08-11 16:15:57 +02:00
rogerman
6797f00d23
Windows Port: Oops! Fix a bug that will cause the app to crash on app exit. (Regression from commit 5e67e9c.)
2018-08-10 18:53:00 -07:00
rogerman
5e67e9ca7c
WiFi: Do a big refactor of the client interface code for better code cleanliness, organization, and stability. There are also some minor behavior changes.
...
- EXPERIMENTAL_WIFI_COMM no longer disables all of the WiFi-related code. Instead, the WiFi code is always enabled and actually running the code is now controlled using WifiHandler::SetEmulationLevel().
- On the Windows port, EXPERIMENTAL_WIFI_COMM no longer hides all of the WiFi options. Instead, it only affects the user's ability to control the WiFi emulation. (Forces the WiFi emulation level to WifiEmulationLevel_Off if EXPERIMENTAL_WIFI_COMM is undefined.)
- The Cocoa port (and probably other POSIX-based ports) should now work better with the WiFi code.
- WiFi comm interfaces no longer initialize only once upon app startup. Instead, they initialize each time the emulator resets, and then uninitialize each time a ROM is unloaded. Now, users no longer have to restart the app in order to apply any changed WiFi settings. Instead, users only need to reset the emulator or load a new ROM.
- Previously, the SoftAP comm interface wouldn't run if libpcap was unavailable or if a network device wasn't found. Now, the SoftAP comm interface will now run without libpcap or a network device, albeit with significantly reduced functionality.
- Previously, saving pcap files required WIFI_LOGGING_LEVEL >= 3. Now, saving pcap files no longer relies on WIFI_LOGGING_LEVEL, instead relying on WIFI_SAVE_PCAP_TO_FILE to enable the functionality.
2018-08-10 18:36:33 -07:00
rogerman
65901c77c0
WiFi: Do some minor fixes.
2018-08-06 10:29:28 -07:00
rogerman
36ee2477b1
SoftRasterizer: Fix the animating characters in Customize status screen in Sands of Destruction by emulating a special LEQUAL depth test. ( Fixes #41 . Special thanks to StapleButter for his insight on this issue.)
2018-08-01 13:46:08 -07:00
rogerman
c4317df76f
Cocoa Port: Significantly boost the performance of the HQnX and xBRZ Metal shaders.
2018-07-31 21:55:56 -07:00
zeromus
637ad2ab18
revert pointless change to declaration of CommonSettings from 07d7588
...
(fixes #169 )
2018-07-30 21:22:49 -05:00
rogerman
ca6d8aaf73
WiFi: Initialize wifiEmulationLevel to WifiEmulationLevel_Off on startup.
2018-07-30 15:58:48 -07:00
retr0s4ge
07d75886bc
Merge pull request #166 from retr0s4ge/master
...
Implement basic support for multiple WiFi emulation levels
2018-07-30 23:48:52 +02:00
rogerman
ad7083ea98
Cocoa Port: Do another UI bug fix on High Sierra, expanding the NSSegmentedControl element width even further so that all numbers appear as intended in all cases. (Related to commit 4913c0e.)
2018-07-30 13:50:38 -07:00
rogerman
fad678c2b3
SoftRasterizer: Fix a bug for Altivec-enabled CPUs that caused multithreaded rendering to fail. (Related to commit 43d3883.)
2018-07-30 12:10:57 -07:00
retr0s4ge
cf5ed05cab
Replace scoped enum used for WifiEmulationLevel with unscoped enum for code compatibility with older compilers.
2018-07-30 06:26:49 +02:00
retr0s4ge
259ca8579f
Implement basic support for multiple WiFi emulation levels
2018-07-30 00:17:44 +02:00
retr0s4ge
09a545902d
Don't emulate wifi unless wifi.emulated flag is set in common settings.
...
Changes:
1- Add wifi.emulated flag to common settings
2- Don't emulate wifi unless wifi.emulated is set
3- Add a check box in windows frontend to toggle it, and read/write setting from/to ini file.
2018-07-28 05:40:44 +02:00
rogerman
232e3d6f51
Cocoa Port: Do a bunch of tweaks and fixes for an upcoming new feature. (Related to commit 932cdd6.)
2018-07-27 13:18:48 -07:00
rogerman
bee3fd30ce
Cocoa Port: Update the Metal blitter to support Y-flipping of the rendered video frame, matching the same feature that already exists in the OpenGL blitter.
2018-07-27 02:10:28 -07:00
rogerman
4913c0e7ae
Cocoa Port: Fix a UI bug on macOS High Sierra where the dropdown sheet for configuring an NDS input's turbo pattern would fail to show the numbers in each NSSegmentedControl element.
2018-07-27 01:38:00 -07:00
zeromus
d7c347d3ae
set debug colors for DD area filling for new empty areas
2018-07-26 10:31:30 -05:00
rogerman
1e0e7f5e28
Cocoa Port: When running SoftRasterizer; for every 12 cores that would exist, reserve 1 core for the rest of the system. This should help maintain performance stability.
2018-07-25 20:46:42 -07:00
rogerman
b0a6188902
SoftRasterizer: Fix a longstanding bug where using a thread count that was not a power-of-two would result in many threads remaining idle.
2018-07-25 20:44:30 -07:00
rogerman
cbd488e157
SoftRasterizer: Force the number of rendering threads to be a power-of-two since any additional threads that are not power-of-two will be wasted.
2018-07-25 15:18:36 -07:00
rogerman
b6072287c5
Cocoa Port: Improve SoftRasterizer multithreading and stabilize multithreaded performance.
...
- Automatic setting of the SoftRasterizer thread count (the most common use case) now takes into account systems with many CPU cores/hyperthreads. When using Automatic mode, SoftRasterizer will take advantage of more threads on machines like the Mac Pro and iMac Pro.
- Manually assign the thread priorities of the SoftRasterizer threads and other related high-priority threads to better ensure stable performance. Most importantly, the main emulation thread will no longer preempt any SoftRasterizer thread since the main emulation thread has to wait on the results of SoftRasterizer anyways.
- These changes aren't targeted for improving overall performance -- they help stabilize performance so that CPU cycles are used more consistently, which might translate into slightly improved performance, depending on hardware, as a byproduct of doing these changes.
2018-07-25 14:19:25 -07:00
zeromus
fe851aa10c
Merge pull request #159 from SuuperW/display
2018-07-21 15:27:56 -05:00
rogerman
ad5f5c24e6
Colorspace Handler: Fix bug where ColorspaceApplyIntensityToBuffer*() would not apply an R/B color swap when requested.
2018-07-20 18:45:44 -07:00
retr0s4ge
8cbdc339f2
(Windows Frontend) Fix window size increase on startup if screen size ratio > 1
...
Fix missing division in ScaleScreen function which caused window size to increase on each startup if screen size ratio > 1.
2018-07-21 00:00:54 +02:00
SuuperW
9ccf9acea4
Revert commit 15957ba
, and apply backlight effect regardless of whether using DirectDraw or OpenGL.
2018-07-18 14:51:45 -05:00
SuuperW
84e8057682
Resize the window when changing the screen gap.
2018-07-18 12:20:03 -05:00
SuuperW
a4411086e0
Fix issue with resizing the window vertically.
2018-07-18 12:19:33 -05:00
SuuperW
842ed1b93c
Put HUD drawing back to before applying the video filter.
2018-07-18 10:09:59 -05:00
SuuperW
77c0b6e702
Fix bug where OpenGL HUD would be stretched with 90 or 270 degree rotation. (regression from commit 6fc7161
)
2018-07-18 01:58:56 -05:00
SuuperW
15957ba792
Remove use of backlight intensity when using DirectDraw. (previously removed it with OpenGL in commit 6fc7161
)
2018-07-17 11:40:05 -05:00
SuuperW
60aedec5d2
Scale HUD when using DirectDraw. (fix regression from commit 5906d44
)
2018-07-17 11:38:59 -05:00
retr0s4ge
43a9734ba2
Fill the areas above and below the resized screen with black when using DirectDraw display method.
...
This is needed to remove garbage from the window after resizing the screen. OpenGL display method already does this.
2018-07-13 16:43:43 +02:00
retr0s4ge
d17a01d0c3
Center the resized screen vertically by default and add a check menu setting to change that if required.
2018-07-13 14:43:02 +02:00
SuuperW
6fc7161f19
Rework HUD rendering with OpenGL.
...
-Fixes regression from commit 5906d44
where HUD would appear smaller when using HD scaling. (only fixed with OpenGL for now)
-Remove use of backlightIntensity for displaying. Fixes bug where screen would appear dark on the first frame after loading a save state. Underlying cause should probably still be fixed, though. (Why would the backlight level affect the display anyway? That setting on the DS is only present because it has its own physical screens and makes no sense here.)
2018-07-12 11:23:23 -05:00
retr0s4ge
9dd7e0f451
Adjust the aspect ratio of the resized screen to follow the user setting, and modify input scaling accordingly.
2018-07-12 00:13:43 +02:00
SuuperW
dc41f09189
some code cleanup; fix crash on changing to 15 bpp from a higher bpp
2018-07-09 11:41:46 -05:00
retr0s4ge
5ad5e16a40
(Windows Frontend) Allow screen resizing in horizontal display layout.
...
The right hand screen is allowed to be resized in horizontal screen layout to enable the window or full screen display to better utilize the screen area.
Changes:
1- Modify scaling, resizing and update functions to allow for new screen resizing ratio
2- Modify touch input scaling (incl. HUD editing) to adapt to different screen sizes
3- Add GUI menu for user to select the screen resizing ratio
4- Implement saving/loading settings from file similar to other settings
2018-07-09 01:03:35 +02:00
retr0s4ge
66062bca80
Don't save ethernet packets to pcap files by default.
...
Save only if the defined WIFI_LOGGING_LEVEL >= 3
2018-07-08 23:39:14 +02:00
SuuperW
b95f58826e
Fix ordering of fonts
2018-07-08 11:28:29 -05:00
zeromus
41104fd315
fiddle around with movie sram
...
re #152
2018-07-06 14:18:14 -04:00
zeromus
f79e24dba8
Merge pull request #153 from Salz/pullreq/agg
...
revert to agg >= 2.4
2018-07-06 13:54:50 -04:00
zeromus
a17bafa652
Merge pull request #154 from Salz/pullreq/gdb-stub
...
Pullreq/gdb stub
2018-07-06 13:54:23 -04:00
zeromus
9f7ed1aeeb
Merge pull request #155 from Salz/pullreq/commandline
...
Fix CommandLine initialization
2018-07-06 13:53:40 -04:00
SuuperW
5496c8e024
Remove the now unused firstTime parameter of DoDisplay.
2018-07-06 11:45:38 -05:00
SuuperW
5906d44c2d
On Windows, draw HUD before the filter to avoid having to scale it separately. (significant performance boost when using a filter)
2018-07-06 11:45:07 -05:00
SuuperW
e4d5da97c0
Add prefilterWidth/Height
2018-07-06 11:44:11 -05:00
Ingo Saitz
cebbb262d1
revert to agg >= 2.4
2018-07-05 11:42:03 +02:00
Ingo Saitz
696135d712
Fix BaseDriver class
...
Commit 7548294333
broke compilation of
desmume/src/NDSSystem.cpp if DEVELOPER is defined by --enable-gdb-stub
Needs commit c9ad909a75b0ad89d0bd84829ed536c5ae0ffc93
2018-07-05 11:28:52 +02:00
Ingo Saitz
b976584451
fix --enable-gdbstub
2018-07-05 11:28:46 +02:00
Ingo Saitz
dd8d4e6715
Fix CommandLine initialization
...
Commit 7548294333
added _fw_boot and
_fw_path, need to make sure they are initialized, too.
2018-07-05 11:28:05 +02:00
SuuperW
c64a556d82
Properly handle SRAM when playing movies, with or without starting from SRAM.
2018-07-04 11:11:57 -05:00
SuuperW
35ddbb341d
Fix bug where movies starting from sram would crash.
2018-07-01 12:46:38 -05:00
retr0s4ge
411bcaa15d
Forcibly wait for the display thread to draw each frame (never skip any frame) ONLY IF the user set frame skip to "0 (never skip)".
...
Current implementation causes significant display lag if any magnification filter is used while GPU scaling factor is >1.
2018-06-29 14:23:01 +02:00
retr0s4ge
7548294333
1- Apply WiFi-ONLY related fixes from desmume-reloaded project by Jackobo Le Chocobo to desmume project (code base 22/06/2018).
...
2-Add required include and define statement to aviout.h to fix build error.
(cherry picked from commit 470e54e361
)
2018-06-29 09:31:30 +02:00
zeromus
bd63ff1bd1
Merge pull request #148 from SuuperW/master
...
Do not allow skipping display frames (except in extreme lag).
2018-06-28 12:50:47 -04:00
SuuperW
ee8fdebcf1
Do not allow skipping display frames (except in extreme lag), so that the user sees every emulated frame and the HUD updates every frame.
2018-06-28 11:34:38 -05:00
Ingo Saitz
0e86cf128d
Call XInitThreads() in posix frontend
...
XInitThreads() is needed in multi-threading X applications when multiple
threads try to access the Xlib. Add the call to the three frontends in
posix/ and add the required autoconf-stuff, too.
2018-06-27 14:41:02 -05:00
SuuperW
a8fa8a44d6
Do not reset buffers when calling SetPrescale with the current scaling values.
2018-06-27 11:27:05 -05:00
SuuperW
35a2ca9721
Redraw display after changing video filter. (Regression from commit 8622a33.)
2018-06-27 11:25:48 -05:00
SuuperW
8622a334a2
Rework buffer size allocations to only allocate as much space as is actually required.
2018-06-27 11:23:36 -05:00
zeromus
0f4b3ead00
replace SMLAL_BB and friends with more clear logic that hopefully isnt bugged
...
but I couldnt find a game exercising it, so I dont know whether it's correct.
should fix #139
2018-06-15 17:48:28 -04:00
zeromus
022d24b5c2
gfx3d - savestate `renderState` along with `state`
...
there's really nothing more to it than this. it should have been done from the beginning.
you wouldn't notice this unless you had a game that stopped rendering 3d, though.
(re #141 )
2018-05-25 11:39:58 -04:00
rogerman
932cdd6366
Cocoa Port:
...
- Do a bunch of code refactoring and cleanup.
- Add some new UI for an upcoming new feature.
2018-05-17 21:22:51 -07:00
rogerman
c024a78a43
GPU / SoftRasterizer: Fix a build issue for Altivec-enabled code. (Related to commits c41a006
and 43d3883.)
2018-05-17 20:06:31 -07:00
zeromus
9c128460c4
winport - make it so you can only open one of each disassembler views at a time (reportedly theyre crashy if theres more than one of them open.. seems likely to be the case for any of our tool windows)
2018-04-18 13:14:01 -05:00
zeromus
deffcaa075
added /LARGEADDRESSAWARE so we can get more than 6x or 7x scaling in 32bit builds
2018-04-12 21:48:22 -05:00
rogerman
24d941d02e
Colorspace Handler: Fix some bugs in AVX2. (Regression from commit 858b05d
. Fixes #131.)
2018-03-11 14:13:26 -07:00
rogerman
ab3c221bf6
Windows Port: In Sound Settings, under the Interpolation menu, remove the obsolete performance notes, as these options do not actually affect performance. Instead, provide a better description of the effects caused by these options as experienced by the end-user.
2018-03-05 12:06:10 -08:00
rogerman
92924db136
Windows Port: Related to commit 8d011f8
-- check the flag first to try to avoid the more expensive system calls.
2018-03-04 17:39:27 -08:00
rogerman
42c0379cbb
OpenGL Renderer: Fix one more possible crash that may occur if the 3D framebuffer is read before the 3D renderer has a chance to render at least once. (Related to commit f8bbbec.)
2018-03-04 17:20:21 -08:00
rogerman
8d011f8344
Windows Port: Optimize input handling, reducing CPU usage when the emulator is idle. (Related to commit 8fb0d6d.)
2018-03-04 17:17:26 -08:00
rogerman
8fb0d6ddc5
Windows Port: Reduce CPU usage while the emulator is idle.
2018-03-03 20:41:23 -08:00
rogerman
e825cddbe5
Windows Port: Fix a rare and intermittent bug that could cause the AVI recording to accidentally stop in between AVI segments. (Regression from commit db1a19a.)
2018-03-02 15:59:37 -08:00
rogerman
b8c006b0b5
Windows Port: Do some minor code cleanup related to commit 8763a61
.
2018-03-02 14:00:52 -08:00
rogerman
8763a6169a
Windows Port: AVI recording now maintains many more frames in memory. Also, the framebuffer color conversion threads and file writing thread are more free running threads.
...
- These changes help to stabilize the performance of AVI recording, making it less sensitive to sudden changes in disk writing speed.
- The maximum amount of frames maintained in memory will either be 1.5 GB worth or 180 frames (or 3 seconds) worth, whichever is less.
2018-03-02 13:09:39 -08:00
rogerman
db1a19ad86
Windows Port: Do a complete code cleanup and refactor of aviout.cpp to use proper C++ objects.
...
- aviout.cpp now uses Windows-style line-endings instead of Unix-style line-endings.
- AVI segments now fill up much closer to the 2 GB file limit than before.
- Error handling in the file writing thread is much more robust.
2018-03-01 08:47:24 -08:00
rogerman
cbe4717d2f
Windows Port: When recording AVIs, video framebuffer conversions and file write operations are performed asynchronously with the main thread. This should greatly increase AVI recording performance.
2018-02-25 16:00:31 -08:00
rogerman
c7ca122d95
Windows Port: Fix building on Windows. (Regression from commit c7bb41e.)
2018-02-19 12:46:41 -08:00
rogerman
c7bb41e4b1
matrix.cpp: Rework all matrix function parameters for explicit array sizing in order to aid compiler optimization and (hopefully) aid in code readability. Also add SSE4.1 versions for the main matrix functions.
2018-02-19 11:43:55 -08:00
rogerman
5a61a08727
matrix.cpp: Do some more code cleanup.
2018-02-16 20:11:36 -08:00
rogerman
249afccfca
matrix.cpp: Do a bunch of code cleanup.
2018-02-16 11:59:19 -08:00
rogerman
c41a006b2a
GPU: Add additional basic SIMD-accelerated functions for memset_u16(), memset_u16_fast(), memset_u32(), and memset_u32_fast() for AVX2 and Altivec.
2018-02-13 14:45:17 -08:00
rogerman
5fbaa53b46
GPU: If a custom-sized layer is to be rendered first, GPUEngineBase::_TransitionLineNativeToCustom() will do a line clear instead of an upscaled line copy.
...
- Since this is a very common occurrence in many games, and since doing a clear is faster than doing an upscaled copy, this should give a small performance improvement for the larger framebuffer sizes.
2018-02-13 13:54:10 -08:00
rogerman
43d3883986
SoftRasterizer: Framebuffer clears are now accelerated using AVX2 and Altivec.
2018-02-12 18:03:52 -08:00
rogerman
ab18de05ef
SoftRasterizer: Oops! Fix a performance regression in SoftRasterizerRenderer_SSE2::ClearUsingValues() where the framebuffer was accidentally being cleared twice. (Regression from commit 7509d46.)
2018-02-12 13:42:42 -08:00
rogerman
7509d469b9
SoftRasterizer: Do some multithreading improvements, and also clean up and refactor RasterizerUnit.
...
- Completely encapsulate all stray global variables into the SoftRasterizer class where they belong.
- Framebuffer clears are now fully multithreaded, significantly improving clearing performance.
- Doing multithreaded texture loads and vertex calculations now requires a minimum of 2 threads, down from 4 threads.
- The maximum amount of SoftRasterizer threads has been increased from 16 to 32.
2018-02-12 11:35:21 -08:00
rogerman
9e3b694ace
Cocoa Port: Do some minor code cleanup.
2018-02-05 20:29:09 -08:00
rogerman
d1dcbb8218
Cocoa Port: Fix a potential deadlock that may occur on emulation reset.
2018-02-04 13:07:59 -08:00
rogerman
9ee7cd8ec0
NDSSystem.cpp: Check for the GPU struct before calling GPUSubsystem::ForceFrameStop() in GameInfo::closeROM().
2018-02-03 21:59:00 -08:00
rogerman
23be799a67
Cocoa Port: Metal display views no longer lose visible frames when running multiple display views.
2018-02-03 21:21:54 -08:00
rogerman
01c508f93a
Cocoa Port: Remove and replace the high-overhead NSThread with the lower-overhead pthread_t. Improves video display performance when the frame rate is very high (greater than 600 FPS).
2018-02-03 11:31:41 -08:00
rogerman
f9c32c9e79
Cocoa Port: Rework triple buffering for Metal display views yet again. This should fix the performance regression introduced in commit a65ceae9
for the larger custom framebuffer sizes.
2018-01-30 16:26:05 -08:00
Keelin Wheeler
b11bde4be4
Windows Port: Adding Pen and Touch support for touch screen devices
2018-01-08 16:37:20 -05:00
rogerman
f2f3680a7c
Cocoa Port: Fix a bug where Metal display view backing textures weren't updating their custom framebuffer sizes. (Regression from commit 4c01e66.)
2017-12-19 15:35:20 -08:00
rogerman
4c01e66a8a
GPU: Instead of using fixed double-buffered output framebuffers, allow clients to request any number of framebuffer pages between 1 and 8.
...
- For all non-Cocoa ports, reduce the number of framebuffer pages from 2 to 1, reducing the memory usage for those ports.
- For the Cocoa port, increase the number of framebuffer pages from 2 to 3 in preparation for a new triple-buffered display scheme.
2017-12-19 14:33:48 -08:00
rogerman
d3b628af47
Cocoa Port: Rework synchronization for Metal display views yet again. It should be a lot better now.
2017-12-17 20:35:00 -08:00
rogerman
a65ceae98f
Cocoa Port: For Metal display views, be much smarter about how we do synchronization. Should fix the performance issues introduced with commit 26ac91ed
.
2017-12-11 16:28:42 -08:00
rogerman
1ea95cdde4
Cocoa Port: Do some minor code cleanup.
2017-12-11 16:17:02 -08:00
rogerman
cd2f75e43a
Cocoa Port: Replace all POSIX named semaphores with Mach semaphores and GCD semaphores, which are both faster than POSIX named semaphores.
2017-12-08 11:49:49 -08:00
rogerman
1e36b36bef
Cocoa Port: Remove now obsolete locks from sound functions, since we now call SPU_Emulate_user() in the emulation thread again.
2017-12-07 23:00:28 -08:00
rogerman
cee6867bd8
Cocoa Port: In RunCoreThread(), don’t use a potentially more expensive wait method before doing a cheaper time comparison first.
2017-12-07 21:01:59 -08:00
rogerman
bac10c7618
Cocoa Port: OpenGL display views no longer use glFlush() when rendering for final flush, since glFlush() has been found to not actually be necessary.
2017-12-05 17:13:24 -08:00
rogerman
26ac91edd0
Cocoa Port: For Metal display views, replace all locks with semaphores, which are the correct synchronization primitive to use here.
...
- Also change the CocoaDSOutput list lock from a mutex to a rwlock, since testing has shown that there is more thread contention here than I previously thought.
2017-12-05 13:43:30 -08:00
rogerman
f9109568b8
Cocoa Port: Improve stability of Metal display views when running CPU-based pixel scalers.
...
- Also fix a bug where restoring multiple display windows on startup would only have the last display window shown to work properly.
2017-12-03 00:18:30 -08:00
rogerman
39039f2396
Cocoa Port: Have the HUD Settings panel title show the number of the display window that is currently in focus, just like all the other panels.
2017-12-02 19:33:08 -08:00
rogerman
b48666ea9c
Cocoa Port: Add new HUD item, “Show Execution Speed”, which displays the emulator’s execution speed as a percentage.
2017-12-02 15:35:51 -08:00
Spivee
93d01f7bf5
Update README.LIN (autogen.sh, dependencies)
...
I found these dependencies harder to figure out than usual,
since I'm used to installing packages with pregenerated `configure` scripts.
In particular if `glib` is missing then `configure` will generate with unexpanded macros, which is confusing.
This extra paragraph should be helpful for others.
Thanks for a great program :)
2017-12-01 18:07:11 +11:00
rogerman
66e8a95657
Cocoa Port: Stability improvements for Metal display views.
2017-11-29 21:31:39 -08:00
rogerman
02a3b58edd
Cocoa Port: Fix memory leaks with Metal display views.
...
- Also fix a bug where Metal display views fail on macOS High Sierra if a CPU-based pixel scaler was used.
2017-11-29 20:02:39 -08:00
rogerman
c81df97a92
Cocoa Port: Restore the ability to use Metal display views on macOS High Sierra.
...
- Also rework the way the HQnx LUTs are loaded in Metal.
2017-11-28 14:06:34 -08:00
rogerman
cd6fbcd5ea
Cocoa Port: In the Metal framebuffer fetcher, further optimize 18-bit to 32-bit color conversions whenever the master brightness does not need to be applied, which is the most typical use case.
2017-11-28 00:53:50 -08:00
rogerman
f0564cc4ac
Cocoa Port: Fix a couple of rare edge-case bugs with Metal display views.
2017-11-27 22:53:18 -08:00
rogerman
258ebfd6ea
Cocoa Port: Synchronously force a framebuffer fetch on startup to guarantee that all display windows will appear black.
2017-11-27 21:17:16 -08:00
rogerman
e18dd27d30
Cocoa Port: Fix the Screenshot Capture Tool with running Metal. (Regression from commit f5ead86.)
2017-11-27 21:15:26 -08:00
rogerman
7213c6373b
GPU: All fields for NDSDisplayInfo should be set consistently relative to the NDSDisplayID, not the GPUEngineID.
...
- In practice, this should change nothing, since all pointers somehow managed to point to the correct buffer locations. This should be nothing more than a programming consistency and readability improvement.
2017-11-27 21:07:14 -08:00
zeromus
fa4b027dbd
winport: add --windowed-fullscreen
2017-11-27 18:16:40 -06:00
rogerman
d5b62d3d02
OpenGL Renderer: Improve the robustness of error-checking OpenGL drivers.
2017-11-24 02:02:05 -08:00
rogerman
010efff31b
Linux Port (GTK): Fix OSMesa context creation. (Regression from r4905. Fixes #119.)
...
- Also do some code cleanup.
2017-11-24 00:28:49 -08:00
rogerman
b9ada994df
Linux Port (GTK): Remove and replace legacy colorspace handling routines with the new SIMD-optimized colorspace handling routines.
2017-11-22 17:43:17 -08:00
rogerman
96bd35517b
Cocoa Port: Signal a fetch at startup, after reading the user defaults for GPU Scaling Factor and GPU Color Depth, in order to guarantee that the client-side fetch buffers will be cleared.
2017-11-21 19:05:11 -08:00
rogerman
5890540007
OpenGL: Maintain one more flag to ensure that textures are always initialized. (Fixes #116.)
2017-11-21 11:17:52 -08:00
rogerman
4269925258
GPU: Properly initialize the newer NDSDisplayInfo fields.
...
- This has the side-effect of having the Windows port’s display window
start up with a white screen and HUD showing (if enabled) just like
before, rather than a black screen and HUD possibly hidden.
2017-11-20 23:51:42 -08:00
rogerman
25eae6e1ed
Cocoa Port (OpenEmu Plug-in): Change the video format to 18-bit RGB666, which matches a hardware NDS.
2017-11-20 21:04:50 -08:00
rogerman
a7065311cc
Core: Change some default settings to use more compatible and true-to-hardware settings.
...
- GPU Color Depth (from 24-bit to 18-bit), Advanced SPU Logic (from Disabled to Enabled), SPU Interpolation (from Linear to Cosine), Synchronization Mode (from Dual SPU Sync/Async to Synchronous)
- Just like the previous change to the default JIT block size, let the users themselves disable these settings so that they are more aware that they are sacrificing compatibility for speed.
2017-11-20 16:39:50 -08:00
rogerman
48fee8d590
Windows Port: Don't resize the display window after changing GPU Scaling Factor.
...
- Also remove TCommonSettings.GFX3D_PrescaleHD. It is a useless setting in core because the internal resolution is not limited to integer-multiplied scaling.
- Also fix spelling on the "Maintain Aspect Ratio" menu option.
2017-11-20 14:37:30 -08:00
rogerman
24108e35e2
Core: Change the default max. JIT block size from 100 to 12, since 12 has been tested to be more compatible and safer to use.
...
- There is only a negligible performance difference between 100 and 12.
- It is better for users to change the JIT block size from 12 to 100
themselves, since it might make them more aware that they are
sacrificing compatibility in favor of speed.
2017-11-20 12:57:24 -08:00
rogerman
6680577146
Render 3D: Handle RenderFinish() more consistently. Fixes 3D flushing issues when running single-threaded SoftRasterizer.
2017-11-20 10:58:27 -08:00
rogerman
e5694abd63
SoftRasterizer: Tiny optimization to rasterization if a shadow polygon is used, taking advantage of an already existing hint.
2017-11-17 19:18:14 -08:00
rogerman
d0c0a5641a
Cocoa Port: Fix occasional screen flickering on Metal display views whenever a pixel scaler is used. (Regression from commit 7202fb8.)
2017-11-17 00:51:10 -08:00
rogerman
7202fb8d47
Cocoa Port: Fix a rare race condition that could cause Metal display views to crash if the GPU Scaling Factor very quickly and repeatedly changes.
2017-11-16 00:22:20 -08:00
rogerman
bc7b03c3d5
Cocoa Port: Try to fix some more synchronization issues in Metal display views.
...
- Also remove the usage of _rwlockFrame and change it to a simple
pthread_mutex_t, since CocoaDSDisplay objects no longer have a need for
a full pthread_rwlock_t.
2017-11-15 21:25:21 -08:00
rogerman
a481abebf9
Cocoa Port: Remove all fonts from all builds except for SourceSansPro-Bold.
2017-11-15 16:56:14 -08:00
rogerman
d311517278
Cocoa Port: Remove extra underscore to make the .app bundle names consistent with the current naming scheme.
2017-11-15 16:44:15 -08:00
rogerman
bfefaa7486
Cocoa Port: Remove --broken from the "OS X App" Release build target.
...
- Apparently, the —broken option isn’t available on all versions of git
describe. Remove it to avoid issues, since it isn’t really necessary.
2017-11-15 16:35:00 -08:00
rogerman
1373babe52
Cocoa Port: Update "DeSmuME (Latest).xcodeproj" to reflect the latest build procedures.
...
- Build artifacts are now created in the source code directory itself
instead of in DerivedData, just like how Xcode 3 does it.
- Making Profile builds using the “OS X App” build scheme now
automatically appends the git commit number to the .app bundle name.
2017-11-15 16:24:19 -08:00
rogerman
4457b95468
Cocoa Port (OpenEmu Plug-in): Update the microphone controls to use the latest CocoaDSController standards. Fixes both hardware and software mic modes.
2017-11-14 16:11:21 -08:00
rogerman
6c4e951e68
Cocoa Port: Only enable the "Use External Firmware Image" checkbox if the "Use External BIOS Images" checkbox is checked and only if both BIOS images are set.
2017-11-13 18:38:18 -08:00
rogerman
63a5cb90ae
Windows Port: Fix compiling due to BackupDevice::_info name change. (Regression from commit 0907207.)
2017-11-13 14:43:41 -08:00
rogerman
0907207222
mc.cpp: It is now possible for DeSmuME to import its own battery save file format using the new method, BackupDevice::import_dsv().
2017-11-13 14:13:09 -08:00
rogerman
3b2a9ededc
Cocoa Port: The "File > Import ROM Save File" menu option now pauses the emulation when the NSOpenPanel is up.
...
- Also disable the "File > Export ROM Save File" menu option when there is no actual file to export.
2017-11-12 20:24:26 -08:00
rogerman
509d117f5f
Cocoa Port (OpenEmu Plug-in): Update the OpenEmu plug-in to work using the latest version of the SDK.
2017-11-11 23:39:44 -08:00
rogerman
4abfa4466a
Cocoa Port: Don't compile Lua-related files right now. Let's bring them back once there's an actual working prototype of this feature.
2017-11-11 17:24:10 -08:00
rogerman
128f9d0c96
Cocoa Port: As a small optimization, the MTLBuffers used in Metal display views should use MTLResourceCPUCacheModeWriteCombined wherever possible.
2017-11-11 16:16:17 -08:00
rogerman
b03a799834
Linux Port (CLI and GTK): When building with --enable-hud, fix the segfault on startup that was caused by an uninitialized OSD object. (Fixes #107.)
2017-11-10 14:26:29 -08:00
rogerman
109dd6f373
Render3D: Change the Depth-Equal Test tolerance from +/-512 to +/-255.
...
- Special thanks to StapleButter for coming to us and informing us of this issue. 47a71941ac (commitcomment-25533528)
- This change does imply that GBATEK got this value wrong. http://problemkaputt.de/gbatek.htm#ds3dpolygonattributes
2017-11-10 09:43:54 -08:00
rogerman
89a74e5c3e
Cocoa Port: Fix a whole slew of synchronization issues in the entire client display system, hopefully improving stability.
...
- Of special note, Metal display views aren't allowed to run on macOS High Sierra because of an assert bug in [id<MTLDevice> newBufferWithBytesNoCopy:length:options:deallocator:] in this particular version of macOS. Note that Metal display views will continue to work with macOS El Capitan and macOS Sierra.
2017-11-10 01:31:50 -08:00
Adam Sampson
d74ab529a7
Linux Port: Fix missing semicolon.
...
This was lost in 0869afded6315fb14d2265e8b3872b36ccc3fdce's refactoring.
2017-10-25 14:40:28 +01:00
rogerman
0869afded6
GPU: All GPU settings are now staged. Pending settings are applied only right before the GPU actually renders.
...
- Of note, initialization of the 3D rendering engine is also staged, where the pending engine is initialized prior to applying the 3D rendering settings. However, only ports that support this behavior will do this. Ports that do not support this behavior will work the same way as before (initialize the 3D engine immediately).
2017-10-24 09:40:56 -07:00
rogerman
3ca9e871e8
Colorspace Handler: Fix some pixel alignment issues in ColorspaceConvertBuffer555XTo888_AVX2() and ColorspaceConvertBuffer888XTo888_AVX2(). (Related to commit 858b05d.)
...
- Also do some additional optimizations while we're at it.
2017-10-23 15:51:39 -07:00
rogerman
1be210271b
Windows Port: AVI RGB888 color conversions are now multithreaded, and are also vectorized for SSSE3 and AVX2. (Fixes #105.)
2017-10-23 12:21:42 -07:00
rogerman
4c950d2a37
Colorspace Handler: Oops! Fix compiling in colorspacehandler_AVX2.cpp. (Related to commit 858b05d
. Fixes #111.)
2017-10-23 11:11:49 -07:00
rogerman
8e16b618a7
Colorspace Handler: Fix bug where RB-swapping in ColorspaceConvert555XTo888() would cancel itself out, leaving RB unswapped in all cases. (Related to commit 858b05d.)
2017-10-22 23:31:24 -07:00
rogerman
858b05df79
Colorspace Handler: Add new functions for converting 16-bit RGBA5551 and 32-bit RGBA8888 color buffers to 24-bit RGB888.
...
- Also improve the performance of RGB555-to-RGBA6665 and RGB555-to-RGBA8888 conversions.
2017-10-22 22:14:05 -07:00
rogerman
2bc3be0711
Cocoa Port: Bottom-tier GPUs running an OpenGL display presenter now use faster (but less accurate) shaders for Bicubic B-Spline and Bicubic Michell-Netravali.
2017-10-22 22:08:41 -07:00
rogerman
d9394594bf
Cocoa Port: Fix bug where touch locations were being improperly calculated on Retina displays. (Regression from commit 059ea51
. Fixes #110.)
2017-10-20 14:21:47 -07:00
rogerman
97525d94d7
Colorspace Handler: Properly maintain the alpha value when applying intensity to an RGBA5551 color buffer.
2017-10-20 13:03:03 -07:00
rogerman
64d32dca0e
Cocoa Port: In the Screenshot Capture Tool, users can now assign the save directory by drag-and-dropping a folder onto the NSTextField.
2017-10-20 13:02:06 -07:00
rogerman
70d6df40d6
Cocoa Port: Enable Lua's ability to use dynamic-linked libraries.
2017-10-20 12:50:48 -07:00
rogerman
45572fb277
Render3D: Assume the initial states of the 3D rendering instead of initializing them with CommonSettings. Most notably, assume that _enableTextureDeposterize = false in order to force it to create its buffer later on. Fixes a potential crashing bug whenever Texture Deposterization is enabled. (Regression from commit 15a19ba
. Fixes #109.)
2017-10-19 16:11:55 -07:00
rogerman
711115921b
Cocoa Port: Begin setting up support for LUA.
2017-10-19 11:06:05 -07:00
rogerman
15a19ba02f
Render3D: All 3D rendering settings are now staged. Pending settings are applied only right before the 3D renderer actually renders.
2017-10-18 15:45:46 -07:00
rogerman
8be15113e2
Linux Port (GTK-Glade): Fix screen drawing for GTK-GL. (Regression from commit f5c9a36.)
2017-10-17 23:31:00 -07:00
rogerman
43e740c661
GPU: Fix the clear color on big-endian systems when running RGB666 and RGB888.
...
- Also endian swap the BGnX and BGnY values on big-endian systems. This is a non-functional change, and is only meant to show that the endian swaps are indeed the correct choice for big-endian.
2017-10-17 18:49:05 -07:00
rogerman
f5ead86d89
Cocoa Port: Fix various presentation issues, focusing mostly on the OpenGL presenter and the Screenshot Capture Tool.
...
- Changing the display video source now updates the display window properly while the emulator is paused.
- Fix bug in the Screenshot Capture Tool where screenshots would have incorrect colors if taken on a PowerPC Mac.
- Fix bug in the Screenshot Capture Tool where screenshots would be completely black if a CPU-based pixel scaler on OpenGL was used.
- The OpenGL presenter's GPU tiering system has been changed to be more strict. This effectively pushes many older GPUs into lower tiers.
- The following pixel scalers now require at least a Low-Tier GPU (previously only required Bottom-Tier): 2xSaI, Super2xSaI, SuperEagle, HQ3x, HQ3xS, HQ4x, HQ4xS
- The following pixel scalers now require at least a Mid-Tier GPU (previously only required Low-Tier): 2xBRZ, 3xBRZ
- Due to the new changes to the GPU tiering system and allowed pixel scalers per tier, the Screenshot Capture Tool running OpenGL now allows pixel upscaling on the GPU instead of disabling it completely.
2017-10-17 13:45:55 -07:00
rogerman
e8e3200a23
GFX3D: Fix bug where 3D would fail to render on big-endian systems. (Regression from commit c6a5740.)
2017-10-16 17:38:37 -07:00
rogerman
ba6e8e0bab
Cocoa Port: Fix a bunch of HUD coloring issues on PowerPC Macs.
...
- Also fix a display backlight intensity issue on big-endian systems.
2017-10-16 17:03:01 -07:00
rogerman
c31a5717ab
Cocoa Port: Whenever attempting to take a screenshot using the Screenshot Capture Tool, simply cancel the operation altogether if the target directory does not exist or is not writable.
2017-10-16 12:11:57 -07:00
rogerman
7d2c70b7a8
Cocoa Port: Fix some issues with the Screenshot Capture Tool.
...
- Fix potential crashing bug that may occur if the target directory
isn’t found when clicking the Take Screenshot button.
- In the Display Layout dropdown panel, reposition the Display
Separation menu to be in the center section instead of in the leftmost
section.
2017-10-16 11:56:24 -07:00
rogerman
649587fcb1
Cocoa Port: Change CommandAttributes, now renamed ClientCommandAttributes, to call a C function pointer instead of an Objective-C selector when dispatching its command function.
2017-10-16 11:35:49 -07:00
zeromus
5c9fbdfb06
winport-fix some screenshots
2017-10-15 16:07:28 -05:00
rogerman
baef8b3fda
Cocoa Port: In the Screenshot Capture Tool, allow users to override the default display scale (calculated from GPU Scaling Factor) with their own user-defined display scale.
2017-10-14 17:29:59 -07:00
rogerman
73b5074313
OpenGL Renderer: Bring back support for handling the transparent polygon ID check. This fixes many graphical glitches involving transparent polygons in many games. (Regression from r5372. Fixes #74 and fixes #24.)
2017-10-13 18:35:05 -07:00
rogerman
9bfbaf23b8
GFX3D: Correct some notes about the POLYGON_ATTR Mode attribute.
2017-10-13 17:30:00 -07:00
rogerman
5f0c4ecf52
OpenGL Renderer: Shadow polygons doing the polygon ID check should only update the stencil buffer once instead of twice.
2017-10-11 12:45:29 -07:00
rogerman
8e94926072
OpenGL Renderer: Fix bug where translucent fragments drawing on top of zero-alpha fragments were not overwriting the destination fragment color as intended. (Regression from commit 2a1aaf7.)
2017-10-10 17:43:43 -07:00
rogerman
47a71941ac
OpenGL Renderer: Add true support for the depth-equals test by properly emulating the tolerance value. This fixes many longstanding bugs related to missing polygons, Z-fighting glitches, and other misc. graphical glitches in many games.
2017-10-10 11:25:16 -07:00
rogerman
2a1aaf727e
OpenGL Renderer: Reduce the number of stencil bits needed to emulate the shadow volume mask from 2 to 1.
2017-10-09 14:05:53 -07:00
rogerman
c9025e81cb
OpenGL Renderer: The fragment depth calculation now works more like how SoftRasterizer does it.
...
- Also update some comments in gfx3d.h.
2017-10-09 11:05:56 -07:00
rogerman
c6a5740665
GFX3D: Rework polygon attributes and texture parameters using the latest coding style. Also improve the performance of SoftRasterizer while we’re at it.
2017-10-06 17:13:08 -07:00
rogerman
e7d63e6cd2
GFX3D: Reduce the memory requirement of the vertex lists to one-third of its previous size.
...
- Has the positive side-effect of improving the OpenGL renderer's performance when many vertices are used.
- Also fix the vertex list double-buffering so that it actually works as intended.
2017-10-04 16:55:08 -07:00