Commit Graph

6194 Commits

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

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

but as the strdump solution is simple enouth I've keep this.
2018-10-20 07:15:48 +02:00
rogerman 68e91ec57f OpenGL Renderer: Fix a bug with the MSAA automatic selector where the MSAA sample size would be selected based on the PREVIOUSLY set framebuffer size, even though the selection should be based on the CURRENTLY set framebuffer size. 2018-10-19 16:33:37 -07:00
Jules.A 1010709de2 Fix #c65ec32 illogical operators (|| instead of &&), save to ini straight away to avoid wrong value being displayed there and don't bother creating another variable to try make a turd prettier. 2018-10-17 22:40:54 +08:00
Jules.A c65ec323ef Default to 8 if invalid uservalue is entered, add a check so it won't be set to 2x if limiting is disabled and clean up settings interface more. 2018-10-17 21:18:58 +08:00
Jules.A d818155e8e Fixed settings not getting instantly updated causing MSAA sample checkboxes to not be disabled. 2018-10-17 03:51:21 +08:00
Jules.A faeced5c66 Clean up interface. 2018-10-17 02:24:23 +08:00
Jules.A 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