Commit Graph

  • a0386e535c Cocoa Port: Fix mixed retina/non-retina displays bug BayLee4 2024-10-10 17:57:21 +0200
  • 72315fa339 Make gamepad key configuration non-blocking thesource 2024-10-10 11:42:27 +0300
  • 1cf7c37896 Unbind joypad keys by default thesource 2024-10-10 09:44:09 +0300
  • 8fa0affab1
    Merge pull request #839 from intra0/master zeromus 2024-10-04 21:31:38 -0400
  • e7442cc999
    Merge pull request #841 from lifehackerhansol/cmdline-misleading-indentation zeromus 2024-10-01 05:43:24 -0400
  • fa1879f9a7
    commandline: avoid misleading indentation lifehackerhansol 2024-09-29 13:45:34 -0700
  • bb1b6a1c80
    Update org.desmume.DeSmuME.metainfo.xml intra0 2024-09-25 21:54:14 -0500
  • 91196788eb fix more screw-ups in unicode support. fixes #828 zeromus 2024-08-31 22:34:38 -0400
  • 8f9c6892d5 OpenGL Renderer: Fix an initialization issue with the clear image shader program when running the 3.2 Core Profile renderer for a driver that only supports OpenGL v3.2. (Regression from commit e2a25e2. Fixes #827.) rogerman 2024-08-28 10:33:27 -0700
  • 42667020d8 fix ensata emulation? (re: #184) zeromus 2024-08-27 04:15:00 -0400
  • 64132f765a OpenGL Renderer: Fix a bug where having Edge Mark enabled could cause fragments to disappear. (Regression from commit f910c61.) rogerman 2024-08-22 19:26:39 -0700
  • 00b8df1b00 OpenGL Renderer: Add entry point for glClientWaitSync, fixing compiling on Windows. (Regression from commit f910c61.) rogerman 2024-08-15 17:50:53 -0700
  • f910c6197c OpenGL Renderer: Add new rendering resource classes, and do some misc. refactoring. - Using the new OpenGLGeometryResource and OpenGLRenderStatesResource classes, the 3.2 Core Profile and ES renderers now use triple-buffering for all geometry rendering resources and framebuffer constants. - Delete the InitFinalRenderStates() method, which has been obsoleted over the years. Its functionality has been rolled into the InitExtensions() and _RenderGeometryLoopBegin() methods. rogerman 2024-08-15 16:49:42 -0700
  • f84a804499 OpenGL Renderer: Fix bug where clear images were Y-flipped. (Regression from commit 3db6d56.) rogerman 2024-08-13 19:49:34 -0700
  • 8197174d69 OpenGL ES Renderer: Fix a bug where the final output framebuffer is Y-flipped. (Regression from commit 3db6d56.) rogerman 2024-08-12 13:44:58 -0700
  • 3db6d5676c OpenGL Renderer: Do some more code cleanup and tune-ups. - In the 3.2 Core Profile and ES renderers, synchronization of vertex info uploads now occurs at a more reasonable time. - Geometry rendering is now Y-flipped by default, eliminating the need to Y-flip the final output framebuffer under all conditions. - Legacy OpenGL no longer needs to perform any color conversion of the final output framebuffer if FBOs are supported. - Rename some functions and variables to better describe what things are doing now. rogerman 2024-08-12 11:23:23 -0700
  • 9bbfca527a Remove redundant and currently unused Makefile. rogerman 2024-08-10 15:53:25 -0700
  • 04f97d5755 OpenGL ES Renderer: Fix a major performance bug on many ARM-based mobile devices with integrated GPUs. rogerman 2024-08-10 15:06:30 -0700
  • ea648f7110 OpenGL Renderer: Do some minor tune-ups. - Remove some methods in OpenGLRenderer_2_0 and OpenGLRenderer_2_1 that have negligible contribution to either performance or code simplicity. - OpenGLRenderer_1_2, OpenGLRenderer_2_0, and OpenGLRenderer_2_1 are now instantiated with their specific variant IDs. - Calls to malloc_alignedCacheLine() have been replaced with the more appropriate malloc_alignedPage(). - Do some misc. code cleanup. rogerman 2024-08-10 13:48:13 -0700
  • c75c1ce2c3 Linux Ports (All): Update Autotools and Meson scripts to add JIT support for ARM targets. - Also fixes build errors related to explicitly building SIMD files for colorspacehandler. Don't do it! The proper way is to simply include "colorspacehandler.cpp" alone and let the compiler's preprocessor macros determine which SIMD file to use. rogerman 2024-08-09 12:55:13 -0700
  • 9e872d48c0 CLI port: Allow to map NDS keys to joystick buttons. Bryan Hernández 2024-08-08 00:40:06 -0400
  • 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