Version 0.9.2
This version fixes some important bugs inside the core of Keystone, added some new bindings & made some minor improvements. All users of Keystone are encouraged to upgrade to v0.9.1.
Has it already been an entire month? It must have been, because
MAME 0.228 is ready today! We’ve added support for two very rare
arcade games this month. The first is Namennayo, an overhead-view
obstacle course game making unauthorised use of Satoru Tsuda’s
Nameneko characters. The second is Get A Way, an overhead-view
racing game made by Universal, touted as the “first game in the
world to feature a 16-bit microcomputer.” Universal went on to
create the much loved Mr. Do! character. Emulation is preliminary
– while the game is playable, there are some graphical issues, and
sound is absent.
In other arcade emulation news, Windy Fairy has made a triumphant
return, bringing numerous fixes for issues affecting Bemani rhythm
games running on System 573 hardware. Thanks to the persistent
efforts of David “Haze” Haywood, various fruit machines from JPM
are starting to become playable in MAME. Interestingly, these
machines rely on similar Brooktree RAMDACs to NCD X11 terminals,
and Motorola DUARTs used by numerous other systems emulated in
MAME. A complete dump of the type 01 program for Zaccaria’s Cat
and Mouse has finally been obtained, making both known versions of
this obscure game playable at last.
For hand-held consoles, the WonderSwan and WonderSwan Color have
had an overhaul, and Game Gear X-Terminator cartridges are now
supported. Several Bandai RX-78 cartridges have been dumped,
exercising more aspects of the emulation and allowing several
shortcomings to be fixed. We’ve also made some progress on emulating
Apple’s floppy drive controllers, providing a path to support for
SuperDrive high-density floppy drives, and eventually the HD20
external hard disk.
There’s been plenty more happening, including a new LCD shader from
cgwg, all the latest FM Towns software dumps, fixes for recent
regressions, and more code modernisation.
Upstream changes:
3.6.1 2021/01/09
- Fallback to compatible rom when some of ROM files are missing.
- Fixed PC-6001mk2/6601 compatible basic ROM's deployment.
- Improved backward compatibility. Now builable with Qt5.5 or above.
- Minor bugfixes.
Changelog:
vm (Update): Improve m88k performance.
vm (New): Implement emulated ROM for LUNA88K. For now, it only can boot.
vm (New): Make the RAM size changable.
host (Update): Support OpenBSD's tap(4).
vm (Fix): Fix several bugs on LUNA-I's emulated ROM since 0.0.3 and 0.1.4.
vm (Update): Improve reading UFS on emulated ROM.
vm (Fix): Fix a bug that might break receive queue on SIO(uPD7201).
vm (Fix): Fix abnormal termination on resetting VM during SCSI transfer.
vm (Update): Improve a log message about SCMD Intercept bit on SPC.
app (Update): Make -c option acceptable configuration filename."
It’s time to say goodbye to 2020, and we’re doing that with the
release of MAME 0.227, the fruit of our extended November/December
development cycle. A lot has happened in these two months, in terms
of internal improvements to MAME as well as user-visible changes.
If you’ve been following along with development, you’ll have noticed
that we’ve migrated MAME to C++17, overhauled the Lua interface,
further streamlined and enhanced the emulated memory system, and
cleaned up a lot of ageing code.
MAME 0.227 adds preliminary support for macOS on AArch64, also
known as “Apple Silicon”. Please note that we lack a native A64
recompiler back-end, and there are some issues with our C recompiler
back-end. If you’re running an A64 build of MAME, you can disable
recompilers for most systems that use them with the -nodrc option
on the command line. You may get better performance for emulated
systems with MIPS III or PowerPC processors by running an x86-64
build of MAME under Rosetta 2 with recompilers enabled. (Yo, ’sup
dawg. I heard you like recompilers…)
Lots of long-standing issues have been fixed in this release.
Missing platforms in stage 15 of Sega’s Quartet now appear properly.
This relies on a protection microcontroller feature that we were
previously unaware of. Protection features that are only used late
in the game have been a recurring source of frustration not just
for emulator developers, but also for arcade bootleggers, and even
publishers re-issuing old games in new formats. It seems Sega missed
this feature in their Astro City Mini release. Another long-standing
protection issue was fixed this month that made Atari’s Rampart
impossible to complete on Veteran difficulty. This one was actually
a regression that managed to stay unresolved for years, possibly
because the game’s high difficulty makes it difficult to reach.
While we’re on the topic, protection simulation has been added for
the versions of Sega’s Carnival that run on Head On hardware.
While protection emulation may encompass the most noticeable fixes,
lots of other things that have been improved as well. Graphical
issues have been fixed in Chase Bombers, Championship Bowling, and
Prop Cycle. NFL Blitz ’99 no longer skips animations in attract
mode. DIP switch descriptions have been corrected in 3-D Bowling,
Bloxeed and Mahjong Tenkaigen. Game switching now works on Multipede,
and Klax bootlegs are playable, with working sound.
It wouldn’t be a MAME release without new supported systems. This
month we’ve got TV games from dreamGEAR, JungelTac, LexiBook and
Senario. As always, the quality varies enormously. New versions of
1944: The Loop Master, Cookie & Bibi 2, F-1 Grand Prix, Forgotten
Worlds, and Narc have been found and dumped. One of the newly
supported Narc versions is particularly interesting, as it appears
to be an early test version, lacking a substantial amount of content
found in other versions of the game. Another incomplete copy of
Unico’s Master’s Fury was found, which could be combined with the
previous incomplete set to make the game playable.
Finally, there are a few improvements to the internal user interface.
There are more controls for screenshots, aspect ratio and scaling
accessible from the Video Options menu. You can now use NOT codes
when assigning analog joystick axes to digital inputs. The menus
for the Cheat and Autofire plugins have been made more consistent.
Of course, there’s far more that we don’t have space for here, but
you can read all about it in the whatsnew.txt file, and get the
source and 64-bit Windows binary packages from the download page.
It’s been a very tough year for a lot of us, but it’s still been
a great year for MAME development. Thanks to everyone who contributed
this year, even if it was just a kind word or helping out a user
on a community forum. Have a great new year, and keep the spirit
of digital preservation alive!
The changes in the NEWS file for this version are more than 450 lines,
but here is a small part:
* Upgrading
===========
If you run into trouble please try removing any VICE configuration files
left over from previous installs.
(vice.ini / .vicerc / vice2.cfg / vice-sdl.ini depending on platform)
Before reporting bugs, always try with a clean config: Run the emulator
with the "-default" command line argument or use "restore default config"
in the UI).
* Changes in Vice 3.5
=====================
This release completes the transition to the new GTK3 based GUI and fixes a
bunch of long standing issues (see below).
** general
----------
- Remove explicit support for OS/2, AmigaOS. These platforms should be able to
use the SDL port.
- VICE used to store its ROMs, keymaps etc into $PREFIX/lib[64]/vice, which
isn't correct. Now VICE installs its data into $PREFIX/share/vice, which
makes a lot more sense. The documentation location has changed as well, now
the documentation is installed in $PREFIX/share/doc/vice.
On Windows, the binaries and DLLs have been moved into /bin, according to the
requirements of GTK/GDK.
- Emulator timing is now directly driven by the host system audio device.
If sound emulation is disabled, timing is synchronized with the host clock.
As part of this change, the choice of sound synchronization method has been
removed.
- Emulation now occurs in blocks of time directly related to the sound fragment
size. Previously, emulation of an entire frame happened as quickly as possible
and then the host system would sleep until it is time to emulate the next
entire frame. This means that user input is now visible to the emulated
software with lower latency than before.
- Audio latency is much lower on all platforms, and new lower latency defaults
have been set. Users are encouraged to try using smaller fragment sizes and
experiment with finding the lowest stable buffer size on their system.
- Support for changing the emulator timing to target generating a specific number
of video frames per second. Useful for smooth PAL scrolling on a 50Hz CRT, and
also fun for playing games at 60fps to match a typical LCD screen refresh.
- The default behaviour on CPU JAM was changed to "continue" to better match
the behaviour of the real machines. Additionally a "CPU JAM" message will
be displayed in the status bar.
- A "quit emulator" option was added to the CPU JAM dialog
- The CPU JAM dialog now shows the number of the device whose CPU has crashed.
- Proper support for dual drives has been added
- Relative file support on the filesystem device
- Autostarting works from any drive (select the drive in the attach disk dialog)
- Added support for 2nd and 3rd joystick button (potx/poty), currently only via
keyboard and via unix joystick driver.
- Added mapping for the THEC64 joystick
- New LT.Kernal emulation
- New CMD-HD emulation
- New CMD RAM-Link emulation
- New D9090/60 emulation
- New icons for the applications.
- We now use proper binary prefixes for memory sizes.
Welcome in the 21st century!
- Recalculate the palette parameters when the videochip type changes, now we can
actually see the subtle color differences :)
- Emulate a switch present on some compatible datasettes (not the Commodore
ones). Turning the switch on makes the sound recorded on the tape audible.
- Fixed/improved "native" screenshots. It will now work with all videochips and
always generate "best effort" results.
- The emulators will look for the config file at an alternative location first,
before looking at the system wide location.
- for windows that is the location of the .exe files
- for Linux that is ~/.vicerc
- Fixed lightgun/pen emulation
- use poty instead of potx for trigger for magnum lightphaser and inkwell
lightpen
- tweak lightphaser offset against a bunch of games
- Handling of settings and resources was improved a bit:
- always reset resources to default before loading a settings file
- new "-addconfig" option (or "load additional settings") loads additional
resources from a file without resetting to defaults before. this can be used
to keep custom setups separate from the regular settings.
- Fixed sysfile search path order.
The order now is $HOME/.local -> path-of-binary -> VICE_DATADIR
- Fixed a bug in .tap file handling that caused some .tap files to not work in
the preview widget(s)
- A bunch of files have been removed from the source tree because they didn't
really belong there and/or contained outdated info:
- hardware-sids.txt, the old info is now at
https://vice-emu.pokefinder.org/index.php/Hardware_SID_Status
- SDL-support.txt, the old info is now at
https://vice-emu.pokefinder.org/index.php/SDL_Status
- ffmpeg-support.txt, the old info is now at
https://vice-emu.pokefinder.org/index.php/FFMPEG_Status
- Another bunch of files were removed because their content was hopelessly
outdated and/or could be moved to other files:
- removed ancient CHANGELOG files. Read NEWS for the recent changes. Refer to
the SVN log for the gory details.
- moved contents from FEEDBACK to README
** build system
---------------
Many changes and simplifications were made in the build system, to make
it more reproducible and match the expected standard behaviour:
etc etc.
Version 2.3.1 (2020-12-27)
--------------------------
Following features are deprecated and will be removed in a future release:
- Support for the SDL 1.2 library (i.e. SDL 2.x should be used instead)
- SDL 2.x "bUseSdlRenderer" config and "GPU scaling" GUI options
(after HW support for SDL2 is available widely enough)
- The old UAE CPU core (i.e. the new WinUAE CPU core should be used instead)
- Python v2 support in Python scripts (Python 2 was end of life in 2020)
- The "external" disassembler (i.e. use "--disasm uae" instead)
- Hatari XBios(255) API enabled with the "--bios-intercept" option
(i.e. use "--natfeats" & "--cmd-fifo" options and "hconsole" instead)
- The old ~/.hatari configuration file location (use ~/.config/hatari instead)
Emulation:
- CPU:
- Fix: unneeded extra prefetch for movem in 68020/30 cpu
(regression in v2.3)
- DSP:
- Fix: master clock use for crossbar/DSP Handshake mode
(partial regression in v1.6)
- Fix: hostport PORTB interrupt handling
Emulator:
- ACSI/IDE/SCSI handling:
- Fix: IDE crash when switching to Falcon mode at run-time
(regression in v2.3)
- Fix: No error dialog on IDE image mount errors
- Fix: Duplicate disk image mount failure handling
- TOS support:
- Fix: TOS 2.07 (Sparrow TOS) support
(regression in v2.3)
- Hatari window handling:
- Fix: Hatari window disappearing from Python UI
when Hatari changes its framebuffer size
(SDL2 specific)
- macOS GUI:
- Fix: FPU setting doesn't work when GUI runs in French
Python UI:
- Several fixes (see its own release-notes.txt)
- Requires now Gtk v3.22 or newer
Tools:
- Fix: assert in hatari_profile (profile post-processor)
with relative symbols
Documentation:
- Add PortMidi info to devices dialog section in manual
- Updated compatibility documentation
Fixed Falcon programs:
- Music missing in H2O game, in Running game main screen,
Stocasto demo and Epidemic music disk
(crossbar/DSP handshake mode)
- Lockup demo freezing at startup
(DSP hostport PORTB interrupt handling)
- Several demos (Cruor 96k, Hmmm..., Keff, Payback 2015) and games
(Beats of Rage, Capy, Confusion preview 2, Men at War preview,
Moonspeeder preview 2, Neurobot, Pacmania X68000, Slippery Sam
and Sokoban by Fun) not starting with TOS4 or EmuTOS unless MMU
was enabled (unneeded extra prefetch in movem)
- Built-in Obsolescence demo, Delmpaint app and Sidetracked GFA
musicdisk had other issues also with MMU under TOS4 or EmuTOS
(unneeded extra prefetch in movem)
Version 2.3.0 (2020-11-28)
--------------------------
Following features are deprecated and will be removed in a future release:
- Support for the SDL 1.2 library (i.e. SDL 2.x should be used instead)
- SDL 2.x "bUseSdlRenderer" config and "GPU scaling" GUI options
(after HW support for SDL2 is available widely enough)
- The old UAE CPU core (i.e. the new WinUAE CPU core should be used instead)
- Python v2 support in Python scripts (Python 2 was end of life in 2020)
- The "external" disassembler (i.e. use "--disasm uae" instead)
- Hatari XBios(255) API enabled with the "--bios-intercept" option
(i.e. use "--natfeats" & "--cmd-fifo" options and "hconsole" instead)
- The old ~/.hatari configuration file location (use ~/.config/hatari instead)
Emulation:
- FDC / Disk :
- Support for MegaSTE DIP switch register $FF9200
(set floppy drive to HD by default on MegaSTE/TT/Falcon)
- support for DD/HD mode on MegaSTE at $FF860E
(when FDC is set to HD mode, reading DD floppies will fail)
- Support for the 'Disk Change' (DC) signal on TT machines on TT's MFP GPIP4
- Fix: IDE disks with sector size > 512 bytes
- Fix: IDE controller is now always available in Falcon mode, even if
no hard disks have been configured.
- CPU:
- Update CPU core to latest WinUAE 4.4.0 beta : full support for undocument
fields in 68000 bus/address error stack frames, as well as CCR flags for
most of the 680x0 instructions (using a cpu tester program on the real
hardware that checks all possible opcodes' combinations)
- 68030 MMU hardware bus error support + various fixes
- FPU fixes
- Video:
- Improved timing when setting Vsync signal
(same place where video counter is reloaded)
- Handle screen where vertical DE signal is completely disabled
- Better start/end position for the VBlank signal at 50Hz and 60Hz
- Sound:
- Add a better filter for downsampling the internal 250 kHz signal, should
give better results when the YM2149 outputs high frequency sounds
- Fix microwire mask shifting when CPU runs > 8 MHz
- MFP :
- Rewrite MFP code to handle several MFP objects and add support
for the TT's 2nd MFP (not all TT's MFP signals are emulated yet)
- Improved Falcon's DMA sound interrupt on GPIP7 and AER
- Blitter:
- Large rewrite of the blitter's core, improving cycle accuracy and
handling the complex cases where xcount=1 and nfsr=1. Code is slighlty
smaller and closer to the logic of the real hardware
- Handle restart in non HOG mode when the CPU uses a RMW instruction
(eg TAS)
- Improve access to memory regions that would generate a bus error
for the CPU
- Emulate additional RTC/NVRAM registers
- megaSTE should start at 8 MHz, not 16 MHz
Emulator:
- Miscellaneous:
- Fix: freeze at Hatari exit and RS-232 device file changes,
when device file(s) are FIFO(s)
- Fix: when autostarting programs without pre-existing INF file,
enable blitter also with EmuTOS
- Use floppy track's size in bytes to detect DD/HD/ED
(instead of counting sectors)
- Add --lilo debug option for more convenient m68k Linux loading
- Config file handling:
- Support config file values with '=' in them
- Skip reading global config file if HATARI_TEST environment
variable is set
- Memory handling:
- Memory snapshot version increase due to FDC changes
(i.e. old snapshots won't work with new version)
- Accept 10MB as valid ST-RAM amount (max on real MegaSTE/TT machines)
and correct invalid Falcon ST-RAM amounts
- Fix: 24-bit address mode change while emulation is running
(triggered e.g. when TT-RAM is enabled for TT)
- HD images:
- Fix: run-time IDE byte swap change requires IDE re-init
- Fix: TOS booting from A: although SCSI drive was enabled
- Support read-only HD image files, and show error dialogs
for image file open/lock issues
- GEMDOS HD emulation:
- Support FASTLOAD program flag with GEMDOS HD
- GEMDOS HD emulation cartridge assembly functionality is moved almost
completely to emulator side. Fixes Atari side error handling when program
file is not readable, and TOS stack overflows in some rare cases
- Detect DTA re-use to reduce DTA cache usage, grow cache on
demand and give warning if its entries need to be re-cycled
(= cache max size is reached)
- Invalid DTA in Fsnext() return -ENMFIL, like TOS does
- Fix: skip non-existing host files on FSnext() instead
of returning an error (latter broke directory listings)
- Fix: Dsetpath/Dgetpath empty path handling
- Hatari graphics support:
- Low/med-rez line doubling uses less CPU and doubled lines in
"TV" display mode are now drawn at half intensity, not as black
(fixes TV mode being too dark)
- SDL2: "--zoom" option accepts any values between 1.0 - 8.0
- SDL2: "--zoom" option is changed to always enable low resolution
doubling before SDL framebuffer is scaled up (or down) by the zoom
factor. This way Hatari output window is approximately same sized
regardless of emulated Atari resolution, like on a real CRT monitor
- SDL2: scale quality is selected automatically; nearest pixel for sharp
output with integer scaling factors, and linear scaling to smooth out
issues with non-integer scaling and window resizes
- SDL2: Now redundant "nRenderScaleQuality" config option is
removed and "Linear scaling" option in GUI is replaced with
the "GPU scaling" option (=bUseSdlRenderer config option)
- Added new "--screenshot-dir" option to select the folder for screenshots
- Fix: [ffmpeg/video] Invalid PNG signature 0x89504E470D0A1A
- Fix: garbage graphics (by clearing the whole render area)
- Fix: Spec512_StoreCyclePalette when using 16 or 32 MHz
- Input handling:
- Support SDL "Hat" events in addition to "Axes" events
(= support 80's game controllers, also in SDL GUI)
- Map a turbofire button independent of the fire button if the game
controller is capable
- Show mouse grab toggle shortcut key in startup statusbar message
- Center host mouse to Hatari window on Atari resets and resolution
changes only when window is focused and mouse pointer is within it
- Fix: keypad emulation with SDL2
- Fix: simulated (socket API) key input with SDL2
- Profiler:
- Profiler backtrace shows now real caller addresses
and their offsets from the function entry points
(slows profiling of addresses with symbols)
- All profiler outputs have now reasonable limits
(so that they don't flood console)
- Fix: exception in profile post-processor script
(with symbol address aliases)
- Tracing:
- Fix: CPU disassembly trace output doesn't go to specified trace file
- Trace flags can be added and removed instead of needing to
always specify all the relevant ones, both with "--trace"
command line option and debugger "trace" command:
--trace os_base,aes, trace +xbios,bios, trace -bios,-aes
- VDI trace shows names also for NVDI/Speedo/GDOS functions
- VDI & AES trace function numbers are shown in hexadecimals
with 0x prefix like rest of the OS calls
- Debugger:
- New "screenshot" command for saving screen dump to a PNG/BMP file
- "symbols resident" option replaced with "symbols autoload"
option which can be used to completely disable automatic symbol
loading and unloading for programs run through the GEMDOS HD
(helps debugging resident programs started from GEMDOS HD)
- Improvements to UAE and external disassembler disassembly
- UAE disassembler is now default instead of external one
(latter doesn't decode all instructions correctly)
- New "info" subcommands:
"acia", "dmasnd", "ikbd", "mfp", "nvram", "rtc" and "scc"
- Also UAE disassembler can now show the profile info
- "info" command can show AES & VDI information on on their
respective traps without VDI mode/tracing being enabled
- Breakpoint ":info" option to call specified info function
on tracing breakpoint hits (one can now use e.g. ":info vdi"
on VdiOpcode breakpoints)
- Improved symbols info output
- Native features:
- Support for missing NF_SHUTDOWN (reset) sub commands
- Test code for rest of features (except for NF_SCSIDRV)
- When Hatari resets or exits due to emulated program
NF_SHUTDOWN / NF_EXIT call, output user a note about that
Tools and Hatari Python/Gtk UI:
- Python scripts use now "python3" because most current distros don't
anymore install Python v2 by default. To use a script with v2,
change "python3" in its first line to "python2"
Building and unit tests:
- Source repository moved from Mercurial to Git
- Fix: issue with multilib capable cross-compilers
- Only Caps library v5.1 is supported (support for old v4.2 is dropped)
- Obsolete Mudflap option replaced with AddressSanitizer support
- Add tests for GEMDOS HD, fullscreen/overscan display, blitter and Hatari
command FIFO + improve CPU/MMU variant coverage in earlier tests
Documentation:
- Up to date documentation provided at: https://hatari.tuxfamily.org/doc/
- New m68k-linux.txt and m68k-netbsd.txt documents on how to
test m68k Linux and NetBSD under Hatari
- Debugging and profiling information is split from manual.html to
a separate debugger.html file
- Minor improvements
Fixed demos:
- Pacemaker STE demo (end part), when it's run from GEMDOS HD
- Multi scrolls part in Closure by Sync
(regression since Hatari 2.2, vsync in bottom border)
- Fullscreen part in Hard As Ice STE demo by I.C.E.
(screen with no vertical DE signal)
- Fullast Vinner by Troed/Sync
(improved vblank position, partial fix for now)
- Electric Night Falcon demo by Dune
(MFP DMA sound interrupt on timer A using AER)
- Oompa by No Extra (after greetings part)
(blitter access to bus error regions)
- E.K.O System (music should now play in the racing scene)
Fixed programs:
- MS Write (crash), when it's run from GEMDOS HD
- Akaisex program reading AKAI S1000 HD floppies converted to STX
- EmuTos drawing vertical lines with blitter and leaving some trails
(blitter in non HOG mode using TAS intruction to restart)
- Cecile v2.22, now also works if no IDE drive has been configured
- Trans D-Bug Express by PHF (lock when running in megaSTE mode at 16 MHz)
2.2.1
- updated (SNES) fixed checksum calculation of SNES/Super Famicom Classic Mini
SRAM data of special chip games like Super Mario RPG, Super Mario World 2 -
Yoshi's Island, Hoshi no Kirby Super Deluxe and Star Fox 2 (by dbjh)
- added (SNES) --range=OFFSET1:OFFSET2 specify range for calculating checksum of
SNES/Super Famicom Classic Mini (hakchi2) SRAM data. Can be used in
combination with --sminis for special chip games (by dbjh)
- added (SNES) --xic2 send ROM to SMC IC2 compatible backup unit (by dbjh;
thanks to Mystic_Merlin for finding this out and for testing)
- removed (PSX/N64) --xdex, because the underlying code had nothing to do with
the DexDrive (by dbjh)
- added full MinGW-w64, 64-bit Visual C++ (2015 & 2019) and 64-bit Cygwin
build support (including libdiscmage and libcd64); improved 64-bit support in
general (by dbjh)
- libdiscmage support is no longer enabled by default. Use the configure option
--with-libdiscmage to enable support (by dbjh)
0.8.4: (2020-10-29)
Emulation fixes:
- GB Audio: Fix initial sweep state
- GB Audio: Fix deserializing audio channels 2 and 3
- GB Audio: Fix deserializing while audio was disabled (fixes mgba.io/i/1305)
- GB Video: Fix drawing background when window is force-disabled by frontend
- GB, GBA Video: Copy disable flags when drawing scanlines in proxy when not blocking
- GBA Audio: Fix deserializing SOUNDCNT_L
- GBA Audio: Fix stereo in XQ audio
- GBA Audio: Fix volume/mute in XQ audio (fixes mgba.io/i/1864)
- GBA Hardware: Fix GB Player detection on big endian platforms
- GBA Video: Invalidate map cache when modifying BGCNT (fixes mgba.io/i/1846)
- GBA Video: Don't draw sprites using unmapped VRAM in GL renderer (fixes mgba.io/i/1865)
- GBA Video: Fix rare regression blending semitransparent sprites (fixes mgba.io/i/1876)
- GBA Video: Do not affect OBJ pixel priority when writing OBJWIN (fixes mgba.io/i/1890)
- GBA Video: Fix deferred blending when OBJWIN matches window (fixes mgba.io/i/1905)
- GBA Video: Fix mode 4 transparency in OpenGL (fixes mgba.io/i/1907)
Other fixes:
- ARM Decoder: Fix decoding pre-indexed writeback instructions (fixes mgba.io/i/1915)
- Core: Fix reported ROM size when a fixed buffer size is used
- Core: Fix memory leak loading ELF files
- GBA: Disable more checks when loading GS save with checks disabled (fixes mgba.io/i/1851)
- GBA: Fix endianness issues in renderer proxy
- GBA Core: Fix memory leak when loading symbols
- GBA Serialize: Ensure program counter is aligned when loading
Misc:
- GBA Video: Improve speed of window texture generation on AMD
0.8.4: (2020-10-29)
Emulation fixes:
- GB Audio: Fix initial sweep state
- GB Audio: Fix deserializing audio channels 2 and 3
- GB Audio: Fix deserializing while audio was disabled (fixes mgba.io/i/1305)
- GB Video: Fix drawing background when window is force-disabled by frontend
- GB, GBA Video: Copy disable flags when drawing scanlines in proxy when not blocking
- GBA Audio: Fix deserializing SOUNDCNT_L
- GBA Audio: Fix stereo in XQ audio
- GBA Audio: Fix volume/mute in XQ audio (fixes mgba.io/i/1864)
- GBA Hardware: Fix GB Player detection on big endian platforms
- GBA Video: Invalidate map cache when modifying BGCNT (fixes mgba.io/i/1846)
- GBA Video: Don't draw sprites using unmapped VRAM in GL renderer (fixes mgba.io/i/1865)
- GBA Video: Fix rare regression blending semitransparent sprites (fixes mgba.io/i/1876)
- GBA Video: Do not affect OBJ pixel priority when writing OBJWIN (fixes mgba.io/i/1890)
- GBA Video: Fix deferred blending when OBJWIN matches window (fixes mgba.io/i/1905)
- GBA Video: Fix mode 4 transparency in OpenGL (fixes mgba.io/i/1907)
Other fixes:
- 3DS: Redo video sync to be more precise
- 3DS: Fix crash with libctru 2.0 when exiting
- ARM Decoder: Fix decoding pre-indexed writeback instructions (fixes mgba.io/i/1915)
- Core: Fix reported ROM size when a fixed buffer size is used
- Core: Fix memory leak loading ELF files
- GBA: Disable more checks when loading GS save with checks disabled (fixes mgba.io/i/1851)
- GBA: Fix endianness issues in renderer proxy
- GBA Core: Fix memory leak when loading symbols
- GBA Serialize: Ensure program counter is aligned when loading
- Qt: Add dummy English translation file (fixes mgba.io/i/1469)
- Qt: Fix Battle Chip view not displaying chips on some DPI settings
- Qt: Fix camera image being upside-down sometimes (fixes mgba.io/i/829 again)
- Qt: Fix drawing on macOS break when using OpenGL (fixes mgba.io/i/1899)
- Qt: Fix stride changing when toggling SGB borders (fixes mgba.io/i/1898)
- Qt: Fix aliasing on background logo (fixes mgba.io/i/1886)
- mGUI: Fix closing down a game if an exit is signalled
- mGUI: Fix cycling through config setting states with accept button
- mVL: Fix injecting accidentally draining non-injection buffer
- VFS: Fix directory node listing on some filesystems
Misc:
- GBA Video: Improve speed of window texture generation on AMD
0.83.8
- Added support for scalable TrueType font (TTF)
output for text-mode programs. Set "output=ttf"
and optionally a monospaced TTF font (such as
consola) with config option "ttf.font" to use it.
Lines and columns can be specified with config
options "ttf.lins" and "ttf.cols", and the cursor
can be made blinking with the option "ttf.blinkc".
The config options "ttf.ptsize" and "ttf.winperc"
can be used to set the TTF font size and window
percentage respectively. If you specify a TTF font
size with "ttf.ptsize" then "ttf.winperc" will be
ignored. You can also specify a word processor
(WP=WordPerfect, WS=WordStar, XY=XyWrite) for the
on-screen text-style and 512-character font (WP)
features. When using the TTF output DOSBox-X will
temporarily switch to a different output when a
graphical mode is requested (or when trying to take
a screenshot); the TTF output will be auto-switched
back later), which can be customized via config
option "ttf.outputswitch" (which defaults to auto).
Menu items in the "Text-mode" menu group (under
"Video" menu) have been expanded to support TTF
options such as increasing/decreasing the TTF font
sizes and on-screen text style toggling (including
bold, italics, underline and strikeout). You can
also select a TTF font to use at run-time with the
"Select TrueType font (TTF)" menu option. (Wengier)
- Added the "Load mapper file..." menu option (under
"Main") to select and load a DOSBox-X mapper file
at run-time. Be sure to select a SDL1 mapper file
for SDL1 builds, and similar for SDL2. (Wengier)
- You can now select a host key from the menu (under
"Main") including Ctrl+Alt, Ctrl+Shift, Alt+Shift,
or use the mapper-defined host key as in previous
versions (which default to F11 on Windows and F12
otherwise). A config option "hostkey" is added so
that you can specify it from config file. (Wengier)
- Pasting text from the clipboard on macOS SDL1 build
is now supported like Linux SDL1 build. (Wengier)
- Added support for ARM-based Apple M1 MacBook. The
dynamic core now works on ARM-based macOS systems.
SDL1 builds updated to use newer audio APIs on the
macOS platform so that the audio works once again
when compiled and run on macOS 11 (Big Sur). Prior
to the change, ancient versions of the API dating
back to the mid 2000s were used which no longer
work on Big Sur.
- DOSBox-X will now look for the config file (i.e.
dosbox-x.conf/dosbox.conf) and the mapper file in
the directory containing the DOSBox-X executable
too if the config or mapper file cannot be found
in the DOSBox-X working directory. (Wengier)
- The system menu in Windows SDL1 builds is now also
available for Windows SDL2 builds, and menu items
"Reset font size", "Increase TTF font size" and
"Decrease TTF font size" are added. (Wengier)
- Enhanced the mapper editor interface to allow more
keyboard shortcuts to be added, shown in multiple
pages in the mapper, navigable with the "Previous
Page" and "Next Page" buttons. The text in the
grids are now longer and clearer too. The default
shortcuts for a few items are changed to use the
Host key style (e.g. Host+S and Host+L for saving
and loading states respectively). (Wengier)
- Added menu item "List network interfaces" under
"Help" menu to list network interfaces in the host
system for the NE2000 feature. (Wengier)
- Added menu group "DOS commands" under "Help" menu
to display the help content for the selected DOS
shell command (DIR, CD, etc). (Wengier)
- Configuration Tool now provides the option to save
to the primary or user config files. (Wengier)
- Certain config options (e.g. doublescan) that were
marked as advanced options are now general config
options and will appear in dosbox-x.reference.conf
apart from dosbox-x.reference.full.conf. (Wengier)
- Added config options "saveremark" (default: true)
and "forceloadstate" (default: false) in [dosbox]
section which can be used to control if DOSBox-X
should ask users to enter remarks when saving a
state or show warnings when loading a saved state
if there is a mismatch found. (Wengier)
- The config option "pixelshader" is moved from the
section [gui] to [render] so that it will be in the
same section as the option "glshader". (Wengier)
- Added menu item "Select OpenGL (GLSL) shader..." to
allow OpenGL shader switch from the menu, just like
the function for Direct3D pixel shaders. (Wengier)
- Added menu item "Show IDE disk or CD status" under
"DOS" menu to show the current assignments (disk or
CD image) of the IDE controllers. (Wengier)
- Fixed IDE CD assignment may not be reset when soft
reboots are activated from guest systems. (Wengier)
- The program 80x43.COM is added into the ZIP package
TEXTUTIL.ZIP on the Z drive. You can also change
current text screen to the 80x43 mode from the menu
group "Text-mode" under "Video" menu. (Wengier)
- Enhanced MODE command so that you can change the
number of columns and lines in the screen with the
syntax "MODE CON COLS=c LINES=n" (c=80 or 132, and
n=25, 43, 50, or 60). The command "MODE CON" will
show the current number of columns and lines in the
screen as in a real DOS system. (Wengier)
- Added FLAGSAVE command for the save state feature
to flag (mark) one or more files to be saved and
loaded. Type "FLAGSAVE /?" for more information on
this command. (PogoMan361 and Wengier)
- Enhanced A20GATE command to show the current status
of the A20 gate when no parameter is given, along
with other small improvements. (Wengier)
- INT 21h DOS=HMA emulation, to enable the A20 gate,
and autoa20fix, to disable the A20 gate, now checks
whether the CPU is running in virtual 8086 mode.
If vm86 detected, the code will control the A20
gate by calling the XMS interface instead of direct
reading/writing via port 92h. This consideration
is required for autoa20fix to cooperate with
Microsoft Windows 3.1. Note that Windows 3.1 does
not virtualize port 92h. If it did, this workaround
would not be necessary.
- Added -a option to LOADFIX command which will auto
allocate enough memory to fill lowest 64KB memory
instead of using exactly 64KB memory. (Wengier)
- Added autofixwarning option (true by default) which
allows user to silence the messages when DOSBox-X
tries to auto-fix "Packed file is corrupt" error
when running a program with this issue. (Wengier)
- Added autoa20fix option (enabled by default). This
option when enabled attempts to resolve EXEPACK
"Packed file is corrupt" errors by temporarily
disabling the A20 gate and running the program
again. This may provide better support for affected
DOS applications than the LOADFIX option. If both
autoa20fix and autoloadfix are set, then autoa20fix
will be tried first, and if it did not work then
autoloadfix will be tried next.
- The autoloadfix config option changed to allocate
only enough memory to keep the executable above the
64KB boundary, instead of blindly allocating 64KB.
- Fixed menu items "Rescan drive" and "Swap disk" in
"Drive" menu being reversed. (Wengier)
- Fixed CD audio issue with the game "The Secret of
Monkey Island" when talking to the pirate in Scumm
Bar by adapting the patch that fixes it. Thanks
kcgen for the fix logic. (Wengier)
- Added support for MAME CHD CD images. You can now
mount CHD images with IMGMOUNT command, or from the
Drive menu. Based on libchdr library and the work
of the user whocares010. (Wengier)
- Updated FLAC/MP3/WAV CD-DA decoder libraries to the
latest versions (versions 0.12.22, 0.6.19, 0.12.14
respectively). Thanks to mackron & kcgen. (Wengier)
6.3 to 6.4 (November 2, 2020)
* Added basic (entire and single line only) text cut/copy and paste.
* Added color parameters to 'Custom' palette.
* Some improvements to AtariVox-USB adaptor functionality:
- Made serial port used for an AtariVox-USB adaptor editable.
- Autodetection of serial ports no longer messes up devices plugged
into other serial ports.
* Added CPU load stats to debugger. Related to this, added debugger
pseudo-registers '_ftimreadcycles' and '_fwsynccycles' to show the
number of cycles since the start of frame under certain circumstances
(see manual for more details).
* Fixed bug with aspect correction and fullscreen mode; snapshots from
such a mode are now pixel-exact.
* Fixed a bug that caused CDF ROMs to crash on the Retron77 and reduced
ARM emulation performance for CDF ROMs on other platforms.
* Fixed crash with missing or incorrectly sized SaveKey data file, and
with certain functions not working (erase pages, erase entire EEPROM).
* Fixed Atari mouse autodetection.
* Fixed bug in ROM launcher, with last ROM selected not being remembered
when exiting and re-entering a directory.
-Have fun!
6.2.1 to 6.3 (October 7, 2020)
* Added adjustable autofire.
* Added 'Dark' UI theme.
* Extended global hotkeys for debug options.
* Added option to playback a game using the Time Machine.
* Allow taking snapshots from within the Time Machine dialog.
* Added the ability to access most files that Stella uses from within a
ZIP file. This includes the following:
- Per-ROM properties file (so one can distribute a ROM and its
associated properties).
- Debugger symbol (.sym) and list (.lst) files, etc.
- Several others, as we extend the support.
Basically, you are now able to put many files that Stella uses inside
one ZIP file, and distribute just that file.
* Extended AtariVox support to handle flow control, so that long phrases
are no longer corrupted/cut off. This includes properly supporting the
2600-daptor II, which is flashable to an AVox-USB converter.
* Added auto-detection of the serial port used for an AtariVox-USB adaptor.
* Added QuadTari controller support.
* Added option to select the audio device.
* Added support for CDFJ+ bankswitching type.
* Further enhanced UA bankswitching to support more Brazilian carts.
* Added option to display detected settings info when a ROM is loaded.
* Added another oddball TIA glitch option for delayed background color.
* Added option to disable aspect ratio correct scaling.
* Added debugger pseudo-registers '_timwrapread' and '_timwrapwrite',
which are set when the RIOT timer is read/written on timer wraparound,
respectively.
* Bankswitching schemes BUS, DPC+ and CDFx now work when startup bank
randomization is enabled (these schemes now ignore that setting).
* Replaced "Re-disassemble" with "Disassemble @ current line" in debugger.
* Fixed bug when taking fullscreen snapshots; the dimensions were
sometimes cut off.
-- 1.26.1: --
November 8, 2020:
PSX: Fixed various inaccuracies in the SPU reverb emulation code.
PSX: Fixed quasi-benign dereferencing of a null pointer in the GPU code when playing a PSF.
November 3, 2020:
SNES-Faust: Fixed a crash when an MSU1-enabled game tried to play MSU1 audio but no audio tracks existed.
SNES-Faust: Only create MSU1 multithreaded audio reader object if at least one audio track is available.
November 2, 2020:
SNES-Faust: Fixed a design flaw in the MSU1 audio track loading code that broke loading of audio tracks when the game's filename included a "%" character.
November 1, 2020:
SS: Fixed compilation errors after configuring with --disable-debugger.
SS: Fixed compilation errors with clang.
-- 1.26.0-UNSTABLE: --
October 26, 2020:
SS: Added "The Lost World: Jurassic Park" to the internal database of games to enable full cache emulation with, to fix most rock face graphical glitches.
October 25, 2020:
SS: Added "Corpse Killer" to the internal database of games to enable full cache emulation with, to fix the glitchy rotation-zoom effect.
October 24, 2020:
SS: Fixed major bug, existing since Saturn save state support was added, in the SCU save state code that caused wrong state to be saved(and later restored)
when an SCU DMA level in indirect mode was active.
SS: Added "Kaitei Daisensou"/"In the Hunt" to the internal database of games to enable SH-2 read/write VDP1 draw slowdown with, to fix FMV tearing.
SS: Added "Zero Divide" to the internal database of games to use the data cache read bypass kludge with, to fix a graphical glitch with character portraits.
October 23, 2020:
SS: Made changes to prevent the CDB emulation from reporting PLAY status until the second sector is read after a seek completes; fixes game-breaking
problems in "Break Point", "DJ Wars", "Hop Step Idol", and "Tennis Arena".
SS: Fixed inaccuracies with how CDB playback buffer full auto-pause and resume works; fixes occasional hangs of finite duration in "Dragon Force II" and
"World Cup France '98: Road to Win" when trying to skip FMVs.
October 22, 2020:
SS: Added "Mujintou Monogatari R: Futari no Love Love Island" to the internal database of games to use the data cache read bypass kludge with,
to fix glitches when character portrait graphics change.
October 21, 2020:
SS: Added "Doraemon: Nobita to Fukkatsu no Hoshi" to the internal database of games to use the data cache read bypass kludge with,
to fix the blank Game Over screen.
SS: When a CDB 'Get CD Device Connection' command is issued very shortly after a 'Reset Selector' command, the 'Get CD Device Connection' command
will now be executed before the resetting effects of the 'Reset Selector' command occur. Fixes startup hang in the USA version of "Independence Day".
October 20, 2020:
SS: Slowed down emulated VDP1 pixel plotting performance by a bit less than 20%(10% in 8bpp mode); fixes prematurely cut-off voices in "Paneltia Story",
and reduces tearing in "Yu-No".
October 18, 2020:
SS: Added "3D Baseball", "The Crow", "NBA Action", "NFL Quarterback Club 96", "Solar Eclipse", and "Titan Wars" to the internal database of games to
enable full cache emulation with, to fix minor FMV glitches.
SS: Added "Thunder Force Gold Pack 1" to the internal database of games to enable full cache emulation with, to fix the glitchy ship sprite in the ending
of "Thunder Force III".
SS: Added the Europe releases of "Virtua Cop" and "Virtua Cop 2" to the internal database of games to enable full cache emulation with, to fix
startup hangs.
SS: Added "Yu-No" to the internal database of games to enable full cache emulation with, to fix the problem of the intro FMV ending too soon.
SS: Added "Horror Tour" to the internal database of games to enable full cache emulation with, to fix graphical glitches on the save and load screens.
SS: Added "Falcom Classics II" to the internal database of games to enable SH-2 read/write VDP1 draw slowdown with, to fix tearing in the intro FMV of "Ys II".
SS: Added "Tokimeki Memorial: Forever With You" to the internal database of games to enable SH-2 read/write VDP1 draw slowdown with, to fix the glitchy
arm sprite in the Konami intro.
SS: Added "Virtua Fighter Kids" to the internal database of games to use the data cache read bypass kludge with, to fix a major FMV glitch.
October 17, 2020:
SS: Made a very small SSE2-based optimization to the cache tag evaluation code.
October 16, 2020:
SS: Removed incorrect write mirrors for the SH-2 CCR register; fixes FMV glitches in "NFL Quarterback Club 97".
SS: When full cache emulation is enabled(e.g. via database), alternate slave CPU and bus sharing emulation code will be used, to reduce
disproportionate sharing of the bus(it's still not perfect, however).
SS: SH-2 PC-relative MOV.W and MOV.L loads are now correctly treated as instruction fetches instead of data fetches with respect to the
OD/ID bits of CCR.
SS: The SH-2 WB/EX pipeline stall emulation logic is now always enabled, instead of only being enabled in full cache emulation mode as it was previously.
October 12, 2020:
SS: Moved SH-2 cache entry invalid bit from bit31 of the internal combined tag variable to bit0, for slightly better code generation.
October 11, 2020:
SS: Slave SH-2 on/off is now handled outside of the regular event handling system to prevent a crash under certain conditions.
October 9, 2020:
SS: Extended the handling of VDP1 command execution slowdown on SH-2 CPU reads/writes to also include SH-2 DMA accesses.
October 5, 2020:
SS: Bumped up minimum seek timing delay, to compensate for upcoming general CPU timing improvements in the games sensitive to seek timing.
October 4, 2020:
SS: The SR value loaded with RTE is now properly masked.
October 2, 2020:
SS: Allow the SMPC joystick reading process to be aborted earlier on, while still waiting for vblank to end; fixes another hang in "QuoVadis".
SS: Added "Wolf Fang SS: Kuuga 2001" to the internal database of games to enable SH-2 CPU read/write VDP1 draw slowdown with, to
fix glitchy graphics in the player's robot.
SS: Added "Mahjong Doukyuusei Special" to the internal database of games to use the data cache read bypass kludge with, to fix the missing
background graphics layer on disc 2.
SS: Added "Kidou Senkan Nadesico: Yappari Saigo wa Ai ga Katsu" to the internal database of games to use full cache emulation with, to fix a hang.
SS: Implemented emulation of the timing effects of the B-bus write buffer on SH-2 CPU writes; fixes hang in "QuoVadis".
September 4, 2020:
SNES-Faust: Fixed bug in the multithreaded PPU renderer that could cause massive graphics corruption when a game interleaves reads and writes to
VRAM without resetting the VRAM address, like in "NBA Pro Basketball: Bulls vs Blazers".
August 28, 2020:
SS: Delay CDB status position info update by about 44us after a seek request(via Play command, or otherwise); fixes missing graphics in
the intro of "Magical Drop 3".
-- 1.25.0-UNSTABLE: --
June 27, 2020:
SS: Implemented more accurate emulation of VDP1 drawing of excessively-large primitives.
It's not perfect, there's still something weird going on with antialiasing, and the effects on gradient shading
and texturing are not fully emulated, but it's enough to fix missing graphics in the attract mode of "Virtua Cop",
and a hang after defeating the final boss in "Rayman".
SS: Fixed an off-by-1 inaccuracy in the edge stepping code for sprites and polygons, with minor visible effects in
non-rectangular sprites/polygons.
June 26, 2020:
SS, MD: Fixed/Implemented M68K MULU and MULS instruction timing.
June 24, 2020:
SS: Added wait states to M68K writes; fixes hang in "Lunar" after the Meribia pub singer's singing, that was caused by a timer being
reloaded too quickly in an interrupt handler.
June 13, 2020:
SS: Allow VDP1 primitive drawing code to be suspended(and later resumed) mid-drawing when it's consumed too much emulated time; fixes excessive CPU usage during
the FMV in "Dark Seed II".
June 4, 2020:
SS: Added "Senken Kigyouden", "Xian Jian Qi Xia Zhuan", "Virtua Fighter", and "Virtua Fighter Remix" to the internal database of games to
enable full cache emulation with, to fix graphical glitches.
May 17, 2020:
SS: Implemented more complete emulation of SCSP's buggy(inter-slot contamination) linear interpolation on FM carrier slots.