Commit Graph

6126 Commits

Author SHA1 Message Date
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
zeromus 490c7e917c
Merge pull request #150 from retr0s4ge/master
Add WiFi fix from desmume-reloaded, tweak the wait for display thread added in commit ee8fdeb
2018-06-29 23:57:48 -04: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
zeromus 23f4dcc009
Merge pull request #147 from SuuperW/master
Reduce RAM usage
2018-06-27 12:59:03 -04: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
zeromus 2a58246eb5
Merge pull request #123 from keelimeguy/master
Windows Port: Adding Pen and Touch support for touch screen devices
2018-01-08 16:04:11 -06: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