Commit Graph

  • 2e01c0a840 Linux Ports (All): Update the Code::Blocks project file to add build targets for AArch64. Also do some other misc. updates. - Release builds now use -Ofast optimization instead of -O3. - Release builds no longer strip their symbols. This will be needed for profiling and debugging. rogerman 2024-08-08 17:34:26 -0700
  • b799d94762 Colorspace Handler: Fix compiling for strict NEON. - We could always use -flax-vector-conversions, but let's try to stay disciplined for now. rogerman 2024-08-08 12:11:20 -0700
  • 176e38ce2f OpenGL Renderer: Simplify the code by removing the references to multiple output shaders, since commit 0c7cb99 has obsoleted them. rogerman 2024-08-07 12:20:35 -0700
  • c5ab8a6ef6 OpenGL ES Renderer: Fix a bug where RGBA6665 color output would fail. (Regression from commit de9fc5a.) - Also update some comments. rogerman 2024-08-06 23:48:54 -0700
  • 8277f2febd
    Merge b4225f436a into de9fc5ab75 windwakr 2024-08-07 01:05:45 -0400
  • de9fc5ab75 OpenGL Renderer: Remove the additional FBOs that were introduced in commits 60385bd, 8b5ac56, and 3ef9271 in an attempt to fix rendering on old GPUs like the Intel HD 4000. (Fixes #820.) rogerman 2024-08-06 21:54:39 -0700
  • 5baeb02754 Cocoa Port: Fix OpenGL context creation on older macOS. rogerman 2024-08-03 16:15:02 -0700
  • d7dcc85d87 GTK / GTK2 Ports: EGL contexts running legacy OpenGL no longer require the EGL_KHR_surfaceless_context extension. rogerman 2024-08-03 11:14:55 -0700
  • 79f3f94099 GTK2 Port: Set the audio volume in the same way as the GTK port so that the audio volume is consistent between the two ports. rogerman 2024-08-03 10:13:41 -0700
  • 9aa2ddfc88 Linux Port (GTK/GTK2): Remove the requirement for libGLX.so when requesting a GLX context since libGL.so is all we need here. - Also do some minor code cleanup in glx_3Demu.cpp rogerman 2024-08-02 12:10:21 -0700
  • 4427b863ad Linux Port (GTK/GTK2): Fix compiling in glx_3Demu.cpp. - Also fix a typo in egl_3Demu.cpp rogerman 2024-08-01 23:02:58 -0700
  • 15f5b169cc Video Filters: Improve performance of Deposterize and XBRZ CPU-based filters. (Based on PR #631.) - Special thanks to @m42a for the inspiration on this code! rogerman 2024-08-01 21:07:24 -0700
  • be51e41c04 Ugh, let's try fixing the last stubborn Meson build script... rogerman 2024-08-01 18:00:54 -0700
  • 46990f2d85 Fix some issues with Meson build scripts. (Regression from commit ca566eb.) rogerman 2024-08-01 17:51:12 -0700
  • ca566eb11b OpenGL Renderer: Finalize all renderer-client integration to "just work". - These changes now presume that standard OpenGL and OpenGL ES are mutually exclusive. We will NOT support running a standard OpenGL context and an OpenGL ES context in the same process. - Clients must explicitly request supporting the OpenGL 3D renderer in their build configuration. Build configurations must define ENABLE_OPENGL_STANDARD (replacing the HAVE_OPENGL macro) or ENABLE_OPENGL_ES. If neither macro is defined, then the OpenGL 3D renderer will be assumed unavailable. - Meson and Autotools now use better header/library checks for OpenGL functionality with their associated context type. - Add a new Code::Blocks project file that can make builds for CLI, GTK, and GTK2. - GTK and GTK2 ports now have the option to run a legacy OpenGL context, a 3.2 Core Profile context, or simply choosing the best context automatically like before. - GTK and GTK2 ports have GLX and EGL as new context types. OSMesa and SDL have been updated to the latest design pattern. - GTK and GTK2 ports can now be configured (via Meson or Autotools) to use a GLX, OSMesa, EGL, or SDL context. - OSMesa contexts are now marked as deprecated. I don't know of anyone who still uses them, and I've never been able to get it to work correctly for years. Now that we have GLX contexts for compatibility purposes, OSMesa contexts are now completely redundant. - Fix a bug with the GTK port where ancient GPUs without FBO support can still run framebuffers at custom sizes. - For POSIX ports, move all "avout" and context creation files to the "shared" directory for better file organization. rogerman 2024-08-01 17:08:01 -0700
  • 0a78fa2a2b OpenGL Renderer: Fix a few bugs here and there. - Fix a compiling bug for ES due to missing tokens. - Fix Fog and Edge Mark feature availability when running legacy OpenGL. (Regressions from commit 0c7cb99 and commit 8b5ac56.) - glDrawBuffer() now determines its own algorithm at runtime instead of at compile time. This change is being done to be consistent with all of the other Standard vs ES changes. rogerman 2024-08-01 00:11:05 -0700
  • 2f177d19a2 Cocoa Port: Update OpenGL renderer integration code to reflect current design patterns. rogerman 2024-07-26 14:56:36 -0700
  • 4c90c2d9ee OpenGL ES Renderer: Finalize the last remaining bug fixes so that the ES renderer can work "out of the box". - Respect the draw buffers ordering rules that are unique to ES. - Report the actual OpenGL variant being requested when initializing the renderer. - Add oglrender_deinit() function pointer so that clients can properly handle the destruction of their associated context resources at the correct time. - Certain internal OpenGL info is now assigned at run time instead of at compile time. This change now allows any of the OpenGL renderers to run side-by-side. rogerman 2024-07-26 11:10:50 -0700
  • d6532b9e91 OpenGL ES Renderer: Fix TBO-based polygon state uploading. rogerman 2024-07-24 15:28:56 -0700
  • d58c0e9331 OpenGL Renderer: Oops! Fix a compiling issue introduced in commit e2a25e2. rogerman 2024-07-23 21:39:07 -0700
  • e2a25e2412 OpenGL Renderer: Fix various rendering bugs. - Fix a potential unaligned access crashing bug in ES when clear images are to be rendered. - Fix an ES bug where clear images would fail to render when MSAA is enabled. - Fix a legacy OpenGL bug where toon table colors were not ignoring their alpha bit, according to GBATEK. rogerman 2024-07-23 21:28:15 -0700
  • f323dc464f Windows Port: Fix bug where the OpenGL 3D renderer would fail to initialize at program startup. (Regression from commit 76fe5f7. Fixes #815.) rogerman 2024-07-22 22:47:29 -0700
  • 8e77a8d9f1
    Merge pull request #818 from cyanea-bt/windows_paths zeromus 2024-07-22 19:43:37 -0500
  • 5754425458 Windows Port: Fix empty defaults for path settings. (Regression from commit 3511e14. Fixes #817.) cyanea-bt 2024-07-23 01:57:59 +0200
  • bd1f988741 Fix OpenGL renderer init failure. (Regression from commit 76fe5f7. Fixes #815.) cyanea-bt 2024-07-22 21:20:52 +0200
  • 12ed7dd054 Colorspace Handler: Fix alpha detection logic in ColorspaceConvert5551To8888_*() and ColorspaceConvert5551To6665_*(). rogerman 2024-07-21 21:02:50 -0700
  • 368cd49fb6 OpenGL Renderer: Tighten up some code related to clear image. rogerman 2024-07-20 22:54:44 -0700
  • 3ef927100b OpenGL Renderer: Fix some longstanding graphical glitches related to running Edge Mark and Fog with MSAA. - These graphical glitches are resolved only when running 3.2 Core Profile with the GL_ARB_sample_shading extension, available on all modern GPUs. - Do some minor optimizations to the Edge Mark and Fog shaders. - Also fix an FBO attachment bug in legacy OpenGL that was introduced in commit 8b5ac56. rogerman 2024-07-20 20:49:44 -0700
  • 8b5ac56d66 OpenGL Renderer: More FBO rework. rogerman 2024-07-19 14:38:05 -0700
  • 51622bbcd2
    Merge branch 'TASEmulators:master' into master Max Fedotov 2024-07-19 10:22:01 +0300
  • 60385bd099 OpenGL Renderer: Rework how the output framebuffers work. - The output framebuffers now bind their own FBOs rather than changing draw targets with glDrawBuffer(). - Rework the general FBO management. - Legacy OpenGL now outputs native RGBA color if FBOs are supported. This should give a minor performance increase on older GPUs. - The fixed-function pipeline can now flip the framebuffer on GPU. This greatly reduces the CPU usage when doing the final color conversion and gives a significant performance increase on ancient GPUs. rogerman 2024-07-18 21:45:00 -0700
  • 811e1de45e OpenGL Renderer: Oops! Roll back some internal test code that accidentally slipped into commit 0c7cb99. rogerman 2024-07-18 12:46:11 -0700
  • 3e650f2f73 OpenGL Renderer: Add entry point for glBlendColor, fixing compiling on Windows. (Regression from commit 0c7cb99.) rogerman 2024-07-18 12:26:53 -0700
  • 0c7cb99d78 OpenGL Renderer: Greatly simplify the fog rendering pass. - There is no more need to switch to the working texture as the destination for the fog output. This change will be essential for future commits. - The dual-source blending method has been obsoleted and removed. - FBOs are no longer required for the fog feature, easing requirements for ancient GPUs. - Ancient GPUs may see a small performance benefit due to shader simplification. rogerman 2024-07-18 12:17:25 -0700
  • a7c139b7b4
    Merge branch 'TASEmulators:master' into master Max Fedotov 2024-07-18 22:06:38 +0300
  • 70fef83ded OpenGL Renderer: Fix bug when the screen wasn't being cleared properly when no polygons are being sent to the renderer. (Regression from commit 241ca96.) rogerman 2024-07-16 16:15:47 -0700
  • ff9231bb34 OpenGL Renderer: 16-bit texture data that is converted to 32-bit is now byte-swapped correctly on big endian systems. rogerman 2024-07-15 23:09:53 -0700
  • ab1d37a44f Colorspace Handler: Fix compiling on AltiVec systems. (Regression from commit 586aea5.) rogerman 2024-07-15 23:07:24 -0700
  • cc0b3ed00d Cocoa Port: Update the OpenGL blitter code to reflect the current code pattern in OGLRender.h. - Centralize all header includes into OGLDisplayOutput.h. - Update all extension versions of OpenGL functions/tokens that would be core in OpenGL v1.5. rogerman 2024-07-15 16:52:43 -0700
  • 80694cd966 OpenGL ES Renderer: More ES fixes. - Change the remaining FBO attachments that I missed the last time to use RGBA8 internal format. - Fix picky ancient drivers that won't accept GL_RED as a texture internal format. It has been changed to GL_LUMINANCE. - Fix picky ES drivers that demand that the external format used in both glTexImage2D() and glTexSubImage2D() are exactly the same. - OpenGL ES doesn't support GL_UNSIGNED_SHORT_1_5_5_5_REV for texture data, and GL_UNSIGNED_SHORT_5_5_5_1 is incompatible with our data. So instead, all 16-bit data will be converted to 32-bit LE before uploading it via the textures, and such ES textures will now take GL_UNSIGNED_BYTE format. - Remove the #include for EGL/egl.h in OGLRender.h, since EGL shouldn't exist at this level of the code stack. rogerman 2024-07-15 16:45:21 -0700
  • 586aea5310 Colorspace Handler: Add new functions for 16-bit to 18-bit and 32-bit color conversion, now respecting the 16-bit color's alpha bit. - ColorspaceConvert5551To8888() - ColorspaceConvert5551To6665() - ColorspaceConvertBuffer5551To8888() - ColorspaceConvertBuffer5551To6665() - Also rename the existing 16-bit color conversion functions to help further distinguish the functions from one another. rogerman 2024-07-15 16:24:02 -0700
  • 4b0805e139
    Windows Port: Fix yet another compiling issue related to the OpenGL context. (Fixes #811.) Roger Manuel 2024-07-15 10:00:38 -0700
  • 3a31d0d726 Tabs/spaces and some tweaks thesource 2024-07-15 12:22:59 +0300
  • 9a75aabe07 Fix GLES initialization thesource 2024-07-15 11:20:11 +0300
  • 8e52190221 GTK: add OpenGL ES support thesource 2024-07-15 10:59:21 +0300
  • 15a6e51739 OpenGL Renderer: Add support for Fog, Edge Mark, and on-GPU framebuffer color conversion for ancient GPUs that have support for shaders and FBOs, but lack support for GL_EXT_framebuffer_blit. rogerman 2024-07-14 19:38:29 -0700
  • de62116cc8 Windows Port: Fix OpenGL renderer init failure. (Regression from commit 76fe5f7. Fixes #810.) rogerman 2024-07-14 17:22:47 -0700
  • 241ca96cf1 OpenGL Renderer: Fix issues that would throw a GL error. - glTexParameteri() with GL_TEXTURE_2D_MULTISAMPLE throws INVALID_ENUM when trying to assign a sampler-related state, so these calls have been removed. - glMapBufferRange() throws GL_INVALID_OPERATION if the buffer size is 0, so check for this condition first. rogerman 2024-07-13 10:43:04 -0700
  • aaf88d9f14 OpenGL ES Renderer: More ES tune-ups. - Any ES-specific error messages are now reported as "OpenGL ES" instead of "OpenGL". - Explicitly declare the internal format of all textures and RBOs used as FBO attachments as "GL_RGBA8" instead of the generic "GL_RGBA". This may fix some extremely picky ES drivers that would throw GL_INVALID_ENUM if we don't use a sized internal format. - Hard code the read pixels format as GL_RGBA and the read data type as GL_UNSIGNED_BYTE. It is meaningless to rely on GL_IMPLEMENTATION_COLOR_READ_FORMAT and GL_IMPLEMENTATION_COLOR_READ_TYPE since we are reading from our own FBOs that are hard coded to GL_RGBA8 format. - Require that OpenGL ES contexts support the GL_OES_surfaceless_context extension, since we are doing offscreen rendering strictly on FBOs only. This extension has been around for a very long time, and so this serves as a kind of compatibility check. rogerman 2024-07-12 15:41:09 -0700
  • d480f95d79 Cocoa Port: Fix yet another crash-on-exit bug that could happen when running on an older system. rogerman 2024-07-12 12:00:49 -0700
  • dd88556d53
    CI: update github workflows (#809) SimonAfek 2024-07-11 17:38:52 +0200
  • 4dd29dbf7b build_win.yml: Update deprecated actions SimonAfek 2024-07-11 14:22:36 +0200
  • b503a4561d build_win.yml: Update runner image + remove vs-version parameter from setup-msbuild action SimonAfek 2024-07-11 14:22:19 +0200
  • fe2d43f722 build_interface.yml: Remove unnecessary packages from macOS "brew install" line to address warnings SimonAfek 2024-07-11 14:19:44 +0200
  • 9ade462ec5 build_interface.yml: Update deprecated actions SimonAfek 2024-07-11 14:17:58 +0200
  • 96b139870d build_interface.yml: Update runner images SimonAfek 2024-07-11 14:17:36 +0200
  • 0026927c4a build.yml: Update deprecated actions SimonAfek 2024-07-11 14:14:22 +0200
  • 4f85c6ab4a build.yml: Update runner images SimonAfek 2024-07-11 14:08:41 +0200
  • b0aa98ebf2 Merge branch 'master' into safek_master SimonAfek 2024-07-11 13:59:20 +0200
  • 00dd6fb97a OpenGL ES Renderer: Use the proper ES extension header, and also avoid double #defining some of the tokens. rogerman 2024-07-10 21:53:49 -0700
  • bb3011c262 OpenGL Renderer: Return to a more traditional method of doing texture reads in shaders, effectively removing dependent texture reads where appropriate. - This change won't affect standard OpenGL on a desktop PC, but may improve performance on lesser GPUs trying to run OpenGL ES. rogerman 2024-07-10 16:01:13 -0700
  • 86a29d768a OpenGL ES Renderer: Do some minor changes/fixes. - Fix a bug where _isShaderFixedLocationSupported wasn't being set to true, causing shaders to fail. - OpenGL version checks now account for non-compliant ES drivers that contain text before the version number. - Manually set the default read/draw buffers for all FBOs upon creation. We shouldn't need to do this, since they should always be set later, but just in case... - Add missing GL_BGRA macro. - Tidy up the OpenGL naming in some error strings. rogerman 2024-07-10 13:59:02 -0700
  • 3a6f2f6dc5 OpenGL ES Renderer: Add a new OpenGL ES 3.0 renderer. rogerman 2024-07-09 23:00:27 -0700
  • 0e88f9aa94 OpenGL Renderer: Final changes for OpenGL ES compatibility. rogerman 2024-07-09 22:03:33 -0700
  • 384854f6e7 OpenGL Renderer: More updates to the 3.2 Core Profile renderer to be more cross-compatible with OpenGL ES 3.0. - Add support for fixed locations in shaders for OpenGL 3.3 and later. - The fog density table texture is now a 2D texture instead of a 1D texture. - Fix a memory leak where the polygon state texture wasn't being deleted upon the destruction of the OpenGLRenderer object. rogerman 2024-07-09 01:18:50 -0700
  • 7dbece1082 OpenGL: Do some minor changes to the 3.2 Core Profile renderer to make it more cross-compatible with OpenGL ES 3.0. - PBO handling now works via glMapBufferRange() instead of glMapBuffer(). - Polygon states can now be uploaded using plain integer textures. 64k UBOs and TBOs are no longer required. rogerman 2024-07-06 16:20:53 -0700
  • 09090e93f9 GFX3D: Change POLYLIST_SIZE to 16384 to ensure proper memory alignment with buffers based on CLIPPED_POLYLIST_SIZE and VERTLIST_SIZE. rogerman 2024-07-06 13:58:05 -0700
  • c962c550e7 OpenGL: Handle legacy functions and tokens more gracefully for OpenGL variants that may not have them. rogerman 2024-07-05 18:13:43 -0700
  • 76fe5f758c OpenGL: More changes in preparation of OpenGL ES. - Slightly change the names of attachment defines so that they can be distinguished from the native OpenGL attachment defines. - The minimum version driver check now accounts for OpenGL ES. - OpenGLRendererCreate() can now handle any possible OpenGL variant, as declared in the OpenGLVariantID enum. - Framebuffer read backs may now assigned their format and data type. (Legacy OpenGL assigns the format as GL_BGRA, while 3.2 Core Profile assigns the format as GL_RGBA.) rogerman 2024-07-03 16:55:47 -0700
  • ba56bbc7c2 OGLRender_3_2.cpp... try again... rogerman 2024-07-03 13:05:43 -0700
  • 3ec0b0c2e1 OpenGL: Continue preparation for adding OpenGL ES. (Related to commit 086980d.) rogerman 2024-07-03 13:01:17 -0700
  • fc6ff8edbd GPU: Fix a bug on big-endian systems where setting the backdrop color could cause a crash. rogerman 2024-07-02 01:35:10 -0700
  • fe0ae83c40 Cocoa Port: Fix a longstanding, yet rare, crash that may occur when quitting the app. rogerman 2024-07-02 00:16:46 -0700
  • d4163a1893 OpenGL: Fix building on Windows and Linux. (Regression from commit 086980d.) rogerman 2024-07-01 16:26:46 -0700
  • 086980deaf OpenGL: Start reorganizing stuff in preparation for adding new OpenGL variants, such as OpenGL ES. - All platform-specific header includes are now centralized in OGLRender.h. - Remove all ARB and EXT versions of legacy functions (everything pre 3.0). Legacy functions now only reference their core versions. - Do a some minor code cleanup. rogerman 2024-07-01 16:19:05 -0700
  • 76bd1a5e35 Change line-ending style in OGLRender.h from Windows-style CRLF to Unix-style LF. rogerman 2024-06-29 14:50:47 -0700
  • 6309a9c6a7 libretro: So apparently, _XOPEN_SOURCE has to be at the top of the file. Hopefully this makes both GCC14 users and Mac users happy. (Related to commit 779606e. Based on PR #793.) rogerman 2024-06-07 17:16:53 -0700
  • 779606ec2f libretro: Fix building on Mach-based operating systems, otherwise known as Mac OS X and modern macOS (regression from commit 90d0abd). Based on PR #793. rogerman 2024-06-07 16:33:13 -0700
  • ffb8666a8f winport - plumb S9X_JOY_NEUTRAL through inifile: [Controls] DigitalizationThreshold=50 zeromus 2024-06-07 00:24:55 -0400
  • ff6c33a8d6 winport - reduce joystick digitalization threshold from 60% to a more normal 50%. With a too-high threshold, it's impossible to specify diagonals. This is preferable for games without diagonals (else you accidentally crouch when you just meant to walk to the side) instead of 8-way games, so we have to be pretty aggressive about the threshold. But 50 is the more normal choice. zeromus 2024-06-07 00:18:02 -0400
  • 6f64f9a3bc libretro-common: get strlcpy declarations on macOS Adam Sampson 2024-05-13 14:43:58 +0100
  • 90d0abdae0
    Merge pull request #792 from atsampson/xopen-strdup zeromus 2024-05-13 07:59:48 -0500
  • 738298a9e8 libretro-common: fix implicit declarations Adam Sampson 2024-05-13 12:47:10 +0100
  • 4a53a30b91 winport - fix bug where desmume would create working directory using some wrong locale encoding and produce a Pok魯n directory instead of using the Pokémon that was already there (fixes #791) zeromus 2024-05-12 21:33:33 -0400
  • 9515af82b2
    add an issue template for github (#784) rofl0r 2024-04-12 21:39:12 +0200
  • db3c4512c0 add an issue template for github rofl0r 2024-04-09 11:04:41 +0000
  • bae67e2d0c GPU: Implement the DISPCNT register's ForceBlank bit by clearing the line to white if the ForceBlank bit is set. (Fixes #775.) rogerman 2024-03-02 15:18:51 -0800
  • 0a6eca6dce
    GTK: hybrid layout support (#773) Max Fedotov 2024-02-26 22:12:50 +0300
  • 21da26a0da Tabs/spaces mix fix thesource 2024-02-26 19:44:36 +0300
  • a0cd835c93 Simplify rotoscaled_hudedit logic a bit thesource 2024-02-24 10:16:13 +0300
  • c1d014fc5b Fix HUD with new layouts thesource 2024-02-22 10:28:05 +0300
  • 674cacd58d GTK: hybrid layout support thesource 2024-02-21 13:05:10 +0300
  • 45738beb88
    GTK: make OSD scalable (#769) Max Fedotov 2024-02-14 11:20:57 +0300
  • 7529f6bc9f Different pixel formats are handled by different draw target implementations thesource 2024-02-14 10:33:08 +0300
  • 21cceaffe3 Detect screen bytes per pixel instead of hardcoding it, define AGG2D_USE_VECTORFONTS if fontconfig is found. thesource 2024-02-13 18:34:33 +0300
  • a0e50b380c
    Update snapcraft.yaml Kimpe Andy 2024-02-09 14:25:25 +0100
  • 6cb5d40d74
    Update snapcraft.yaml Kimpe Andy 2024-02-09 14:19:54 +0100
  • a42d9ee79d
    Delete patches/desmume-0.9.13-tinyxml.patch Kimpe Andy 2024-02-09 14:08:40 +0100
  • adbc6245bb
    Delete patches/desmume-0.9.13-ppc64le.patch Kimpe Andy 2024-02-09 14:08:30 +0100
  • bd7387b8ca
    Delete patches/desmume-0.9.13-formatstring.patch Kimpe Andy 2024-02-09 14:08:21 +0100