Commit Graph

6194 Commits

Author SHA1 Message Date
Yackerw 5bd5c630f1 Added debugging tools
Breakpoints, memory breakpoints, made disassembler better in general
2020-08-15 16:02:38 -04:00
PypeBros 5a368922c9 Fix directory crawling on symlink-capable systems 2020-08-06 18:34:14 +02:00
zeromus 209dfca35f fix chinese filenames in savestates and dct files (fixes #343) 2020-07-12 14:33:26 -04:00
zeromus fc3d81e73a cleanups related to prior commits 2020-06-18 15:58:16 -04:00
Mattia Rombi 622b763bf1 Use DeSmuME name - but not in firmware.cpp
1. didn't like every line in the file being touched
2. DESMUME_NAME is cosmetic; it may have had special meaning in this file. I didnt feel like investigating it any more
2020-06-18 15:53:21 -04:00
Mattia Rombi 357843c543 winport: add title size check and fixed code style/typo 2020-06-18 21:14:50 +02:00
Mattia Rombi 3466c7f69a winport: update main window title with current game 2020-06-18 21:14:50 +02:00
thesource f007ef655e GTK: fix audio interpolation mode not being saved or loaded from config 2020-05-10 16:29:01 +03:00
davg-qqq 4186c33745 Linux GTK Port: Fix config for new MSAA options
a289055e removed the code that updated the old "multisampling enabled"
config. This fix adds a new config value for the multisampling size and
updates the old config in sync. When loading the config, the new
multisampling size value is prioritized, but if it is 0 (possibly not set)
then it falls back to the previous logic using the old boolean config
value.
2020-05-09 00:07:38 +02:00
davg-qqq a289055e1c Linux GTK Port: Add more detailed MSAA options 2020-05-08 22:21:18 +02:00
zeromus 76fafe0230 winport - fix drag & drop and recent roms menu so I can verify whether any of that stuff works in chinese 2020-05-05 02:00:58 -04:00
zeromus d4c17e5f8d winport - fix some unicode file opening crap 2020-05-05 01:49:14 -04:00
davg-qqq a1791a24f0 Fix unhandled null causing crash when using osmesa with nvidia driver 2020-05-03 19:34:49 +02:00
zeromus d556c99771 Merge branch 'master' of https://github.com/TASVideos/desmume 2020-04-27 20:29:05 -04:00
zeromus 55253504e3 fix spurious warning in exporting battery save memory even when it works (fixes #325) 2020-04-27 20:28:56 -04:00
Lucian Poston 827af7a494
Update GLADEUI_UNINSTALLED_DIR to current dir hierarchy 2020-04-23 05:21:15 -05:00
Lucian Poston bf5065859b
Add debug output when failing to find glade ui file 2020-04-23 05:19:50 -05:00
zeromus 7fdf800b58 fix ddraw HW breaking after windows lock screen 2020-04-22 15:47:31 -04:00
zeromus c52ee0386e remove accidental debug code ("DebugBreak") 2020-03-31 20:02:03 -04:00
zeromus 5f76ba8bb3 I couldn't make any sense out of the wifi saving code, and I was pretty sure I saw a variable not getting saved, so I redid it. Did I do it right? I don't know, you tell me. Also in this commit I reformatted all of wifi.cpp because I had lost 10 minutes or more to not being able to find `variable = value` or `variable=value` due to it being inexplicably `variable\t=value` all over that file and uhmmmmmmmmmmmm no. 2020-03-31 00:18:54 -04:00
zeromus 600957a840 fix compilation issue when logging is enabled 2020-03-31 00:17:19 -04:00
zeromus 347a3aa833 remove x86 from windows port since there are now known code generation bugs in the wifi which definitely pose user-facing problems 2020-03-31 00:16:57 -04:00
zeromus d787b737e3 winport: dont crash if hitting ctrl+r when no rom is loaded 2020-03-05 23:44:27 -05:00
Per Allard f814164de2 Issue: can't compile on Arch Linux #304
The build failure(s) come from the fact that the posix frontends currently
use deprecated functions for multi-threading. The offending functions are:
g_thread_create and g_thread_supported, both deprecated since 2.32.
g_thread_create is replaced by g_thread_new and g_thread_supported is no
longer needed at all for glib >= 2.32 threading is automatically initialized
when the program starts.
2020-01-16 23:29:01 +01:00
sietschie 25f7469920 set fullscreen background to black for gtk frontend 2019-12-11 14:18:51 +01:00
Andres Stoliar 3658f3c949 Fix to compile with gcc 2019-11-20 10:58:53 -03:00
Ruben 0dc75ca089
add interpolation at loop boundary
Fixes crackling in small streams and correctly interpolates chip-style samples
2019-10-28 15:28:09 +11:00
zeromus 46980d7732 fix crc calculation method for cheats DB 2019-09-25 22:04:58 -04:00
Your Name b9317ad184 * desmume/src/frontend/posix/gtk/main.cpp(common_gtk_main): Modify a multiline comment to be a single line comment.
* desmume/src/frontend/posix/gtk/main.cpp(common_gtk_main): Add a comment to indicate that moving the following instruction implies that a GTK warning is shown.
* desmume/src/frontend/posix/gtk/main.cpp(common_gtk_main): Move a statement later to avoid a GTK warning.
2019-07-28 08:10:55 +02:00
YuGiOhJCJ 07576fea31 * desmume/src/frontend/posix/gtk/config_opts.h: Add the "command_line_overriding_firmware_language" option.
* desmume/src/frontend/posix/gtk/config_opts.h: Add the "firmware_language" option.
* desmume/src/frontend/posix/gtk/main.cpp: Add the "setfirmwarelanguage" menu item.
* desmume/src/frontend/posix/gtk/main.cpp: Add the "setfirmwarelanguage" action entry.
* desmume/src/frontend/posix/gtk/main.cpp(CallbackSetAudioVolume): Fix its parameters ("*" attached to the name rather than the type).
* desmume/src/frontend/posix/gtk/main.cpp(SetAudioVolume): Fix its indentation (spaces replaced by a tab).
* desmume/src/frontend/posix/gtk/main.cpp(SetFirmwareLanguage): Add this function.
* desmume/src/frontend/posix/gtk/main.cpp(CallbackSetFirmwareLanguage): Add this function.
* desmume/src/frontend/posix/gtk/main.cpp(common_gtk_main): If the command line overriding is enabled, then use the language set on the GUI.
2019-07-26 08:48:18 +02:00
YuGiOhJCJ ac42f1d1bf * desmume/src/frontend/posix/gtk/config_opts.h: Add the "audio_volume" option.
* desmume/src/frontend/posix/gtk/main.cpp: Add the "setaudiovolume" menu item.
* desmume/src/frontend/posix/gtk/main.cpp: Add the "setaudiovolume" action entry.
* desmume/src/frontend/posix/gtk/main.cpp(SetAudioVolume): Add this function.
* desmume/src/frontend/posix/gtk/main.cpp(CallbackSetAudioVolume): Add this function.
* desmume/src/frontend/posix/gtk/main.cpp(common_gtk_main): Add the "SNDSDLSetAudioVolume" function call.
* desmume/src/frontend/posix/shared/sndsdl.cpp: Add the "audio_volume" global variable.
* desmume/src/frontend/posix/shared/sndsdl.cpp(MixAudio): Add the "SDL_MixAudio" function call.
* desmume/src/frontend/posix/shared/sndsdl.cpp(SNDSDLGetAudioVolume): Add this function.
* desmume/src/frontend/posix/shared/sndsdl.cpp(SNDSDLSetAudioVolume): Add this function.
* desmume/src/frontend/posix/shared/sndsdl.h: Add the "audio_volume" global variable.
* desmume/src/frontend/posix/shared/sndsdl.h(SNDSDLGetAudioVolume): Add this function.
* desmume/src/frontend/posix/shared/sndsdl.h(SNDSDLSetAudioVolume): Add this function.
2019-07-24 08:20:18 +02:00
rogerman de198c00a0 Colorspace Handler: Add support for AVX-512, new 16-bit to 32-bit alpha agnostic conversion functions, and minor optimizations to some functions.
- New 16-bit to 32-bit alpha agnostic conversion functions: ColorspaceConvert555XTo888X_*(), ColorspaceConvert555XTo666X_*().
- Minor optimizations to the following functions: ColorspaceConvert555To8888_*(), ColorspaceConvert555To6665_*(), ColorspaceApplyIntensity32_*().
2019-05-20 14:57:34 -07:00
Ömercan Kömür 8a826d4230
Update resources.rc 2019-05-08 00:38:15 +03:00
Ömercan Kömür 6cf9f1a98d
typo related updates
Since full text unable to read when it was 35, changed to 71, so its readable right now.
Typo corrected
Added Windows Border to sound setting to make it more important
“Wi-fi” is used to certify the interoperability of wireless computer networking devices. So Wifi changed to Wi-fi
2019-05-07 23:49:29 +03:00
Ömercan Kömür 85cb5b6c65
update reoursces.rc
Missed Caption added
2019-05-07 22:06:35 +03:00
Alex Forsythe 6e5c9dbaf8 Clarify parameter names for gui.setlayermask
This is a tiny follow-up to PR #273, with no actual changes in
functionality. In short:

- gui.setlayermask(top, bottom) -> gui.setlayermask(main, sub)

Display layers correspond to GPU (main or sub), not to screen (top or
bottom), so this change just updates the Lua parameter names to reflect
that.
2019-05-04 01:02:32 -05:00
Alex Forsythe cc9335eea6 Add Lua function gui.setlayermask
This change adds a Lua function called gui.setlayermask, which allows Lua
scripts to procedurally modify which render layers are visible. It takes
two arguments: one integer bitfield representing the visibility states for
the main GPU, and the other representing the sub GPU. For example: 0b11111
shows all layers, 0b00000 hides all layers, 0b00001 shows only layer 0
(BG0), 0b10000 shows only layer 5 (OBJ), etc.

Since display layer state is coupled to the frontend, and since frontends
are entirely separate between platforms (i.e., on Windows, toggling
display layer state requires updating the GUI state asl well), this
function is only supported and tested on the Windows build. On MacOS and
Linux, gui.setlayermask will simply return 0 without doing anything.
2019-05-03 21:51:07 -05:00
zeromus 851274b3e8
Merge pull request #269 from Prof9/master
Fix Action Replay DS code type 0x0E
2019-04-24 14:19:57 -04:00
Prof. 9 5c557440d7 Fix Action Replay DS code type 0x0E patch lines not being skipped over when execution status is false. 2019-04-24 20:05:49 +02:00
Jules Anthony cc4446ab29 Fixes MSVC2019 solution loading and compiling. Due to 2019 dropping XP support by default, anyone needing XP compiles will need to download the v141 toolkit as an extra and manually configure TargetPlatform and PlatformToolset. 2019-04-24 18:35:44 +08:00
zeromus 55c158d305 fix lua random crash / unreliability introduced by commit 43fcaf68f1
fix strange non-functional static-assert-likes designed to prevent this problem, by turning them into actual static asserts
2019-04-19 16:18:29 -04:00
rogerman ce8275fca1 Render3D: Add an actual AVX2-accelerated code path for setting up clear images. 2019-03-22 00:25:38 -07:00
rogerman 331cfa3596 Render3D: Demote some functions and classes to only require AVX instead of AVX2 where appropriate. 2019-03-21 22:43:09 -07:00
rogerman 96df0343f7 GPU: The info for native lines and custom lines are now handled at the display level rather than at the engine level. By doing this, we no longer assume that engines will maintain a constant association to a particular display for all lines; rather, we now take into account that an engine/display association may change mid-frame. Fixes #132. 2019-03-21 21:18:50 -07:00
zeromus f0737b679f winport - change mic sequence loading to use _0 as a signal, and fix bug in paths with . earlier in the name before the extension 2019-03-19 14:18:02 -04:00
rogerman be2735b3c5 OpenGL Renderer: Fix bug where resizing the framebuffer may cause subsequent rendering to fail. This bug affected OpenGL 3.2 only. (Regression from commit fa8cf5a.) 2019-03-18 00:03:03 -07:00
rogerman fe428fdda0 Cocoa Port: Fix bug where the HUD would appear smaller than intended on Retina displays.
- Also make the HUD scaling curve more precise.
2019-03-17 23:32:01 -07:00
rogerman c6269ca7ff Firmware: Initializing the fake firmware and applying the firmware settings from an internal firmware config struct are now split into separate operations. This allows the user to freely choose between using internal firmware config or using an external firmware.dfc file for their firmware settings, regardless of whether or not they are booting from external firmware. Fixes #259.
- Also fixes a compiling issue with compilers that are not MSVC 2015 or later. (Regression from commit ac94244.)
2019-03-17 21:55:00 -07:00
zeromus 175a471e5e actually limit mic samples to 254 2019-03-17 23:38:34 -04:00
zeromus ac94244757 support recording mic samples in header and current mic sample selection. tested reading and writing, but no more thoroughly than that. this requires a new movie version (mic sample selection stored kind of like an analog coord, a 3-digit number in dsm) 2019-03-17 23:34:54 -04:00
zeromus 3dc7e6d70e fix warnings from weird code 2019-03-17 23:23:48 -04:00
zeromus aef0374ed8 fix warnings and 64bit problems 2019-03-17 23:12:08 -04:00
zeromus 065d9e4321 fix printf warning 2019-03-17 23:08:21 -04:00
zeromus 9805fe3de4 winport - support multiple mic samples, selected with new hotkeys 2019-03-17 22:55:53 -04:00
zeromus ec351f3015 fix warnings 2019-03-17 22:53:55 -04:00
zeromus 72ecc8e66c quick fix to stop OSD from crashing if we try to print a line to the OSD before the frontend is fully initialized 2019-03-17 22:53:40 -04:00
zeromus ed92e1ef68 get rid of printf warnings 2019-03-17 22:02:40 -04:00
rogerman fe9541b448 NDSSystem.cpp: Make firmware loading more robust. 2019-03-10 00:57:16 -08:00
rogerman 8fa60fafd3 Firmware: Ensure that memory leaks don't happen when errors occur. 2019-03-10 00:53:26 -08:00
rogerman 42817475c2 OpenGL Renderer: Fix bug where Edge Mark and Fog were not properly being handled when the framebuffer is cleared using a clear image, such as in "Sonic Chronicles: The Dark Brotherhood". (Regression from commit 0dab591.) 2019-02-06 23:17:35 -08:00
rogerman bb25742512 GPU: Fix some compiler warnings. 2019-02-06 18:43:11 -08:00
rogerman fa8cf5a6dc OpenGL Renderer: Fix bug where the Special Zero Alpha Blending option would cause graphical glitches in certain games while MSAA was enabled on GPUs that support the GL_ARB_sample_shading extension. (Regression from commit e4ec1d6.) 2019-02-06 17:57:44 -08:00
rogerman 3c87d8b268 OpenGL Renderer: In GLX, there is no need to load glBlendEquation(), which is an OpenGL v1.2 function, since the current version of GLX (v1.4, circa 2005) implicitly supports OpenGL v1.3. Fixes #254. (Regression from commit ef3e93b.) 2019-02-06 10:23:17 -08:00
rogerman ee7d707acf OpenGL Renderer: Fix compiling for non-Cocoa ports. (Regression from commit ef3e93b.) 2019-02-05 11:58:31 -08:00
rogerman ef3e93b4e9 OpenGL Renderer: Fog rendering now uses dual-source blending if available. (OpenGL 3.2 only.) 2019-02-05 02:43:20 -08:00
rogerman fc4f12efd0 OpenGL Renderer: In the shaders, replace texture() with texelFetch() wherever appropriate. (OpenGL 3.2 only.)
- Also do some minor code cleanup.
2019-02-05 01:57:20 -08:00
rogerman e433a6d80e SoftRasterizer: Fix a bug where some games would occasionally have unreliable rendering or precipitous performance drops. (Regression from commit e06d11f.) 2019-02-04 23:40:15 -08:00
rogerman 242ccb26cf GFX3D: Oops! Make the clipper modes actually work as intended instead of ALWAYS using ClipperMode_Full. 2019-02-02 20:39:47 -08:00
rogerman 4f8b788e97 Render3D: Refactor the Render3D class in order to better reflect how the 3D renderers do things now. 2019-02-01 17:57:33 -08:00
rogerman 3e73a550e3 OpenGL Renderer: Ensure that all color attachments are assigned sequentially without gaps, and ensure that fragment shaders write out a value to each assigned attachment in all cases. This is being done to try and satisfy extremely picky AMD drivers that can do crazy-go-nuts things when the color attachments are not meticulously managed this way. 2019-01-29 16:50:47 -08:00
rogerman e4ec1d634a OpenGL Renderer: Better emulate the special NDS rendering quirk for drawing front-facing fragments on top of back-facing opaque fragments. Completely fixes the Customize screens in Sands of Destruction. (Related to commit 8944328.)
- Specifically, translucent polygons now properly render on top of the back-facing opaque fragments from the opaque polygon rendering pass. Do note that emulating this special NDS rendering quirk is still not complete, as it does not account for drawing any translucent polygons on top of the opaque fragments of back-facing partially-translucent alpha-textured polygons. However, I have not seen any games that actually go so deep into such an edge case. If there is such a game, then this issue will need to be revisited.
- Now that this special rendering quirk is more accurate, this does cost some performance. However, since this rendering quirk is controlled by the "Enable Depth L-Equal Polygon Facing" option, which is OFF by default, this performance loss is deemed acceptable in favor of the increased accuracy.
2019-01-29 01:20:13 -08:00
zeromus 1c937adb9e fix #250, probably 2019-01-27 12:24:35 -05:00
rogerman e06d11f6df GFX3D: The polygon clipping stage now occurs before any polygon sorting, allowing for the sorting of smaller lists. This can be a significant performance improvement for some 3D scenes with high polygon counts.
- 3D renderers no longer perform polygon clipping themselves, instead relying on GFX3D to do it. By default, the clipping mode is ClipperMode_DetermineClipOnly, but 3D renderers can change this by overriding the virtual method Render3D::GetPreferredPolygonClippingMode() and returning their preferred clipping mode.
2019-01-23 16:03:09 -08:00
rogerman b8e85e0c9d OpenGL Renderer: Revert the texture sampling hack in commit 02cd950 -- it causes graphical glitches in Sands of Destruction, especially visible within the Sky Gaol. 2019-01-23 14:44:47 -08:00
rogerman 4cd19ce522 OpenGL Renderer: Before rendering, determine the list of clipped polygons, and then only render the clipped polygons, just like how SoftRasterizer does it. Most 3D games will see a significant performance improvement. For certain games with very high polygon count scenes, those games will see a massive performance boost. 2019-01-21 16:21:32 -08:00
rogerman bb93a0a365 OpenGL Renderer: Fix an occasional crashing bug that may occur when initializing the Clear Image textures. (Regression from commit 3dc860b.) 2019-01-18 16:20:11 -08:00
rogerman d70bc19d9a OpenGL Renderer: Oops!!! Fix a critical bug that completely broke all rendering!!! (Regression from commit ab3d489.) 2019-01-18 14:32:13 -08:00
rogerman ab3d48947a OpenGL Renderer: Reduce some buffer related synchronization in BeginRender(). 2019-01-18 13:54:37 -08:00
rogerman 02cd950b02 OpenGL Renderer: In an effort to try and reduce graphical glitches whenever users try to run enhancements that were never native to the NDS to begin with, the texture sampling method is now being forced to clamp for polygons with texture coordinates of either 0.0 or 1.0. 2019-01-17 23:03:52 -08:00
rogerman 0dab5917b6 OpenGL Renderer: Fix a bug where the incorrect buffer would be cleared when trying to clear the Fog attributes buffer while Edge Mark is disabled. Partially addresses #247. (Regression from commit 21a3fae.) 2019-01-16 16:19:33 -08:00
rogerman d63ae63d1b OpenGL Renderer: Fix compiling for non-Cocoa ports. (Regression from commit c9db815.) 2019-01-16 15:46:13 -08:00
rogerman c9db815171 OpenGL Renderer: Improve the overall reliability of CPU-to-GPU buffer writes, fixing a bug where certain polygons would intermittently flicker in some games. (OpenGL 3.2 only.) 2019-01-16 11:57:36 -08:00
rogerman 7990e6c3f3 OpenGL Renderer: Fix a bug where Fog rendering would fail when used with MSAA. Fixes #246. (OpenGL 3.2 only. Regression from commit 21a3fae.) 2019-01-15 21:47:50 -08:00
zeromus 6ed5cf8420 winport - fix bug using all available window size when maximizing and fullscreening 2019-01-16 00:10:25 -05:00
rogerman 3dc860b248 Render 3D: Simplify the code a little by removing the working Polygon ID buffer for clear images.
- As a collateral improvement, this change also works as a minor optimization for the OpenGL Renderer for games that use clear images.
2019-01-14 16:13:08 -08:00
rogerman 26504031ff OpenGL Renderer: Partially revert commit 0f045d4 -- don't do the Z adjust in the vertex shader. Apparently, we shouldn't need to explicitly do this in OpenGL, as this adjustment should be automatic. Fixes a graphical glitch that can occur in "Sonic Chronicles: The Dark Brotherhood". 2019-01-14 15:17:13 -08:00
rogerman 0f045d430c OpenGL Renderer: When rendering the main geometry, adjusts all Z-positions in the vertex shader so that Z is more likely to naturally fall between the depth range of 0.0 and 1.0. Further mitigates the performance cost of using the NDS-Style Depth Calculation option. 2019-01-14 12:08:33 -08:00
zeromus 9b1ce0efc3 add --slot1-no8000prot, fixes #183 2019-01-13 14:51:51 -05:00
rogerman 066366184c Video Filters: Fix an issue where the internal buffers were not created using a guaranteed alignment, possibly causing a segfault on AVX2-enabled systems. Fixes #245. 2019-01-11 00:40:16 -08:00
rogerman f5d90a77c1 GPU: Fix graphical glitch that can occur when frameskip is enabled, running a custom resolution on a multicore CPU system. (Regression from commit abc0649.) 2019-01-10 21:33:16 -08:00
zeromus 605ce35812 winport - restore some tool windows which are minimized, when their menu option is selected 2019-01-10 20:54:31 -05:00
rogerman 4a13a03f46 Windows Port: Fix compiling on 32-bit Windows. (Regression from commit abc0649.) 2019-01-09 23:40:32 -08:00
rogerman abc0649ad2 GPU: Significantly improve the performance of HD rendering for many 3D games.
- Specifically, if the previous frame is determined to draw the entire HD layer directly over the backdrop layer, then the current frame's entire custom framebuffer is asynchronously cleared using line 0's backdrop color since most games will keep the backdrop color constant for all scanlines. Because this is a common rendering case, many 3D games should see a performance improvement when running very large HD framebuffers (8x or higher).
- Also fix a compiling issue for non-SSE2 systems. (Regression from commit 3890431.)
2019-01-09 22:41:42 -08:00
rogerman 3890431154 GPU: Working engine buffers are now set up in advance, asynchronously, starting after line 191. 2019-01-08 23:47:36 -08:00
rogerman 0f87ada863 types.h: Add support for atomic variables.
- Also clean up some stuff that doesn't belong in this file.
2019-01-08 17:17:30 -08:00
rogerman 50f42fae55 OpenGL Renderer: More minor shader efficiency tweaks when using the NDS Style Depth Calculation option. 2019-01-06 00:23:17 -08:00
rogerman 85ee9e0ff9 OpenGL Renderer: Fix some interactions between Edge Mark and the Special Zero Alpha Blending option. (Regression from commit 6f8c060.)
- Also remove some extraneous stencil buffer clears.
2019-01-05 12:49:16 -08:00
rogerman 40a4b3cdcf OpenGL Renderer: Do some minor shader efficiency tweaks. (OpenGL 3.2 only.) 2019-01-04 18:48:28 -08:00
rogerman 21a3fae0f3 OpenGL Renderer: Do some minor efficiency, stability, and consistency tweaks. 2019-01-02 01:10:59 -08:00
rogerman f97c633441 OpenGL Renderer: Okay, let's try using GL_AMD_conservative_depth for those AMD drivers that outright lie about supporting GL_ARB_conservative_depth. (Related to commit 4d6a132 and commit 39f9483.) 2018-12-30 02:12:54 -08:00