Altirra 4.01 Beta XVII (17) 18/07/2022 (Bugfix)
Altirra 4.01 Beta XVI (16) 18/07/2022
- Audio: Added option downmixing stereo POKEY output to mono
- Disk: 810/1050 full drive emulations now warn on attempts to use double-sided disks that can't be read in those drives.
- Cassette: Fixed FLAC decoder errors with some files on ARM64 version only.
- 810/1050 full disk drive emulators now have tighter validation for disk geometry: they will now warn when attempting to use 80 track, double sided or 26 sector per track double density disks.
- Fixed unintended change in GTIA speaker volume and added an advanced config var for overriding the volume (audio.speaker_vol_override).
- Added option for downmixing stereo audio to mono.
- Fixed some crashes related to the adaptive vsync profiler and calibration UIs at small window sizes.
- Fixed bugs in the profiler's Copy as CSV option causing double context menus and incorrect data dumps.
Altirra 4.01 Beta XV (15) 07/07/2022
Spiky Harold (Firebird, 1986). Najbardziej irytująca, wkurzająca i frustrująca gra na Atari... przynajmniej dla mnie. Z drugiej strony była to jedna z lepszych gier z tamtych czasów;)
- Display: Direct3D 11 and borderless mode are now enabled by default for new installs.
- UI: ANTIC/GTIA visualization options have been moved to the Debug menu.
- Debugger: Randomize Memory on EXE Load option now logs when randomization occurs and uses the global randomization seed.
- Display: Added adaptive speed option to lock to refresh rate for reduced latency.
- Debugger: Fast boot hook now marks memory as preset to avoid tripping false uninitialized memory errors when heat map trapping is enabled.
- Display: Fixed crash when forced out of D3D11 exclusive full screen mode by OS due to an overlapping window.
- UI: Fixed non-native file browser not working with UNC paths.
- View > Screen Effects now has pertinent links to Configure System or Windows Settings when HDR is supported but not enabled.
- Added a calibration screen to tune white/black levels and check HDR rendering.
- Fixed corrupted text rendering in HDR mode.
- Fixed the "use system SDR intensity" HDR settings not saving.
- Fixed the non-native (exclusive full screen) file browser corrupting UNC network paths.
- Debugger: Fixed heat map triggering bogus traps in the OS with fast boot enabled, due to main memory not being marked as initialized when skipping the memory test.
- Debugger: Randomize-on-EXE-load now uses the global seed, and prints a warning to the console when it activates.
- Fixed a random crash that occurred when the emulator was forced out of D3D11 exclusive fullscreen by Windows due to being covered by another program.
- High-precision timers are now used on Windows 10 1803+ for more stable emulator timing.
- Fixed D3D9 code running unnecessary ticks in the background.
- Major rework of D3D11 display code for improved latency tracking and reporting.
- Added an adaptive vsync option (D3D11 only).
This version has some pretty major rework of the D3D11 rendering path to further reduce latency. For best results, you will need to have D3D11 enabled in Options (now default for new installs), and be running on Windows 8.1 or later. A change to the waitable latency object handling helps avoid 1 frame of latency after mode changes or accessing menus, and another change to leverage frame statistics to track vsync times helps schedule presentation times to drop ~0.5 frames of latency or so. There is also a new option in Configure System > Speed to adjust the emulation speed to match vsync, which in optimum conditions (full-screen with stable timing) can drive latency down to half a frame on average. This only works when the refresh rate is close to the ideal rate (60Hz for NTSC, or 50Hz for PAL).
There are also a bunch of related new config vars to debug this, if needed. The most pertinent one is an old one, display.show_debug_info, which displays some more statistics now:
"Present latency" now measures the latency from both Direct3D and the DWM, when frame statistics are available. In optimal conditions in exclusive full-screen mode or when the DWM is able to devote an overlay (Hardware: Independent Flip), Altirra will be able to drive this down below 1 frame (<16.7ms). When DWM compositing is involved, this will unfortunately always be at least ~1.5 frames and sometimes even 2.5 frames on average. I spent days fighting this with GPUView and various strategies and there is no way around this, the Windows 10 DWM has a bug where sometimes it will stack two frames into its flip queue and drive the latency up for everything one frame higher than necessary. Windows 7 in classic theme avoids this delay as there is no composition, but there are some pretty major problems in DXGI in that version such that windowed vsync is still less effective there than it is on Windows 8.1+.
On the other hand, after extensive testing, I've gotten better at River Raid and Kaboom!. Still suck at Alley Cat, where apparently my issues were not latency related.
There are also some changes to HDR rendering, although aside from the calibration screen there's no actually much different. I went down that particular rabbit hole while diagnosing rendering issues on a new LG27GN800B monitor, which turns out to have quite worse HDR rendering than my existing LG27GL83A due to a much more aggressive tone mapping curve which makes everything muddy. The new HDR calibration screen helps expose this. I also found out that it is possible to influence the tone mapping curve by setting the MaxCLL and MaxFALL values sent to the monitor, but it's not clear if this is helpful -- most of the time it just makes the monitor tone map more aggressively and try to lie even more about how bright it can actually display. But at least the calibration screen makes it easier to tell what's happening, and whether you can actually get better colors in HDR mode or not.
Altirra 4.01 Beta XIV (14) 18/06/2022
Command Remade (Shanti77,2022)
- AltirraOS: Improved compatibility of TIMFLG usage and initial register values on tape boot.
- Cassette: Accelerated C: loads now set TIMFLG.
- Debugger: Improved load speed of source windows.
- Debugger: Fixed symbol-related crash when opening source windows with deferred symbol loads.
- Debugger: Fixed Step Out/Into commands not using source mode in an undocked source window.
- PerfAnalyzer: Tape channels now show proper jumps when accelerated loads occur.
- UI: Progress dialogs are now suppressed in exclusive full screen mode to avoid popping out of full screen when loading tapes.
- SIO acceleration routines now set/clear TIMFLG. This fixes the Boulder Dash tape above with accelerated C: enabled.
- Fixed busted tape signal trace channels in Performance Analyzer after an accelerated load.
- Improved load speed of large text files into debugger source windows.
- Fixed a crash when opening source windows with deferred symbol loads.
- Fixed Step Into and Step Out not using source mode when used in a source window that is undocked.
- AltirraOS updated to 3.14: now uses correct values for TIMFLG, and improves compatibility of undocumented register state on tape boot to fix another variant of the above loader. (These seem to have been sold from some store in Poland? Or maybe a BBS....)
- Load progress dialog is suppressed in exclusive full-screen mode to avoid popping out of full screen when loading tapes.