github mupen64/mupen64-rr-lua 1.2.0

12 months ago

Summary

This release primarily focuses on refactoring Mupen64 and bringing its code up to a much higher standard, thereby allowing faster development in the future.

Nevertheless, there are some interesting features and bugfixes, particularly Multi-Frame Advance (which also allows frame-advancing backwards), and reduced dispatcher overhead.

Caution

This release contains one or more critical fixes.

Features

  • Multi-Frame Advance
  • CrashManager Improve crash log
  • CrashManager Add backward-cpp trace
  • CrashManager Add minidump generation
  • DialogService Enhanced dialog answers (#277)
  • Lua Extended savestate api (#298)
  • Lua Add recompile APIs
  • Lua Use inspect.lua for print(), tostringexs()
  • Plugin Extended function API
  • VCR Save cheats alongside movie
  • Improve general error reporting
  • Add system DPI awareness
  • Manual movie backup creation
  • Show country name instead of decimal country code in rom country warning message
  • End captures when movie playback stops or loops
  • Allow setting mouse buttons as hotkey
  • Improve default ffmpeg arguments
  • Pure Interpreter x64 support
  • Better float exception dialog
  • Benchmark API
  • Comparison API
  • Speed down/up/reset menu items and hotkeys

Bugfixes

  • Core Missing MGE functions in core_plugin.h
  • Core Add legacy InitiateControllers declaration to core_plugin.h
  • Config Backwards-compatibility issues with config (#289)
  • Config Use separate config file (config-x64.ini) on x64 builds
  • ConfigDialog Various issues with the new plugin configuration dialog
  • ConfigDialog Incorrect dimensions for plugin config listbox
  • VCR Show_controller_warning using incorrect header ref for warnings
  • Savestates Fix unfinished dma being present when loading an old mupen st while st task queue contains save followed by load on pure interp
  • Savestates Increment slot before saving slot
  • Savestates Undo savestate not being cleared between roms
  • VCR Limit length_samples to actual sample count provided by file
  • Lua Incorrect return from d2d_overlay_wndproc
  • Lua Crash when lua closes during file dialog (#302)
  • Lua Os.exit() corrupting program state until exit
  • LuaRenderer Use-after-free in overlay wndprocs
  • FilePicker Double-free in show_folder_dialog
  • FilePicker Handle filters correctly
  • MovieDialog Potential stack overflow
  • Plugin Fix new config API on non-RSP plugins
  • FilePicker Save dialog being an open dialog
  • FilePicker Missing default extension
  • AVIEncoder Cwd breaking after AVIFileCreateStream call
  • Statusbar Incorrect scale computation causing the last segment to be cut off
  • Disable fast-forward when frame advancing
  • Hotkeys not working on initial window focus
  • Flash of black window content before rombrowser creation
  • 1f delay when capturing d2d lua graphics
  • Incorrect blit order in DCompPresenter::end_present
  • SeekCompleted message not being sent
  • Recent menus behaving incorrectly
  • Lua environments not being destroyed when error happens in the main block
  • Overlapping log contents
  • Potential crash when capturing with lazy renderer initialization enabled
  • Recording over longer avi with shorter one producing merged corrupted file
  • save_options() failing during automated capture
  • Deadlock in FFmpegEncoder::stop()
  • AV when executing dynarec code with DEP enabled
  • Stack overflow in find_savestate_for_movie
  • Recording or playback being stopped when choosing to back out of movie playback following a warning
  • Overwrite prompt blocking ffmpeg execution
  • Incorrect string conversions
  • Incorrect action mapping for ACTION_LOAD_LATEST_ROM
  • Rare crash in D2D or GDI overlay WM_PAINT when stopping scripts
  • Controller warning not showing when it should

Security

  • CWE-119 in dma_si_read/dma_si_write
  • CWE-119 in dma_read_flashram/dma_write_flashram/flashram_command after savestate load

Documentation

  • Lua Update mupenapi.lua

Performance

  • Dispatcher Faster dispatcher (#293)
  • Config Avoid unnecessary copies in ini handling
  • Lua Speed up invoke_callbacks_with_key_on_all_instances by 68%
  • Lua Bump max text layout cache size to 512
  • Lua Cache d2d.get_text_size results
  • Lua Use integers instead of strings as callback registry keys
  • EncodingManager Avoid DC and Bitmap recreation in readscreen_hybrid
  • Add CS_OWNDC to main window style
  • Use multimedia timers for invalidation
  • Perform interval UI updates in new multimedia timer callback
  • Avoid recalculating region on every dacrate changed call
  • Use xxhash instead of adler32

Don't miss a new mupen64-rr-lua release

NewReleases is sending notifications on new releases.