xemu Changelog

What's new in xemu 0.7.120

Mar 24, 2024
  • pdate metainfo.xml information
  • Some new information is needed by the appstream linter.
  • metainfo.xml extension is preferable over appdata.xml, see https://www.freedesktop.org/software/appstream/docs/sect-Metadata-Application.html#spec-appdata-introduction.

New in xemu 0.7.119 (Mar 10, 2024)

  • ui: Fix FilePicker clear button overlapping select button

New in xemu 0.7.118 (Dec 19, 2023)

  • ui: Support controller peripherals and XMU devices (#1315)
  • Added XMU Settings to the Input Screen
  • Added Peripherals to config
  • Prevent overwriting existing XMUs
  • Added blockdev.h to try to fix the MacOS build
  • Fixed some issues that antangelo pointed out
  • Moved the peripheralType and param vars into the loop
  • Moved fatx.h and fatx.c to uithirdpartyfatx
  • Added Validation for Peripheral Settings
  • Fixed some nits that were pointed out
  • don't pass NULL into xemu_settings_set_string
  • Changes following Matt's recommendations
  • Changes to XMU FilePicker
  • XMU image auto-bind logic refactor
  • renamed peripheralType to peripheral_type
  • removed unnecessary calls to g_strdup_printf and g_free
  • Cleaned up some comments, removed an unnecessary variable
  • handle overwrite prompt in Windows
  • Fixed some code format and style inconsistencies
  • More formatting fixes
  • Fixed a few memory leaks
  • qemu_access: check for Read and Write access
  • Run clang-format
  • Remove unused xemu_new_xmu declaration
  • Fix use after free in rebind code

New in xemu 0.7.117 (Nov 20, 2023)

  • ui: Use only one option for settings window (#1122)
  • rebase code
  • remove unsused item
  • restore "system" displaying on first boot
  • restore popup menu functions (separate commit)
  • restore snapshot function in popup menu
  • get current index value from config file

New in xemu 0.7.116 (Oct 22, 2023)

  • nv2a: Implement ZCLIP_MIN,MAX with gl_ClipDistance

New in xemu 0.7.115 (Oct 18, 2023)

  • Nvnet: Add unicast and multicast filtering

New in xemu 0.7.114 (Oct 16, 2023)

  • Ui: Remember debug video size, position and state across restarts.

New in xemu 0.7.113 (Oct 12, 2023)

  • Prevent selection of HDD image as DVD image

New in xemu 0.7.112 (Oct 12, 2023)

  • Ui: Apply correct snapshot activation action for save menu item.

New in xemu 0.7.111 (Aug 2, 2023)

  • Accel/tcg: Support jit profiling with VTune

New in xemu 0.7.110 (Jul 31, 2023)

  • tcg/i386: Simplify FP ops further when AVX is available

New in xemu 0.7.109 (Jul 29, 2023)

  • Revert "vl: Move input init to exit_preconfig"
  • This reverts commit a5034584c0e81054b44570978c26b42d26715195.

New in xemu 0.7.106 (Jul 28, 2023)

  • nv2a: Left-align surface type in nv2a_pgraph_surface_target trace

New in xemu 0.7.105 (Jul 28, 2023)

  • ui: Add toggle to hide notifications

New in xemu 0.7.104 (Jul 23, 2023)

  • imgui: Set remote to xemu fork

New in xemu 0.7.103 (Jul 22, 2023)

  • Ui: Fix audio debug dialog spacing

New in xemu 0.7.101 (Jul 21, 2023)

  • ui: Update httplib API

New in xemu 0.7.100 (Jul 21, 2023)

  • ci: Add Windows symbols package

New in xemu 0.7.98 (Jul 10, 2023)

  • nv2a: Remove assert on TEXGEN_OBJECT_LINEAR
  • The behavior seems to match HW.
  • [Test](https://github.com/abaire/nxdk_pgraph_tests/blob/main/src/tests/texgen_tests.cpp#L22)
  • ![HW results](https://github.com/abaire/nxdk_pgraph_tests_golden_results/wiki/Results-Texgen#objectlinearpng)
  • Fixes #379

New in xemu 0.7.97 (Jul 9, 2023)

  • nv2a: Compile fix for DEBUG_NV2A enabled

New in xemu 0.7.96 (Jun 18, 2023)

  • Ui: Make aspect ratio config independent, add autodetect.

New in xemu 0.7.95 (Jun 14, 2023)

  • Ui: Blank screen when VGA SCREEN_OFF is set

New in xemu 0.7.94 (Jun 12, 2023)

  • ui: Get Windows product and build number

New in xemu 0.7.92 (Jun 5, 2023)

  • Ui: Move dvd path settings update to lower level for now.

New in xemu 0.7.91 (Jun 5, 2023)

  • build: Discover latest macOS SDK instead of hardcoding.

New in xemu 0.7.90 (May 16, 2023)

  • nv2a: Ignore nop draws in SET_BEGIN_END_OP_END

New in xemu 0.7.89 (May 16, 2023)

  • Ui: Fix FilePicker UAF

New in xemu 0.7.88 (May 2, 2023)

  • Set correct version for macOS bundles
  • Closes #1344

New in xemu 0.7.87 (May 2, 2023)

  • nv2a: Make multiplication by 0 match HW behavior.
  • Fixes #1008
  • The nv2a returns 0 for anything multiplied by zero, including exceptional
  • values such as Inf and NaN. Desktop GPUs do not enforce this, leading to
  • conditions where NaNs wipe out calculations and lead to erroneous behavior.

New in xemu 0.7.86 (Mar 27, 2023)

  • Ui: Add clear button to file picker.

New in xemu 0.7.85 (Mar 7, 2023)

  • nv2a: Don't manually set NV_PFB_CFG0 reg

New in xemu 0.7.84 (Feb 15, 2023)

  • smc: Implement read/write of SMC error code storage

New in xemu 0.7.83 (Jan 18, 2023)

  • xemu.appdata.xml: Add screenshots to appdata file

New in xemu 0.7.82 (Jan 17, 2023)

  • Ci: Fix release double build

New in xemu 0.7.81 (Jan 17, 2023)

  • Ci: Use bot to push releases and trigger site update
  • Apparently using the default actions token will not allow triggering
  • Workflows. Use bot access token instead to publish the release.

New in xemu 0.7.79 (Jan 17, 2023)

  • ci: Prefix AppImage xemu version with 'v'

New in xemu 0.7.78 (Jan 16, 2023)

  • ci: Update xemu-win64-toolchain image tag

New in xemu 0.7.76 (Jan 14, 2023)

  • Ci: Don't use /tmp with cache@v3 on macOS

New in xemu 0.7.72 (Jan 7, 2023)

  • ci: Pin macOS runner to macOS-11 for now

New in xemu 0.7.71 (Oct 11, 2022)

  • Ui: Display MCPX, BIOS MD5 hashes in About view

New in xemu 0.7.70 (Sep 10, 2022)

  • Nv2a: Cache shaders to disk

New in xemu 0.7.69 (Sep 9, 2022)

  • nv2a: Ensure SurfaceBinding.size can always fit surface
  • It is possible to specify a pitch that is smaller than the native size of a surface (i.e., `pitch < width * bytes_per_pixel`). On hardware this is handled gracefully, whereas in xemu it will cause buffer overruns when dealing with swizzling/unswizzling.
  • Fixes #1152
  • [Test](https://github.com/abaire/nxdk_pgraph_tests/blob/main/src/tests/surface_pitch_tests.cpp)
  • [HW Results](https://github.com/abaire/nxdk_pgraph_tests_golden_results/wiki/Results-Surface_pitch)
  • Note that xemu's swizzling behavior still does not match HW with this change,
  • it just prevents the test from crashing.

New in xemu 0.7.66 (Jul 26, 2022)

  • nv2a: Cache texture attributes to avoid resetting unnecessarily

New in xemu 0.7.64 (Jul 19, 2022)

  • nv2a: Ignore pitch check for swizzled textures

New in xemu 0.7.60 (Jul 14, 2022)

  • Nv2a: Match inv_w qualifier to attribute qualifier
  • Calculates both interpolated and flat shaded inv_w so that the appropriate
  • Value may be used when undoing the perspective divide in the pixel shader.

New in xemu 0.7.59 (Jul 14, 2022)

  • Mcpx: Print actual error on OpenAudioDevice fail

New in xemu 0.7.58 (Jul 6, 2022)

  • nv2a: Do not force oFog to 1.0
  • This code was added ~7 years ago in [this commit](https://github.com/xqemu/xqemu/commit/97be3f598683721bc43e354d7804221152e21f02)
  • From what I can see from the [HW test results](https://github.com/abaire/nxdk_pgraph_tests_golden_results/wiki/Results Fog_coord_vec4) the behavior on nv2a is more subtle than the cited `NV_vertex_program` documentation.
  • In practice the register more or less retains its value until it is explicitly modified.[The test(https://github.com/abaire/nxdk_pgraph_tests/blob/4cff2b2ebe49c29eb24caea9c058b3d6ddaa3a16/src/tests/fog_tests.cpp#L43)
  • renders something with an explicitly set oFog.x, then renders again with a shader that does not modify oFog.x but references it in the pixel shader. The value carries over rather than being forced to 1.0.
  • Interestingly, this test is apparently not hermetic; running the other vec4_coord test (that explictly set various components of oFog) lead to unusual behavior where the fogging effect is not uniform across all vertices, despite never being set. Even more interestingly, re-running the test once it's in this state will often produce variations as to which vertices are apparently usinga stale/incorrect fog value.

New in xemu 0.7.57 (Jul 3, 2022)

  • nv2a/psh: fix shader compilation errors
  • dotSTR had an extra bracket at the end, and an incorrect variable type.

New in xemu 0.7.56 (Jul 2, 2022)

  • nv2a: Fix incorrect use of bytes for GL_UNPACK_ROW_LENGTH
  • `GL_UNPACK_ROW_LENGTH` is supposed to set the length in pixels, but the DXT
  • path is setting it to bytes, causing it to read beyond the end of the texture.
  • [Reference](https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glPixelStore.xhtml)
  • Fixes #1002

New in xemu 0.7.55 (Jun 26, 2022)

  • nv2a: Fix missing emit_vertex param

New in xemu 0.7.53 (Jun 26, 2022)

  • nv2a: Store shading mode in CONTROL_3

New in xemu 0.7.49 (Jun 25, 2022)

  • nv2a_vsh_cpu: Fix incorrect ilu input handling due to mismerge

New in xemu 0.7.46 (Jun 25, 2022)

  • nv2a: Implement NV097_LAUNCH_TRANSFORM_PROGRAM.

New in xemu 0.7.45 (Jun 23, 2022)

  • nv2a: Stop passing ShaderState by value

New in xemu 0.7.44 (Jun 21, 2022)

  • Ui: Fix axes, add mspf to advanced video graph

New in xemu 0.7.43 (Jun 21, 2022)

  • nv2a: Reset all draw arrays tracking on expand

New in xemu 0.7.42 (Jun 20, 2022)

  • ui: Fix logo shader texture sampling function name

New in xemu 0.7.40-0 (Jun 19, 2022)

  • ui: Improve logo animation

New in xemu 0.7.39-0 (Jun 16, 2022)

  • ui: Hide currently non-applicable menu items

New in xemu 0.7.36-0 (Jun 15, 2022)

  • nv2a: Gracefully ignore draws with no target bindings.

New in xemu 0.7.32-0 (Jun 11, 2022)

  • nv2a: Assert on unimplemented writable const register path

New in xemu 0.7.31-0 (Jun 10, 2022)

  • nv2a: Increase DrawArrays buffer size
  • Fixes #364

New in xemu 0.7.30-0 (Jun 10, 2022)

  • Fix clip region at renderscales > 1.

New in xemu 0.7.29-0 (Jun 8, 2022)

  • ui: Make monitor text selectable

New in xemu 0.7.28-0 (Jun 4, 2022)

  • nv2a: Fix oFog write behavior with non-x destination masks.

New in xemu 0.7.25-0 (May 31, 2022)

  • nv2a: Fix combiner single stage color+alpha interdependence

New in xemu 0.7.24-0 (May 30, 2022)

  • Ui: Make keyboard controller scancode map configurable.

New in xemu 0.7.21-0 (May 26, 2022)

  • Nv2a: Emulate floating Z24S8 with fixed Z24S8

New in xemu 0.7.20-0 (May 26, 2022)

  • nv2a: Implement shadow comparison for PROJECT2D mode

New in xemu 0.7.19-0 (May 25, 2022)

  • Nv2a: Migrate surface dbg messages to trace framework

New in xemu 0.7.18-0 (May 24, 2022)

  • Nv2a: Support compressed 2D texture padding

New in xemu 0.7.17-0 (May 20, 2022)

  • nv2a: Invalidate zeta when constructing non-matching color surface.

New in xemu 0.7.15-0 (May 19, 2022)

  • Nv2a: Add pitch to surface debug info

New in xemu 0.7.12-0 (May 18, 2022)

  • nv2a: Add SHADOWCTL to shader dirty test

New in xemu 0.7.6-0 (May 11, 2022)

  • nv2a: Process pending surface uploads before render to texture

New in xemu 0.7.3-0 (May 10, 2022)

  • UI: Use SDL_GL_GetDrawableSize when rendering framebuffer.

New in xemu 0.7.2-0 (May 8, 2022)

  • menubar.cc: Add F12 Shortcut to Screenshot.

New in xemu 0.6.6-0 (May 2, 2022)

  • tomlplusplus: Update submodule