Improved threaded VDP1 rendering
The old threaded VDP1 rendering interfered with VDP1 timings and caused issues in a few games (#233). With the new design, this is no longer the case - the VDP1 logic and timings are still driven by the emulator thread, but the drawing itself can be moved to a dedicated thread (or a GPU renderer, eventually). This option is now enabled by default as it brings up to 30% performance boost depending on how VDP1-heavy the game is. The old "Include VDP1 rendering in VDP2 renderer thread" option was removed to make way for this implementation.

UI improvements
Save states menus have been split into Load and Save sections to avoid confusion and simplify interactions. Selecting a save state from either menu will also switch the currently selected slot for quick load/save.

The Backup Memory Manager was moved from the File to the System menu, to bring it closer to other system-related actions such as managing cartridges.

Debugger
The memory viewers now have a button to dump the contents of an entire memory region to a file. This can be useful to compare against other emulators or for offline research, disassembly, and more. These dumps are saved to <profile>/dumps/<game code>-<region name>-<base address>-<size in bytes>.bin.

The VDP2 VRAM access delay window now shows the access shift introduced by misaligned timings for a given background layer's character or bitmap data which affects World Heroes Perfect's intro sequence. It's the same issue that causes the full screen pictures in Capcom Generation - Dai-5-shuu Kakutouka-tachi's art gallery to be split.

Changes
New features and improvements
- App: Added "Take Screenshot" action to File menu.
- App: Moved "Backup Memory Manager" action from File to System menu.
- Debugger: Added
Dump memory regionbutton to the Memory Viewer to dump the currently selected region to a raw .bin file in the profile’s dump path. (#678; @mmkzer0) - Debugger: Display VRAM data access shifts separately from CP delays in the VDP2 VRAM access delay window and display them for scroll BGs as well.
- Rewind: Reset rewind buffer on hard resets and whenever the CD Block LLE settings is changed.
- Save states: Separated save states menu into Load and Save to avoid confusion and simplify interactions.
- Updater: Added compile-time flag
Ymir_ENABLE_UPDATE_CHECKSto enable or disable the automatic update checker, including the onboarding process. - VDP1: Reworked renderer code structure. Allows threading without affecting timings and paves way for other rendering backends. (#233)
Fixes
- Settings: Properly reload binds for "increase/decrease speed by 25%".
- Updater: Create
state/updatesfolder before writing.onboardedfile in case the user opts out of automatic update checks. Fixes update check onboarding popup always appearing on startup. (#708) - Updater: Detect nightly -> stable update when the current version matches the stable version.
- VDP1: Reduce VBlank erase timing penalty to fix graphics artifacts in Battle Garegga's options menu. (#649)
- VDP2: Allow bitmap data access during SH-2 cycles. Fixes FMV flickering in Lunar - Silver Star Story, Shin Kaitei Gunkan, and Mechanical Violator Hakaider (#438, #446, #658)
- VDP2: Apply VRAM bank data access shift to scroll BGs. Fixes shifted borders in World Heroes Perfect's demo sequence. (#643)
- VDP2: Disable VRAM access restrictions based on ZMCTL parameters. Fixes missing background graphics in Baku Baku Animal - World Zookeeper. (#646)
沒有留言:
張貼留言