-Fixed getAccessCounters documentation (swapped param order)
-Fixed file watcher not being disabled properly when closing the script window, causing the script to run if changed on the disk, even if the script window is closed
-Prevent file watcher from triggering from writes done by the script window itself (which caused the script to be reloaded 2 or 3 times in a row)
-Fixed UI freezes when using emu.log() on a large table
-Fixed crash when 100k character limit (in the last 500 lines) for script log was reached (out of bounds read/write)
-Added "fps" value to "getState"
-Slightly improved getAccessCounters/getCdlData performance
-Added a new drawPixels API to improve performance when a script needs to draw a lot of individual pixels
Also, minor bug fixes for WS:
-Fixed tilemap viewer for sometimes using the wrong background color
-Fixed the 4-bit RGB color values in the palette viewer having the R and B values swapped
Also fixes presets/clear buttons for NTT, Pachinko & Hypershot, and improves layout for all controller config popups (buttons/borders are aligned, etc.)
-The pachinko/subor mouse/ntt/virtual boy controllers could be selected in the UI for 2p/4p adapters, but did not work at all
-Keybindings for the "custom keys" for some controllers were not working when connected to a 2p/4p adapter
-Pachinko controller did not allow the user to configure the keybindings for NES-style buttons
* Video: Add support for VRR when in borderless fullscreen mode (Windows only) and improve frame pacing
* Fixed debug stats not disappearing when unchecking option in some scenarios
* Changed frame pacing graph scale/logic to show the gap between the ideal pacing and the current pacing (within +/- 2ms)
The Pocket Challenge V2 is an education handheld based on the ASWAN SoC, as used in the WonderSwan. It uses the same boot ROM (with an early exit), but has some implementation changes:
The LCD icon segment area is not present (on the display panel only).
There is no onboard internal EEPROM.
The input keypad layout differs.
The headphone output is always used with a custom onboard DAC, as opposed to relying on the SoC's own PWM DAC for the internal speaker.
This PR implements support for all of this. Support for the PCv2-exclusive cartridge mapper (KARNAK) will be added by a separate PR.
* GB: Link cable support with two local consoles
* GB: Fix crash when color blending is enabled
* GB: Fix formatting
* GB: Link UI fixes, control fixes, audio fixes
Copied from Sour's branch. Also a separate change to use separate savefiles.
* GB: Try to avoid crashes from buffer overflows
* GB: Separate savefiles with linked multiplayer
* GB: Add support for faster link speed
* GB: Move enum to correct file
* GB: Refactor, move serial transfer to function
* -Fixed secondary console sometimes running far ahead of the main console when frame counters did not match (e.g because one console had their LCD disabled longer, etc.) This would cause buffer overflows in the audio buffer.
-Fixed screen tearing when both consoles are not perfectly in sync (because of the LCD being disabled for a different amount of time, etc.)
-Fixed main console not calling PlayQueuedAudio properly mid-frame
-Reuse VS Dualsystem code to merge audio/video when possible/simple and moved that to AvMergeUtilities
Some visual glitches can appear on the secondary screen (for GB) while rewinding, but this can't really be fixed.
* Fixed warning (unused local variable)
* Prevent loading single-console save states when in dual-console modes
* Disable debugger for VS DualSystem's subconsole. Fixes issues when debugging VS DualSystem games
* Code cleanup
* Rework solution to disable debugger on second console to improve performance
Added InternalRunFrame for nes & gb to avoid checking for the presence of the second console after each cpu instruction
* Don't enable the linked GB option by default
* Removed unused function
* Netplay: Force game to reload after updating emulation settings when connecting to the server (or when the host changes game)
This ensures that e.g the GB link cable setting is applied and that the game loads correctly, regardless of the client's link cable settings (otherwise the game could load without the link mode enabled, etc.)
---------
Co-authored-by: Sour <[email protected]>
* SNES: Add Turbo File Twin support
* SNES: Try to make write mode flag more accurate
Hardware tests on Turbo File Twin seem to be showing that if you write data then it stops reporting that the write flag is on, despite letting you write more data
* SNES: Move bit array access to a utility
Also add note about how bit 26 in STF report is not fully verified
* SNES: Add behavior seen when reading without read command
When you turn the strobe on and off outside of a read command, the shift register gets reloaded with the most recently read or written byte
* NES, SNES: Emulator::SaveBattery() for saving console and controller
* Fix range limit in SetBitInArray
* Add notes about unknown aspects of TFII mode
* Add comments to make it clear what's unknown
* STF mode ignores out-of-range addresses
Also allocate _data instead of putting it in the class
* Code: Add auto-formatting rules for C++ projects (clang-format) and enforce code style via "clang-format" and "dotnet format"
* fix ui format warnings
Otherwise, when pushing a new update via the auto-update, all users will be shown the configuration wizard and "lose" their settings, save data, save states, etc. because the new version will create a new MesenCE folder.
This instead allows the application to continue using the Mesen2 folder as-is. If a new installation is done, it'll go inside the MesenCE folder.
Blending even/odd columns only allows fake transparency effects to work while avoiding a blur effect on the picture. This however does not work well in all scenarios (e.g high resolution text in Secret of Mana menus)
This updates the Mesen naming in title bars, the About window, and the default data folder name. It also changes copyright information to note the new contributors, changes the website to MesenCE's GitHub page, and updates the build link.
I'm not convinced I found everything, so a thorough review would be appreciated.
There was previously no auto option that would select the best model a game has any support for and which falls back to the original Game Boy if that's all the game can do. The "Auto (prefer Game Boy)" option would select Game Boy except when given a GBC-exclusive game. The new "Auto (prefer best)" option selects GBC if the game has any GBC support, SGB if it has any SGB support, and GB otherwise. This option is now selected by default.