46 Commits
Author SHA1 Message Date
SourMesen 49c9a3a4ba GB: Added overclock and remove sprite limit options (#216) 2026-07-11 17:47:41 +09:00
SourMesen 37de357b75 NES: FDS - Performance improvements (#143)
-ProcessCpuClock was used to check for events that don't need to be checked that often (auto-switch disk + auto fast-forward options). This has been moved to an EndFrame callback.
-This was even slower than intended because of the call to _emu->GetFrameCount() which was, relatively speaking, fairly slow. To improve its performance (since it's used rarely for some things like turbo button processing), a separate GetFrameCount function was added on all console classes, and Emulator::GetFrameCount was also optimized to be faster when called from the emulation thread.

When the auto-switch disk option is enabled, this can improve performance by about 25-30%. When the option is not enabled, this still improves performance by 4-5%.
2026-05-27 04:02:54 -07:00
NovaSquirrelandSour 325c78fcbd GB: Link cable support with two local consoles (#77)
* 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]>
2026-05-15 02:35:27 -07:00
SourMesen e391fd8f9a Code: Add auto-formatting rules for C++ (clang-format) and enforce in CI via "clang-format" and "dotnet format" (#78)
* Code: Add auto-formatting rules for C++ projects (clang-format) and enforce code style via "clang-format" and "dotnet format"

* fix ui format warnings
2026-04-30 06:03:55 -07:00
Sour 36bd1611c6 Debugger: Catch up APU for all consoles when breaking, to allow register viewer/etc. to display up-to-date values 2025-04-03 22:41:27 +09:00
Sour 00a592cade GB: MMM01 support 2024-07-20 19:22:36 +09:00
Sour caaf8ed8e8 GB: Added basic support for gbx files 2024-07-06 17:54:34 +09:00
Sour 25142a9451 GB: Improved STOP behavior for GB/GBC
Fixes the stop_instr and stop_instr_gbc_mode3 tests
2024-01-31 17:50:15 +09:00
Sour 50562407ed GB: Fixed crash when reloading a GBS at the same time as a track change occurs 2023-04-23 14:04:52 -04:00
Sour 2761a5814e UI: Fixed broken screenshots in load/save state menus on NES when a hd pack is loaded 2023-04-22 20:44:25 -04:00
Sour 4ea985f4b5 When a file has an unknown extension, check for known file signatures to pick a core 2023-03-12 16:39:48 -04:00
Sour b954db45b7 GB: APU improvements (passes div_* tests) 2023-03-09 22:10:20 -05:00
Sour 70404866e1 Linux: Fixed compilation warnings 2023-02-01 19:42:53 -05:00
Sour b4618eb47a GB: Allow loading GB/GBC/SGB save states on any of the 3 models 2023-01-30 19:50:05 -05:00
Sour 152abf690b Rename stdafx.h to pch.h 2022-09-08 21:29:52 -04:00
Sour 623892d6c3 Fixed ram init logic to ensure the correct config option is used when loading a game 2022-07-25 22:04:44 -04:00
Sour 77692f323d Fixed behavior when loading an invalid rom while a rom is loaded, fixed battery save behavior when switching between games, fix/cleanup some TODOs 2022-07-21 16:12:24 -04:00
Sour 4937a62fe6 GB: Default to using GBC instead of SGB, added more options for model selection 2022-07-03 20:23:33 -04:00
Sour 9d226d6588 Linux: Fixed build, fixed some clang warnings 2022-05-09 20:53:56 -04:00
Sour 64cd81adcd Code cleanup (removed TODOs) 2022-03-30 19:56:45 -04:00
Sour a79a13eca2 Cheats: Added UI and implemented cheats in core 2022-03-30 12:28:53 -04:00
Sour a31eb671ac Input: Support for barcode readers and tape recorders (NES) 2022-03-15 22:39:30 -04:00
Sour dffbd4921a Refactoring: Renamed SnesMemoryType 2022-01-22 12:16:10 -05:00
Sour 5a48373781 Core: Refactoring - removed GetFrameDelay, GetFps contains the same info 2022-01-22 10:33:39 -05:00
Sour 0d78c064f3 Core: Reduce shared_ptr usage, refactor netplay code to remove static instances 2022-01-21 21:25:33 -05:00
Sour 3d7c826be3 API to get console state + some refactoring 2021-06-30 16:49:52 -04:00
Sour eb527172ce Disassembler performance tweaks 2021-05-27 19:46:16 -04:00
Sour 5f2524fe60 Fix Linux build (and most clang warnings) 2021-05-13 00:25:00 -04:00
Sour 4d092bc07b Tweak load order/priority + use file ext. to select core 2021-05-06 22:37:01 -04:00
Sour 667782647e GBS file support (WIP) 2021-05-06 21:35:09 -04:00
Sour f95c97a579 Audio player UI 2021-05-02 14:39:18 -04:00
Sour 8c1c469250 Audio player freq visualization 2021-05-01 19:20:42 -04:00
Sour c2df0ef553 Console region refactoring/changes 2021-04-27 23:30:00 -04:00
Sour bf27676abb NES - VS system colors + ntsc filter 2021-04-25 21:07:34 -04:00
Sour add120abdb Integrate NES input devices 2021-04-20 22:51:15 -04:00
Sour 7293249cdd Reset / power cycle 2021-04-15 21:32:04 -04:00
Sour 04eb5b1ec6 Fixed some warnings 2021-04-09 23:17:52 -04:00
Sour e27e511558 File reorganization 2021-04-09 21:45:04 -04:00
Sour 2a3a955dc3 Reorganize files (debugger + netplay) 2021-04-09 20:01:50 -04:00
Sour 434ecef8f7 Nes disassembly 2021-04-06 23:10:14 -04:00
Sour b66fbd63a9 Debugger refactoring - compiles, runs, but still broken 2021-04-05 18:58:21 -04:00
Sour 3a802c048c Cleanup GB code, removed "gameboy mode" in snes core 2021-04-05 14:18:54 -04:00
Sour 62efa091a8 Gameboy 2021-04-05 00:05:06 -04:00
Sour 70c9a39f3d Step 3 - compiles 2021-04-04 10:53:17 -04:00
Sour 86eb84cce0 Step 2 - fix includes, etc. 2021-04-03 23:16:13 -04:00
Sour 6cee666602 Step 1 - Move files 2021-04-03 21:09:05 -04:00