MAME 0.181
Happy new year from the MAME team! To help you celebrate, weâre
unwrapping an extra-special release this month, with enough
improvements to put anyone in a good mood. The exciting news thatâs
got people talking is that protected microcontrollers (MCUs) from
a number of games have been read out and hooked up in MAME. This
gives real, emulated sound in Toaplan's Vimana, Fire Shark (also
known as Same! Same! Same!) and Teki Paki, proper emulation of
Tokio/Scramble Formation, M-chip emulation for Taito Extermination,
Dr Toppel and Plump Pop, MCU emulation for Sega Altered Beast and
Golden Axe, and partial sound in World Beach Volley. There's more
coming on this front, so stay tuned for upcoming releases!
MAME 0.181 also marks the debut of Votrax SC-01 emulation in MAME,
based on reverse-engineering die photographs. The digital section
should be pretty much perfect, although there are still some issues
in the analog section (plosives don't sound quite right). Overall,
it's a huge improvement in Votrax speech synthesis emulation, and
a great leap forward in our understanding of how the hardware works.
It also means speech samples are no longer required for a number
of games.
Building on the ARM improvements in last month's release, we now
have working floppy drives and sound in the Acorn Archimedes driver,
and default NVRAM images for the US Aristocrat Mark 5 games. This
greatly increases the amount of RISC OS software you can try out,
improves the gameplay experience in the Archimedes-based arcade
games, and allows you to play the Aristocrat gamblers without having
to make your way through the setup process first.
MAME's discrete netlist emulation library has been expanded
substantially in this release, including some new classes of devices
like ROMs, and many newly supported logic chips. This will make it
substantially easier to emulate arcade games which used discrete
TTL logic, and as a test of this new functionality, the TTL video
board from the Hazeltine 1500 intelligent terminal is now emulated
using the netlist system. There's ongoing work in this area involving
multiple developers, so look out for more exciting updates in this
space.
Weâve fixed some fairly significant bugs, including one preventing
the debugger from working on Linux or Mac with drivers that use a
dynamic recompiler core, and one that could cause MAME to crash
when using BDF fonts. The internal UI should be more efficient if
you're using icons now, and issues with spurious key repeats should
be reduced. The Beezer driver has been rewritten and should be
improved overall.
There are quite a few newly dumped arcade games in this release,
including Eeekk!, Simpson Junior (a Korean bootleg of J. J.
Squawkers), Power Flipper Pinball Shooting (an updated version of
Grand Cross), a version of Momoko 120% with English text, Miss
World 2002 (an adult Qix game), and alternate versions of The
NewZealand Story, Real Bout Fatal Fury, Space Dungeon, Flicky and
Turbo Force. The Apricot PC and Xi are now working, further increasing
MAME's coverage of DOS-based computers that aren't IBM-compatible.
You can also play with the COP44L version of Entex Space Invader,
and Mattel Funtronics Jacks and Red Light Green Light.
There are far too many improvements to list here, including lots
of fixes for graphics and flip screen issues, but you can read all
about it in the whatsnew.txt file, or grab the source or Windows
binaries from the download page and start playing.
MAME 0.180
Hello everybody! Are you ready for the November MAME release? It's
definitely ready for you, and there are lots of reasons to get
excited this time around. First and foremost, a number of ARM CPU
core fixes mean you can now boot to the RISC OS desktop on an
emulated Acorn Archimedes, and try some of the included applications.
The same bug fixes allow a number of Aristocrat Mark 5 gambling
machines to boot and run in demonstration mode. There are still
some issues to iron out, but things have definitely improved
enormously.
On the arcade front, protection on Atari Space Lords has finally
been reverse-engineered making the game playable. This is an
interesting space combat game for one or two players, where the
second player takes on the role of the gunner/co-pilot. In another
improvement that's been a long time coming, The Acclaim RAX sound
board is now emulated, bringing sound to Batman Forever and NBA
Jam Extreme. There are substantial improvements to the Magnet System
emulation (added in last month's release) making these rare prototype
bootlegs playable. David Haywood also fixed some graphical issues
in Altered Beast, and Angelo Salese fixed graphical issues in The
Lost Castle in Darkmist.
There are some other notable improvements in computer emulation,
too. Barry Rodewald has added support for IC Card (PCMCIA SRAM)
storage on the FM Towns, and substantially improved LSI Octopus
emulation. The Mac 128/512/Plus drivers have been modernised, and
serial port support has been added to the Apple IIgs driver. Another
DEC Rainbow 100 update from Bavarese fixes colours in high-resolution
mode among other improvements.
Newly supported systems include RC De Go (Go By RC outside Japan),
newly dumped versions of 1945k III, Forgotten Worlds, Sol Divide
and Vendetta, the Italian release of Mustache Boy, 286-based versions
of the Intel iSBC, bootlegs of Blue Shark, Pole Position II and
Ozma Wars, more Fidelity and Mephisto chess computers, and more
electronic toys.
Changelog:
== System emulation ==
=== Incompatible changes ===
* The number of allow PCI host bridges for pSeries machine was reduced from 256 to 31 (more can be configured by setting up MMIO windows manually).
* Removed support for tftp:// in the block layer, since this has been broken forever for files bigger than 256KB.
=== Future incompatible changes ===
* Three options are using different names on the command line and in configuration file. In particular:
** The "acpi" configuration file section matches command-line option "acpitable";
** The "boot-opts" configuration file section matches command-line option "boot";
** The "smp-opts" configuration file section matches command-line option "smp".
:-readconfig will standardize on the name for the command line option.
* Behavior of automatic calculation of SMP topology when some SMP topology options for -smp are omitted (sockets, cores, threads) will change in the future. If guest ABI needs to be preserved on upgrades while using the SMP topology options, users should either set set all options explicitly (sockets, cores, threads), or omit all of them.
* Devices "allwinner-a10", "pc87312", "ssi-sd" will be configured with explicit properties instead of implicitly. This is unlikely to affect users.
* QMP command blockdev-add is still a work in progress. It doesn't support all block drivers, it lacks a matching blockdev-del, and more. It might change incompatibly.
* For x86, specifying a CPUID feature with both "+feature/-feature" and "feature=on/off" will cause a warning. The current behavior for this combination ("+feature/-feature" wins over "feature=on/off") will be changed so that "+feature" and "-feature" will be synonyms for "feature=on" and "feature=off" respectively).
=== ARM ===
* Improvements to the Aspeed board.
* Support for HLT semihosting traps in AArch32 mode (both ARM and Thumb).
* The ACPI tables for the "virt" machine type support ITS.
* The Cadence GEM device now supports multiple priority queues through the num-priority-queues property.
* The STM32F2xx board (Netduino 2) now includes ADC and SPI devices.
==== KVM ====
=== MIPS ===
* Support for 24KEc CPUs.
=== PowerPC ===
* Support for POWER9 CPUs.
* Improvements for the new "powernv" platform.
==== pSeries ====
* PCI host bridges can be associated to NUMA nodes.
* Support for more than 1 TiB of guest memory.
* Support for more than 64 GiB of MMIO window in a PCI host bridge.
* Support for the "-prom-env" parameter
=== s390 ===
* Support for CPU models.
* Support for virtio-ccw revision 2.
=== SH ===
=== SPARC ===
=== TileGX ===
=== Tricore ===
=== x86 ===
* Support for several new CPUID features related to AVX-512 instruction set extensions.
* The emulated IOAPIC (used by TCG and, with KVM, if the "-machine kernel_irqchip" option has the value "off" or "split") now defaults to version 0x20, which supports directed end-of-interrupt messages.
* Support for Extended Interrupt Mode (EIM) in the intel_iommu device. EIM requires KVM (Linux v4.7 or newer, for x2APIC support) and "-machine kernel-irqchip=split"; it is enabled automatically if interrupt remapping is enabled ("-machine kernel-irqchip=split -device intel_iommu,intremap=on").
* Support for up to 288 CPUs with the Q35 machine types. 256 or more CPUs are only supported if IOMMU and EIM are enabled.
==== Xen ====
* Support for unplugging SCSI disk.
* Support for SUSE xenlinux-compatible device unplug.
=== Device emulation and assignment ===
* QEMU now includes a generic loader pseudo-device that lets you load multiple images or values into memory at startup. This device is documented in {{src|path=docs/generic-loader.txt}}.
==== ACPI ====
* Support for hotplugging of NVDIMM devices (_FIT)
==== Block devices ====
==== Network devices ====
* Support for fault tolerance based on coarse-grained lock stepping (COLO).
==== SCSI ====
==== PCI/PCIe ====
* The sample EDU device now supports MSI.
* [http://git.qemu.org/?p=qemu.git;a=blob;f=docs/pcie.txt;h=9fb20aaed9f41c302419206e1201d151c35e5a1c;hb=HEAD PCI Express Guidelines documentation] has been added for advice on topology and PCI vs PCIe.
==== USB ====
==== VFIO ====
==== virtio ====
* New device vhost-vsock.
* Initial support for graceful handling of guest errors (i.e. QEMU should not exit on guest errors).
* Support for new virtio-crypto device.
==== Xen ====
* Support for grant copy.
=== Character devices ===
=== Crypto subsystem ===
* Support for more hash algorithms for PBKDF.
* Support for CTR mode.
=== GUI ===
* SPICE can use pure OpenGL rendering if "gl=on" is specified.
=== Monitor ===
=== Migration ===
* Support for fault tolerance based on coarse-grained lock stepping (COLO).
=== Network ===
=== Block devices and tools ===
* More QMP commands support node-name (block-stream, block-commit, blockdev-backup, blockdev-mirror, blockdev-snapshot-delete-internal-sync, blockdev-snapshot-internal-sync, change-backing-file, drive-backup, drive-mirror, nbd-server-add).
* The BLOCK_IO_ERROR event now includes the node name.
* More QMP commands accept device model names (block_set_io_throttle, blockdev-change-medium, eject, x-blockdev-remove-medium, x-blockdev-insert-medium, blockdev-open-tray, blockdev-close-tray)
* The DEVICE_TRAY_MOVED event now includes the device id.
* Throttling now applies to the guest device only, and not to block jobs or the NBD server.
* drive-backup and blockdev-backup support writing out backups in compressed format.
* The LUKS format now can configure the PBKDF iteration count.
* block-stream supports streaming from a backing file to another backing file.
* Support for replication, for coarse-grained lock stepping (COLO) fault tolerance.
* New "dd" subcomamand of qemu-img.
* The DMG driver can be compiled to a separate driver, so as to make QEMU's dependency on libbz2 optional.
* Support for iSER in QEMU's iSCSI initiator through a iser:// URI.
* The NBD client and server support the NBD_CMD_WRITE_ZEROES extension.
* Raw images support "offset" and "size" options to access only a part of the file or device.
=== Tracing ===
* New tracing backend "syslog".
* Support for multiple "-d trace:PATTERN" command-line arguments.
=== CLI options ===
== User-mode emulation ==
=== Removed target support ===
* The unicore32-linux-user target implemented a different system call ABI from mainline Linux for this architecture. Support for it has been dropped.
=== New functionality ===
* Added support for more syscalls including preadv, pwritev, syslog.
* Major scalability improvements for multi-threaded programs (ARM, SPARC, x86).
* QEMU can now understand and generate fence and cmpxchg operations.
== TCG ==
* New TCG primitives have been added for safely modelling architectural synchronisation instructions (e.g. atomics, LL/SC, LOCK prefixes). arm, aarch64, alpha and x86 targets now use these primitives for multi-threaded linux-user programs. TCG target maintainers are encouraged to port their front-ends to use the new facilities.
* The TCG backends now emit appropriate barrier instructions for frontend barriers when running multi-threaded programs. However, emulating a strongly-ordered architecture (e.g., x86) on a weakly-ordered one (e.g., ARM or POWER) will not work yet.
* tb_flush() is finally thread-safe meaning multi-threaded programs are less likely to crash when the translation buffer is reset
* lock contention in the main cpu run-loop has been reduced improving performance for multi-threaded code
* a number of races were identified and fixed
A lot of the TCG work merged in this cycle where prerequisites for supporting multi-threaded system emulation (MTTCG). While full MTTCG support is expected to be merged in the next development cycle, multi-threaded linux-user programs will already benefit from this work.
to take a snapshot from github. Update to 7964e2b72d9.
Changes: too many to list them all, full list of changes is available at
https://github.com/simh/simh/blob/master/README.md
Highlights:
- many new simulators
- simulator front panel API
- VAXstation video display simulation using SDL
- UDP and NAT packet transports
- scripting support
Many of these definitely do not depend on readline.
So there must be a different underlying problem, and that
should be tracked down instead of papering over it.
Solves:
/usr/libexec/binutils225/elf/ld.gold: error: cannot find -lreadline
The missing specification is obvious on DragonFly because there's
no publically accessible version of readline in base.
---------------------------
Emulation:
- Machine:
- Support for MegaST & MegaSTE machines added
(this also replaces the Real Time Clock / RTC option, since this chip
is only available on the Mega machines)
- The general purpose registers of the TT SCU are now correctly emulated
(this fixes the problem with AHDI not finding any partitions during boot)
- HD:
- Fix: Disable GEMDOS opcodes after GEMDOS drive is disabled
- Fix: GEMDOS HD can now be initialized multiple times,
e.g. when running EmuTOS RAM image from a normal TOS
- Fix: WORD access to IDE data register at 0xf00002
- Fix: '*.*' pattern with GEMDOS HD should match also files
without extension
- Video:
- Full rewrite of the GLUE state machine, including support for the
4 wakeup states in STF mode, as well as more accurate video timings
(hbl, timer b, top/bottom and left/right removal, mixing 50/60/71 Hz
lines)
- Correctly shows the last 8 pixels for STE 224 byte overscan
- Fix: reading video counter $FF8205/07/09 after modifying it
while display is ON
- Fix: location of the video counter's restart when screen runs at 60 Hz
- TT: sync ST & TT color registers immediately on write, handle
palette bank setting correctly, fix duochrome colors
- Falcon: handle byte access special case for ST color registers
- Falcon: border color support also in HiColor
- better hbl/timer b interrupts when CPU runs at 16/32 MHz
- Sound:
- Special cases for STE DMA sound when start address = end address
- Increase STE DMA volume when compared to the YM2149 volume
- Greatly improve Falcon DMA sound
- CPU:
- use WinUAE CPU for STF/STE mode too, not just Falcon (old CPU core
is considered deprecated)
- improved IACK and simultaneous interrupts
- access IO regs on 2 cycle boundaries when possible
- More accurate 68060 mode (instructions from previous CPU versions
removed in 68060 aren't accepted/emulated anymore)
- Misc bus error / IO mem register handling fixes for TT & Falcon
(e.g. add TT DIP switch register handler)
- Blitter:
- Better bus arbitration when blitter is started
- Don't cause bus error when accessing regions causing CPU bus error
- Fixes to DSP addressing
- Floppy:
- Fix the value of the WPT bit when inserting/ejecting a write protected
floppy
Are you getting fidgety waiting for Halloween to arrive? Well now
you can take your mind off the wait by giving the brand-new MAME
release a spin! We've changed the release slightly this month: the
whatsnew file is formatted differently, the 32-bit Windows binary
package has "32bit" in its filename, and we're no longer providing
a pre-built debug binary package for Windows. We've dropped the
debug binaries as they don't seem to have a target demographic.
All builds include the MAME debugger. The release packages are
built with symbols that will give a meaningful stack trace. The
debug build was still optimised, so stack traces were no more
precise. The main difference is that debug builds have assertions
enabled which is mainly useful if you're working on the source. In
short, we don't see a use case where someone would be better off
with the debug build if they aren't compiling MAME themselves
anyway.
With that out of the way, what surprises does MAME have in store
for you all this month? We're pretty confident that we have something
for everyone! First of all, we're proud to present the Soviet arcade
game Istrebiteli ("Fighters", as in aircraft). We've also emulated
Ocean to Ocean, an early video slots game on the DECO Cassette
system. ShouTime has worked his magic again, allowing the masses
to see the rare Alpha Denshi title Splendor Blast II. But possibly
most interesting is preliminary emulation of the Magnet arcade
system, a prototype floppy disk-based system from Spain.
We've also added a number of non-arcade systems. There's the Gakken
Game Robot 9 handheld game, and several Fidelity chess systems.
Getting away from games altogether, we've added a working driver
for a VeriFone Trans payment terminal. There have been some
substantial updates to the software lists, too. The Sega CD software
list has been completely updated to use the latest and best dumps
known to exist, we've replaced a number of pirate Apple II disk
images with clean cracks, there are some notable additions to the
Sharp X68000 floppy list, and even an obscene Pokémon hack for
Game Boy that's being sold in China.
according to https://wiki.winehq.org/Gcc :
some program (steam) require ms_hook_prologue which is only in gcc 4.5
but gcc 4.6 broke support for it, so require 4.7.
addresses PR pkg/42218 indirectly
It was used as a fallback for NetBSD-5.x http://gnats.netbsd.org/46565
This PR was closed in 2015 as NetBSD-5.x has been eol'ed.
This version 0.15.1nb18 isn't functional on NetBSD-7.x neither CentOS 7.x.
bug was fixed, but gcc 5.0 is explicitly required by the package.
see scripts/genie.lua. It also mentions GCC 5.2 being problematic
in the same file.
given that nobody has tested it for <5.3, leave it at 5.3 required.
The end of the month is almost here, and it's time to unwrap another
shiny MAME release. This time around we've had the pleasure of
seeing Angelo Salese show us all that he's a bug-fixing machine,
resolving many long-standing bugs in playable games (including
graphical glitches in Combat School, and issues with slopes in
Sunset Riders). Highlights from newly emulated machines include
the Esselte 100 classroom computer from Sweden (thanks Edstrom),
Slap Shooter (courtesy of ShouTime and the Dumping Union), the
French version of the Apple //e Enhanced, the original Japanese
version of Street Fighter with pneumatic buttons (thanks ShouTime),
and the original version of Nintendo's Popeye on Sky Skipper hardware
(yet another gem from ShouTime).
On the gambling front, we have another batch of layouts from John
Parker, clickable button lamps for more machines from einstein95,
and improved inputs/output for a number of games from AJR. Speaking
of inputs and outputs, Risugami added/improved outputs and layouts
for a number of Midway games.
This release includes preliminary support for persistent controller
ID mappings from Tomer Verona. This may help if you're having issues
with Xbox controllers appearing in a different order when you
relaunch MAME. If you're interested, check out the documentation
and see if it helps. It's still not particularly easy to use, but
it's ready for testing and improvement and may be useful, particularly
for people with wireless controllers.
Other notable improvements include working envelope and LFSR
emulation for Mega Duck, better emulation of MCU communication for
Taito Super Qix hardware, support for multiple BBC Micro floppy
drive controllers, restoring the ability to have MAME accept incoming
socket connections to communicate with an emulated serial port,
and more features for the UI graphics viewer.
MAME 0.178 also adds software list updates with the latest prototype
cartridge dumps, numerous bootlegs and alternate versions of
supported games, and steady progress on non-working systems like
the CMI IIx and LSI Octopus.
try to use networking code under NetBSD.
netbsd won't let you manipulate _res in a multithreaded program and
instead calls abort(). avoid the code that does this for now.
it's possible that it broke the ability to resolve domains and I
didn't see this yet - but I'm able to use network programs now.
bump PKGREVISION
NetBSD has gethostbyname_r in libc, and it's incorrectly detected
as being sufficiently linux-like by wine, but it likely returns
different errors.
force fail the configure test for linux-like gethostbyname_r, which
already allows use of alternative networking functions.
fixes wine bug #40865: Steam does not connect to internet
bump PKGREVISION
updated by Adrian Fernandes in pkgsrc-wip
tested on netbsd/i386, netbsd/amd64.
Linux and Darwin will likely need a PLIST update.
Possibly incomplete changelog 1.7.36 -> 1.9.18:
Support for multiple kernel drivers in a single process.
More WebServices reader support.
Various improvements in joystick support.
Some more work towards the Direct3D command stream.
GDI performance improvements.
Improved IME window handling.
Compatibility fixes in the clipboard support.
Better exception handling on 64-bit.
Various improvements in joystick support.
Some more stream support in the C++ runtime.
Font embedding improvements.
More metafile support in GDI+.
Better 64-bit binary compatibility on macOS.
Performance improvements in JavaScript.
More progress towards the Direct3D command stream.
More shader instructions in Direct3D.
Performance improvements in GDI.
More shader instructions in Direct3D.
Performance improvements in GDI.
Better multi-joystick support on macOS.
Active Scripting improvements.
Additional stream support in the C++ runtime.
More Shader Model 5 support in Direct3D.
Some more write support in WebServices.
Performance improvements in GDI.
Some more progress towards the Direct3D command stream.
New version of the Gecko engine based on Firefox 47.
More Shader Model 5 support in Direct3D.
Unicode data updated to Unicode 9.0.0.
Improvements to GDI paths and metafiles.
More progress towards the Direct3D command stream.
Joystick support improvements on Mac OS X.
Bug fix update of the Mono engine.
Initial version of a taskbar in desktop mode.
Fixes for right-to-left languages in Uniscribe.
More Shader Model 4 support in Direct3D.
Better metafile support in RichEdit.
Better support for long URLs in WinInet.
Various Direct3D 11 improvements.
Down-mixing support in DirectSound.
Some cosmetic improvements in desktop mode.
High resolution ("Retina") rendering option on Mac OS X.
More compatible directory enumeration.
A number of C++ runtime fixes.
Video output improvements.
More work towards the WineD3D command stream.
Service proxies in WebServices.
Query support in the builtin reg.exe utility.
Improved support for long URLs in WinInet.
More work towards the WineD3D command stream.
Bug fix update of the Mono engine.
More WebServices reader support.
Still more Shader Model 5 support.
Support for gradients in metafiles.
Improved table formatting in WinHelp.
More work towards the WineD3D command stream.
More support for Shader Model 5 shaders.
C++ exception handling on x86-64.
Support for Windows-style static import libraries.
Performance fixes in the XML writer.
Better video card detection when using Mesa.
Support for Shader Model 5 shaders.
C++ exception handling improvements.
New version of the Mono engine, with 64-bit support.
Beginnings of the WineD3D command stream.
Support for effect states in Direct3DX.
Drag & drop improvements.
Support for color glyphs and font fallbacks in DirectWrite.
Improvements to the WebServices reader.
Support for more formats in Direct3D 11.
Simplified syntax and clean up of tests marked todo.
Various bug fixes.
New version of the Gecko engine based on Firefox 44.
JSON support in JavaScript.
Improved line breaking in DirectWrite.
Some more write support in WebServices.
Still more Shader Model 4 instructions.
GStreamer 1.0 support.
Support for SHA hashes in BCrypt.
Synthesizing bold glyphs also for bitmap fonts.
Underlines support in DirectWrite.
Still more Shader Model 4 instructions.
A few more deferred fixes.
Support for debug registers on x86-64.
More Shader Model 4 instructions.
Support for the Mingw ARM toolchain.
A number of fixes that were deferred during code freeze.
WSAPoll implementation.
Standard font dialog fixes.
X11 drag&drop improvements.
Pulse audio driver.
Various fixes for Microsoft Office 2013 support.
Some more implementation of the Web Services DLL.
More fixes for the latest C runtime version.
Improvements to the Makefile generation.
Implementation of the TransmitFile function.
More implementation of the Web Services DLL.
Improved video decoding.
Alternative for the deprecated prelink tool.
Major Turkish translation update.
Support for the various versions of XAudio.
More implementation of the Web Services DLL.
Improved OLE object embedding.
Various code cleanups in Direct3D.
New MAINTAINERS file and Signed-off-by requirement to improve the patch review process.
Unicode data updated to Unicode 8.0.0.
Some implementation of the Web Services DLL.
More Direct3D 11 interfaces.
A few more functions in the C++ runtime.
Output standard glyph names in the PostScript driver.
XAudio2 implementation using OpenAL Soft.
Support for the new Universal C Runtime DLL.
Dropdown menu support in the standard Open Dialog.
Grayscale rendering mode in DirectWrite.
New version of the Gecko engine based on Firefox 40.
First steps of the Direct3D 11 implementation.
Better font matching in DirectWrite.
Support for OpenMP on ARM platforms.
DirectWrite is now good enough for rendering text in Steam.
A number of Direct2D improvements.
Some more OpenMP functions.
Support for namespaces in the IDL compiler.
Fleshed out OpenMP implementation.
I/O stream support in the MSVCIRT C++ runtime.
Support for pixel snapping in DirectWrite.
More support for OpenGL core contexts.
Text drawing in Direct2D.
Support for the new thread pool API.
Toolbar state saving.
Beginnings of an implementation for proper HID support.
Support for file objects in device drivers.
Improvements in the BITS file transfer service.
Still more progress on DirectWrite implementation.
Support for shared user data on 64-bit.
Various C++ runtime improvements.
Some more support for the 64-bit ARM platform.
Better debugging support on 64-bit Mac OS X.
Some more progress on DirectWrite implementation.
A number of RichEdit control fixes.
Beginning implementation of the old MSVCIRT C++ runtime.
More support for the COM interfaces of the RichEdit control.
Initial version of a SmartTee filter.
Some more support for the ARM64 platform.
Support for the null device kernel object.
Improved support for Shell Browser windows.
Some more API Sets libraries.
Read/write operations support with built-in devices.
Major Catalan translation update.
Support for WoW64 mode on ARM64.
Support for dynamic timezone information.
Initial desktop shell window support.
Some more Direct2D support.
More Known Folders supported in the shell.
Some more support for kernel job objects.
More MSI patches improvements.
Some theming fixes.
Support for kernel job objects.
Various fixes to the ListView control.
Better support for OOB data in Windows Sockets.
Support for DIB images in the OLE data cache.
Improved support for MSI patches.
Some fixes for ACL file permissions.
WinMM joystick support on Mac OS X.
Kerning support in DirectWrite.
Support for DirectX Media Objects filters.
Better support for animated GIFs in GdiPlus.
Improved support for Known Folders in Shell32.
New version of the Gecko engine based on Firefox 36.
Support for themed scrollbars.
Updated version of the Mono engine.
More compatible RPC interface for service control.
Support for X Drag & Drop version 5.
Threading fixes in IME support.
Interface change notifications.
Support for the UTF-7 encoding.
A number of graphical fixes for themed controls.
Wininet now implemented on top of Win32 sockets.
Changelog:
System emulation
Incompatible changes
SPI flash devices "160s33b", "320s33b", "640s33b", "at25df041a", "at25df321a", "at25df641", "at25fs010", "at25fs040", "at26df081a", "at26df161a", "at26df321", "at26f004", "at45db081d", "en25f32", "en25p32", "en25p64", "en25q32b", "en25q64", "gd25q32", "gd25q64", "m25p05", "m25p10", "m25p128", "m25p16", "m25p20", "m25p32", "m25p40", "m25p64", "m25p80", "m25pe16", "m25pe20", "m25pe80", "m25px32", "m25px32-s0", "m25px32-s1", "m25px64", "m45pe10", "m45pe16", "m45pe80", "mx25l12805d", "mx25l12855e", "mx25l1606e", "mx25l2005a", "mx25l25635e", "mx25l25655e", "mx25l3205d", "mx25l4005a", "mx25l6405d", "mx25l8005", "n25q032", "n25q032a11", "n25q032a13", "n25q064", "n25q064a11", "n25q064a13", "n25q128", "n25q128a11", "n25q128a13", "n25q256a11", "n25q256a13", "s25fl016k", "s25fl064k", "s25fl129p0", "s25fl129p1", "s25fl256s0", "s25fl256s1", "s25fl512s", "s25sl004a", "s25sl008a", "s25sl016a", "s25sl032a", "s25sl032p", "s25sl064a", "s25sl064p", "s25sl12800", "s25sl12801", "s70fl01gs", "sst25vf016b", "sst25vf032b", "sst25vf040b", "sst25vf080b", "sst25wf010", "sst25wf020", "sst25wf040", "sst25wf512", "w25q256", "w25q32", "w25q32dw", "w25q64", "w25q80", "w25q80bl", "w25x10", "w25x16", "w25x20", "w25x32", "w25x40", "w25x64", "w25x80" connect to a backend explicitly named by a "drive" property instead of an implicit -drive if=mtd. This only affect devices created explicitly with -device; "-drive if=mtd" still works for SPI flash devices created by boards, so this should affect almost no one.
Support for the original qcow2 image encryption has been disabled entirely from the system emulators. While QEMU 2.3 attempted to keep it available in system emulators, a bug in the code has actually broken it since 2.4, and no one complained. Supported for the format remains available only in command line tools qemu-img, qemu-io, qemu-nbd to facilitate data liberation. It is recommended to use 'qemu-img convert' to convert qcow2 encrypted images to uncrypted ones. The new LUKS encryption driver can provide a secure replacement, and a future release may integrate luks into qcow2 natively.
Autoconverge is not considered experimental anymore; autoconverge-related commands do not have the "x-" prefix anymore.
The MIPS64R6-generic CPU model was renamed to I6400.
On Q35 machines, IOMMU are now enabled with "-device iommu" instead of "-machine iommu=on".
Future incompatible changes
Three options are using different names on the command line and in configuration file. In particular:
The "acpi" configuration file section matches command-line option "acpitable";
The "boot-opts" configuration file section matches command-line option "boot";
The "smp-opts" configuration file section matches command-line option "smp".
-readconfig will standardize on the name for the command line option.
Behavior of automatic calculation of SMP topology when some SMP topology options for -smp are omitted (sockets, cores, threads) will change in the future. If guest ABI needs to be preserved on upgrades while using the SMP topology options, users should either set set all options explicitly (sockets, cores, threads), or omit all of them.
Devices "allwinner-a10", "pc87312", "ssi-sd" will be configured with explicit properties instead of implicitly. This is unlikely to affect users.
QMP command blockdev-add is still a work in progress. It doesn't support all block drivers, it lacks a matching blockdev-del, and more. It might change incompatibly.
ARM
The "virt" machine type has support for NUMA.
We now implement an emulated GICv3 interrupt controller, which is supported by the "virt" board and can be enabled with "-machine gic-version=3". Note that many guest OSes do not correctly support a GICv3 without security extensions; if your guest is Linux it must include commit 7c9b973061 "irqchip/gic-v3: Configure all interrupts as non-secure Group-1" or a backport of that patch to one of the stable branches. UEFI and FreeBSD are also known to need similar bug fixes.With a GICv3 the "virt" board now supports TCG (emulated CPU) configurations with more than 8 vCPUs.
New Xilinx Zynq ZCU102 board (-M xlnx-zcu102).
Xilinx Zynq boards have experimental support for ARM Security Extensions.
Xilinx Zynq MP supports DisplayPort (graphics and audio) and DDC (used for EDID info).
i.MX6?
KVM
Xilinx Zynq boards support KVM on AArch64 hosts.
MIPS
Support for 10-bit ASIDs
The MIPS64R6-generic CPU model was renamed to I6400.
Initial GIC support
Support for IEE 754-2008
PowerPC
Many TCG fixes.
mac99 machine can now boot MacOS >= 9.1
pSeries
Significant performance improvements for the spapr-llan device.
Support for CPU hotplug.
Performance improvements for VFIO through dynamic DMA windows.
s390
Support for runtime instrumentation
The IPL firmware can boot from devices in subchannel sets > 0
Major refactoring and improvements of the s390x-specific PCI code
Optionally, zPCI specific 'uid' and 'fid' attributes may be provided
Guest-acknowledged hotunplug (rather than 'surprise removal' only)
bootindex support for IPL from SCSI devices
SPARC
Fix for sun4m Solaris 9 "Segmentation fault" regression (see bug #1588328)
x86
CPU hot-remove support based on generic device_add/device_del interface
support arbitrary CPU adding/removal
Limitation: 1st (boot) CPU isn't removable
KVM
Support for LMCE (local MCE) virtualization, which will require Linux 4.8. LMCE can be enabled through "-cpu model,lmce" on all CPUs as long as the kernel supports it.
Device emulation and assignment
ACPI
NVDIMM devices are now described in the ACPI tables and support labels.
new ACPI CPU hotplug MMIO interface since 2.7 machine types for PC/Q35
more than 255 CPUs support
CPU hot-remove support
Guest side CPU hotplug status notification via _OST events
Block devices
Removed dataplane blockers? (Fam)
New -device properties replacing -drive properties?
virtio-blk now supports multiqueue through a "num-queues" device property.
Network devices
New device e1000e for Intel 82574 NIC.
QEMU now includes iPXE ROMs for vmxnet3 devices.
SCSI
scsi-block now passes sense data correctly to the guest, so that it can support for example persistent reservations.
Support for passthrough of SCSI scanner.
PCI/PCIe
On Q35 machines, IOMMU are now enabled with "-device iommu" instead of "-machine iommu=on".
USB
Support for Xen paravirtualized USB
usb-bot and usb-uas now support hotplug.
VFIO
Support for device assignment of Intel integrated graphics devices.
The SR-IOV capability is now hidden to guests when passing through a physical function.
virtio
Initial reconnect support for vhost-user.
Support for busy polling on vhost-net devices ("-netdev tap,...,poll-us=n").
virtio-gpu multi-monitor fixes
virtio-gpu 2d live migration support
Character devices
QEMU for Windows: Fixed handling of files used for character devices – they are now truncated by default like on Linux.
TLS support
Support for overriding the TLS property, for example "-object tls-creds-x509,...,priority=NORMAL:-VERS-SSL3.0" disables SSL 3.0. This can be used both to use a non-standard weaker set of prioririties, or to enforce a stronger default for QEMU. The default priority can also be specified through "--tls-priority=VALUE" at configure time.
GUI
A new option "-machine graphics=on|off" lets you disable graphics in the VM like "-nographic" (e.g. OpenBIOS will use the serial port for boot messages) but without an implicit "-display none".
Monitor
new 'info hotpluggable-cpus' and corresponding 'query-hotpluggable-cpus' QMP commands
to list present/possible CPUs with properties necessary to add a CPU instance using device_add for a given '-smp ...' layout
supported by x86 and SPAPR softmmu targets
Migration
Autoconverge is not considered experimental anymore. Autoconverge-related commands do not have the "x-" prefix.
TODO: TLS support
Network
User-mode networking supports DHCPv6, RDNSS, DNS6 and link-local DNS addresses.
Socket networking in TCP mode can now run over IPv6. UDP and multicast modes do not support IPv6 yet.
Block devices and tools
New "bench" command in qemu-img .
The "write" command in qemu-io grew "-f" and "-z -u" options.
TODO: Block job ids?
TCG
Speed improvements around 20%.
Fixes for self-modifying code.
Tracing
TODO: dfilter
TODO: tracing for qemu-io, qemu-img and qemu-nbd
CLI options
'-cpu cpu-model,feat1=foo,...' acts as a set of '-global cpu-model-type.feat1=foo' options, which affects initial CPUs as well as all CPUs created with help of -device/device_add/cpu-add for a given cpu-model
doesn't apply to SPARC target which uses legacy -cpu semantics as its features haven't been converted to properties.
Today marks the end of the southern winter/northern summer, and
time for the hotly anticipated August MAME release. Possibly most
importantly, we've fixed the issues that were causing menus to
display off the edge of the screen on Windows (MT06335). We've
integrated a fix for Aimtrack Dual Lightguns on windows from new
contributor Pitou, and the behaviour of XAudio2 sound output should
be much improved when adjusting game speed to match monitor refresh
rate. Mouse behaviour on SDL builds (Linux/Mac) is also improved.
Thanks very much to all the users who reported issues and helped
out testing fixes.
We have lots of newly working computer systems to show off: Xerox
Alto-II, TeleNova Compis (a 16-bit educational computer from Sweden),
Victor 9000, Wang Professional Computer (DOS-based but not IBM
compatible), Atari Portfolio (of Terminator 2 fame), and Vector-06C
(a mass-produced Soviet home computer). Newly working games include
Namco Techno Drive, the original Japanese release of Orca's River
Patrol, Korean puzzle game Intergirl, and gambling game Magical
Butterfly. Speaking of gambling games, this release is a huge update
for BFM, JPM and Maygay fruit machines. John Parker has created a
tool that converts MFME layouts to MAME layouts and contributed
layouts for hundreds of games. This should make it far easier and
more rewarding to work on these drivers.
MAME now includes a driver for a VGM music file player virtual
machine (VGM is a popular video game music file format). This
feature is primarily intended as a way for developers to test sound
cores and do A/B comparisons, as it's a lot easier to just load a
VGM test case than to play a game until it uses the sound chip
feature you want to test, but it's also a convenient way to enjoy
a wide variety of video game music. You can try it out by running
mame vgmplay -bitb file.vgm or choosing "VGM player" from the list
of systems and loading a VGM file in the appropriate media slot
through the internal file manager.
The generic serial terminal and keyboard devices have been greatly
improved. This should make computers controlled via serial port
far more usable. (Keyboard layout, key repeat, simultaneous
keypresses, local echo, auto CR/LF and audible bell have all been
improved and/or made configurable.)
There are a number of improvements for MAME developers and
contributors. We now allow Unicode characters in C++ and Lua source
comments. This can make documentation clearer when referring to
original machine labels. Source files must be encoded in UTF-8 with
no initial byte order mark. Non-ASCII characters are allowed in
comments, but not in most other parts of source files. Source and
comments must still be written in English. We've improved build
times a little, and migrated a lot of MAME-specific constructs to
standard C++14 library features. A number of MAME APIs have been
streamlined and modernised. The palette viewer now shows some
details about the colour swatch under the mouse pointer (press F4
during gameplay to show, this may be interesting to regular users
as well).
Of course, this release also comes with more alternate versions of
games supported (including The NewZealand Story, Metamorphic Force,
Super Hang-On, Terminator 2, Golden Tee '98, Gulf Storm, and Teenage
Mutant Ninja Turtles), and other fixes and improvements for machines
already emulated by MAME (including Midway V-Unit outputs/layouts
from Risugami and input/output improvements for gambling/medal
games from AJR).
It's the last Wednesday of the month, and time for another MAME
release. We'd like to thank the Debian team for their help during
this development cycle: they've provided patches allowing MAME to
build cleanly on several more platforms, and arranged access to
IBM-sponsored POWER8 machines so we could improve our PowerPC
support.
The popular crt-geom and crt-geom-deluxe shaders have been ported
to BGFX and are now distributed with MAME, thanks to cgwg. The BGFX
versions of these shaders allow live adjustment of effect parameters
through the slider controls menu.
Interesting newly supported games include rare Soviet arcade games
Gorodki and Kot Rybolov, gambling mahjong game Swing Gal, and
alternate versions of Beastie Feastie and Raiden Fighters 2. Graphical
issues have been fixed in Seibu Kaihatsu's Denjin Makai, Godzilla,
Legionnaire and Zero Team, and there are some improvements to the
Tandy CoCo 3 palette. A few remaining gameplay issues in Taito's
Operation Wolf were resolved.
Thanks to a huge group effort involving some of our highly valued
external contributors as well some MAME team members, we've got
some visible progress on the Sun SPARCstation drivers. The SPARCstation
IPC (sun4_40 driver) now passes its self-tests and allows you to
use the OpenBoot interactive Forth interpreter at the ok prompt.
Note that there are still issues with SCSI emulation, so it won't
boot from and emulated hard disk or CD-ROM. In other news for
emulation of professional systems, MAME now supports the TeleVideo
990 and 995-65 terminals.
For people using CRT monitors and/or running games at native
resolution, we've added a lot of characters to the uismall.bdf font
supplied with MAME. It now covers most European languages using
Latin and Cyrillic scripts, as well as modern Greek and half-width
katakana. Changes were also made to improve legibility.
For developers, scrolling and hilighting in the state (registers)
view have been fixed, and viewing memory in the debugger no longer
causes spurious side effects like bank switches in systems like the
Apple II and Osborne 1. There's also been a lot of refactoring and
modernisation, particularly in the netlist and UI code.
Get ready for your vacation and grab MAME 0.175!
We're proud to say MAME now supports a number of previously unemulated
prototypes, alternate versions of games, and unusual systems.
Prototypes include the super-rare Konami Kyuukoukabakugekitai, Home
Data's Mahjong Joshi Pro-wres Give Up 5 Byou Mae, and an early
Japanese version of E.D.F.: Earth Defense Force. Atari Moto Frenzy,
previously lacking protection emulation, is now fully playable.
We've also added a number of gambling games, including some Flaming
7's variants.
Many more Game Boy peripherals are now supported, including real-time
clocks, light sensors and tilt sensors. This makes several previously
unsupported games fully playable.
This release includes improvements to the Sega Master System and
SG-1000 emulation, including better SG-1000 expansion slot support,
and drivers with correct clock speeds for South American Master
System variants.
There's some big news in Sun emulation: all sun3 models will now
POST, MAME has a SPARCv7 CPU core, and there has been substantial
progress towards emulating the SPARCstation 1 (sun4c). Using unidasm
(built with TOOLS=1) you can disassemble SPARCv7 SPARCv7 or SPARCv9
code, incuding all VIS variants up to VIS-3B.
As usual, there are many emulation improvements, including fixes
for keyboard controls in some TRS-80 games, and better Seibu COP
emulation in Legionnaire, Heated Barrel and Godzilla.
In less visible changes, MAME's memory system got a nice cleanup
exposing a number of existing issues which are now fixed, and the
netlist-based discrete circuit simulation code has had a major
overhaul with lots of performance improvements. There are a number
of improvements to MAME's debugger modules in this release,
particularly the imgui-based debugger.
Keystone is a lightweight multi-platform, multi-architecture assembler
framework.
It offers some unparalleled features:
* Multi-architecture, with support for Arm, Arm64 (AArch64/Armv8), Hexagon,
Mips, PowerPC, Sparc, SystemZ & X86 (include 16/32/64bit).
* Clean/simple/lightweight/intuitive architecture-neutral API.
* Implemented in C/C++ languages, with bindings for Python, NodeJS, Ruby,
Go & Rust available.
* Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris
confirmed).
* Thread-safe by design.
* Open source - with a dual license.
Keystone is based on LLVM, but it goes much further with a lot more to offer.
This package ships with Python bindings.
Originally packaged in pkgsrc-wip by myself.
Keystone is a lightweight multi-platform, multi-architecture assembler
framework.
It offers some unparalleled features:
* Multi-architecture, with support for Arm, Arm64 (AArch64/Armv8), Hexagon,
Mips, PowerPC, Sparc, SystemZ & X86 (include 16/32/64bit).
* Clean/simple/lightweight/intuitive architecture-neutral API.
* Implemented in C/C++ languages, with bindings for Python, NodeJS, Ruby,
Go & Rust available.
* Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris
confirmed).
* Thread-safe by design.
* Open source - with a dual license.
Keystone is based on LLVM, but it goes much further with a lot more to offer.
Originally packaged in pkgsrc-wip by myself.
Remove merged patches.
We're pleased to announce the release of MAME 0.174!
This new release includes some exciting newly-playable machines,
including the Tiger Game.com handheld and the ultra-rare Seibu
Kaihatsu title, Metal Freezer.
Meanwhile, the Apple 2 driver now supports the Mockingboard 4C card,
and the regressions in the IT Eagle (Golden Tee Fore) driver's
colors from the previous release have been fixed.
Last but not least, there should be better support for DirectInput
8 on Windows, including supporting older game controllers which
previously only worked using the DirectInput 7 module. If you still
have a controller which DirectInput 8 does not support that you
regularly use, please contact us so that we know what controllers
still do not work.
Changelog:
System emulation
Incompatible changes
The aio=native option to "-drive" now requires the cache=none option, instead of silently disabling itself for other cache modes. The newly invalid combination had been warning since QEMU 2.3.
Specifying block device parameter aio=native is now an error on POSIX systems if qemu is compiled without libaio support. The newly invalid combination had been warning since QEMU 2.3.
The experimental x-drive option for the sdhci-pci device has been removed. Instead of passing a drive directly to the SD controller device you now must create an SD card object (which will automatically be plugged into the SD controller), so "-device sdhci-pci,x-drive=mydrive -drive id=mydrive,[...]" becomes "-device sdhci-pci -device sd-card,drive=mydrive -drive id=mydrive,[...]".
The s390-virtio machine has been removed.
Machine types pc-q35-1.4, pc-q35-1.5, pc-q35-1.6, pc-q35-1.7, pc-q35-2.0, pc-q35-2.1, pc-q35-2.2 and pc-q35-2.3 have been removed.
The "virt" machine type's flash device has changed when TrustZone is active ("-machine virt,secure=on"). The first flash device is only available in secure memory, while the second is available in non-secure memory too.
Future incompatible changes
Three options are using different names on the command line and in configuration file. In particular:
The "acpi" configuration file section matches command-line option "acpitable";
The "boot-opts" configuration file section matches command-line option "boot";
The "smp-opts" configuration file section matches command-line option "smp".
-readconfig will standardize on the name for the command line option.
Behavior of automatic calculation of SMP topology when some SMP topology options for -smp are omitted (sockets, cores, threads) will change in the future. If guest ABI needs to be preserved on upgrades while using the SMP topology options, users should either set set all options explicitly (sockets, cores, threads), or omit all of them.
The original qcow2 image encryption is fatally flawed, and support for it will be disabled entirely from the system emulators. It'll remain available only in command line tools qemu-img, qemu-io, qemu-nbd to facilitate data liberation. It is recommended to use 'qemu-img convert' to convert qcow2 encrypted images to uncrypted ones. The new LUKS encryption driver can provide a secure replacement if raw files are acceptable, while a future release will integrate luks into qcow2 natively.
A few devices will be configured with explicit properties instead of implicitly. Unlikely to affect users; for the full list, see the 2.3 ChangeLog.
QMP command blockdev-add is still a work in progress. It doesn't support all block drivers, it lacks a matching blockdev-del, and more. It might change incompatibly.
ARM
Support for a separate EL3 address space
System mode supports BE8 and BE32. Note that qemu-system-arm can emulate both big-endian and little-endian guests (unlike user-mode emulation which has separate qemu-arm and qemu-armeb binaries).
Support for the SETEND instruction, used most notably on Raspbian through the arm-mem library (previously known as libcofi).
Faster boot thanks to DMA support in fw_cfg
The "virt" machine type supports a virtual power button and the "system_powerdown" monitor command
The "virt" machine type supports configuring network cards with -nic in addition to -netdev
The RAM limit for the "virt" machine type is now 255GB
The "xlnz-zynqmp" machine type now includes SPI controllers
The "xlnx-ep108" machine type now supports SPI flash
New partial Raspberry Pi 2 emulation with "raspi2" machine type. For now, it can boot older releases of Windows and Raspbian, but lacks a number of devices including USB.
New palmetto-bmc machine type using the new, partial ASPEED AST2400 SoC implementation
KVM
Support for guest debugging (software and hardware breakpoints, single step) on AArch64
MIPS
Support for FPU and MSA in KVM guests
Support for R6 Virtual Processors
Initial support for Cluster Power Controller and Global Configuration Registers allowing the guest to control the start of Virtual Processors
Support for Inter-Thread Communication Unit
Support for MAAR registers in P5600 CPU
PowerPC
Improved support for migration of g3beige and mac99 machines
Fix serial ports for g3beige and mac99 machines (OpenBIOS)
The gdb stub supports the VSX instruction set extensions
pSeries
pSeries machine types starting at pseries-2.6 use XHCI as the USB host controller instead of OHCI
Support for more hypercalls (H_SET_SPRG0, H_SET_DABR, H_SET_XDABR and H_PAGE_INIT)
Support for EEH on assigned PCI devices can use the normal spapr-pci-host-bridge instead of the special spapr-pci-vfio-host-bridge.
s390
Fixes and improvements in s390x PCI support
Support for hotplug of s390x cpus via cpu-add
Support for booting from virtio-scsi devices in the s390-ccw bios
SH
SPARC
sun4m: Fix for ldstub instruction resolves several 32-bit Solaris bugs (MUTEX_HELD hang, libC error, Java WebStart segfault)
sun4u: FreeBSD 10.3+ can now run under qemu-system-sparc64 in -nographic mode
TileGX
Tricore
Support for context management, illegal opcode and opd traps
Support for FPU instructions
x86
TCG
Support for the XSAVE/XSAVEOPT, MPX, FSGSBASE and PKE features
KVM
Support for "split irqchip". In this mode, QEMU emulates the IOAPIC, PIC (i8259) and PIT (i8254) devices while leaving the local APIC emulation to the kernel. This mode reduces the attack surface of KVM.
Support for the new PKU feature found in some Skylake processors
Support for migrating the TSC rate
Xen
Q35
Support resume (S3)
Support for legacy Windows guests (XP/2003)
Device emulation and assignment
New IPMI emulation subsystem. QEMU can now emulate an internal BMC or attach to an external BMC simulator such as OpenIPMI's lanserv. IPMI however is not yet exposed in SMBIOS and ACPI tables (do we want to docume?)
FIXME: what's the state of nvdimm?
ACPI
The floppy disk controller's characteristics are now exposed in the ACPI tables, which makes it possible to use floppies on Windows together with UEFI firmware.
Block devices
The floppy disk consk or an empty disk to a 2.88 MB disk
Improved compatibility of the SD device model with various operating systems and firmwares
The NVMe device supports the "bootindex" property.
The SDHCI device supports reset.
ivshmem
No longer available on hosts lacking eventfd(2), because inter-vm interrupts don't work there
New devices ivshmem-plain and ivshmem-doorbell, fully backwards compatible for guests, notable differences to ivshmem:
PCI revision is 1 instead of 0
ivshmem role=master becomes master=on, role=peer becomes master=off
ivshmem x-memdev=ID becomes ivshmem-plain memdev=ID
ivshmem shm=NAME,size=SZ becomes ivshmem-plain memdev=ID, with -object memory-backend-file,id=ID,mem-path=/dev/mem/NAME,size=SZ,share
ivshmem chardev=ID becomes ivshmem-doorbell,chardev=ID
Property ioeventfd defaults to on instead of off
ivshmem-plain never has MSI-X capability, and ivshmem-doorbell always has MSI-X capability
Device ivshmem is deprecated, and its experimental property x-memdev is gone
Interrupting a peer that reuses an unplugged peer's ID works again (broken in v1.2.0)
Unplug no longer destroys the character device, for consistency with other devices
The funny "no shared memory, yet" state is no longer guest-visible, and can no longer fail or mess up migration
Guests may require PCI revision 1 to make sure they're not exposed to the funny state
docs/specs/ivshmem-spec.txt rewritten for completeness and accuracy.
SCSI
Support for the LSI SAS1068 HBA (also known as "MPT Fusion"). Note that some operating systems will not recognize disks attached to this adapter, unless the disks are assigned a world-wide name (WWN).
PCI/PCIe
PCIe Multi-root support (using the new pxb-pcie root-compex)
USB
MTP: initial support for events
VFIO
Support for AMD XGBE platform passthrough
New sysfsdev property provides a more general way to specify the device to attach to.
Provided PCI option ROMs are fixed to include the same vendor and device id as the device exposed to the guest. This facilitates changing the ids of the devices.
virtio
Performance improvements via optimized vring accesses
The balloon driver statistics now include the amount of available memory (corresponding to "Available" in /proc/meminfo for Linux guests).
Character devices
The socket character device backend can now enable TLS over TCP connections, acting either as a TLS server:
$QEMU -object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server \
-chardev socket,id=s0,host=127.0.0.1,port=9000,tls-creds=tls0,server \
-device isa-serial,chardev=s0 \
...other args...
or a TLS client:
$QEMU -object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
-chardev socket,id=s0,host=127.0.0.1,port=9000,tls-creds=tls0 \
-device isa-serial,chardev=s0 \
...other args...
If operating in server mode, the same set of TLS credentials can be used for both character devices and the VNC server
All character devices can have their output logged to a plain file
$QEMU -chardev stdio,id=mon0,logfile=monitor.log \
-mon chardev=mon0 \
...other args...
will result in logging of all output on the HMP monitor. The logappend parameter controls whether the file is truncated at startup, defaulting to append.
GUI
SDL2 and SPICE now support OpenGL and virgl. For SPICE, Unix sockets are the only usable transport when OpenGL is enabled.
The "-vnc" and "-display vnc" options support ipv4=off and ipv6=off. Previously, only "ipv4" and "ipv6" were available.
Support getting input events directly from linux evdev devices, using "-object input-linux,id=$name,evdev=/dev/input/event$nr"
Support for ncurses on Windows.
Monitor
Support for a new "detach" option to "dump-guest-memory". The option dumps memory in the background. Progress can be queried using the new commands "info dump" (human monitor) and "query-dump" (QMP), as well as through the QMP event DUMP_COMPLETED.
Support for a new command "input-send-event" replacing the previous experimental command "x-input-send-event".
The human monitor command "drive_add -n" allows creating block devices that do not have a BlockBackend (similar to QMP blockdev-add).
Migration
Postcopy is not experimental anymore; the x-postcopy-ram capability was renamed to postcopy-ram.
Network
SLIRP now supports IPv6 for ICMP, UDP, TCP and TFTP.
mirror filter which can mirror traffic from netdev to socket chardev, vice versa.
redirector filter which can redirect traffic from netdev to socket chardev, vice versa.
Secret passing system
There is a new standard mechanism for securely passing secret credentials to QEMU, which will be used in combination with other subsystems. For example, network block device passwords, block device decryption passphrases, or TLS private key passwords can all use the same mechanism.
Passing credentials inline (insecure, only for developer testing)
$QEMU -object secret,id=sec0,data=letmein
Passing credentials via a plain file
$QEMU -object secret,id=sec0,file=mypassword.txt
Passing credentials via a base64 encoded file
$QEMU -object secret,id=sec0,file=mypassword.txt,format=base64
Passing credentials inline, encrypted with a master key (recommended for management apps)
$QEMU -object secret,id=master0,file=mykey.b64,format=base64 \
-object secret,id=sec0,data=[base64 ciphertext],\
keyid=master0,iv=[base64 IV],format=base64
TLS credential handling
It is now possible to use encrypted TLS private keys with credentials for TLS servers/clients in QEMU. The password for unlocking the private key is provided by a secret object whose id is specified via the passwordid' property
$QEMU -object secret,id=tlskey0,file=mypassword.txt \
-object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server,passwordid=tlskey0 \
...other args...
Block devices
Block device throttling now support specifying a burst length as well. While previously the burst could only be specified as a total number of IOPS (e.g. 10000 IOPS), more complex specifications such as "10000 IOPS for 10 seconds" are now possible. Note that, because of the implementation of the algorithm, a guest that is allowed "10000 IOPS for 10 seconds" will also be allowed to perform for example 5000 IOPS for 20 seconds.
The curl block device driver now supports HTTP authentication and HTTP proxy authentication via the new properties 'username', 'password-secret', 'proxy-username' and 'proxy-password-secret'.
$QEMU -object secret,id=sec0,file=password.txt \
-object secret,id=sec1,file=proxy-password.txt \
-drive driver=http,host=localhost,port=443,username=fred,password-secret=sec0,proxy-username=bob,proxy-password-secret=sec1 \
...other args...
The RBD block device driver can now use the secret object type to securely receive the authentication password without exposing it in the command line args
$QEMU -object secret,id=sec0,file=password.b64,format=base64 \
-drive driver=rbd,filename=rbd:pool/image:id=myname:auth_supported=cephx,password-secret=sec0 \
...other args...
The iSCSI block device driver can now use the secret object type to securely receive the authentication password without exposing it in the command line args
$QEMU -object secret,id=sec0,file=password.txt \
-iscsi user=fred,password-secret=sec0 \
-drive file=iscsi://192.168.122.1:3260/iqn.2013-12.com.example%3Aiscsi-chap-netpool/1
NB this syntax requires that all iSCSI backed drives use the same password
The qemu-io tool gained support for new '--object' and '--image-opts' arguments. The --object argument allows 'secret' and 'tls-creds-x509' objects to be defined for use in association with a block device backend. The '--image-opts' argument instructs qemu-io to parse the image string as a set of image options, instead of a plain filename. For example, to connect qemu-io to an NBD server using TLS
qemu-io -c "read 0 512" \
--object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
--image-opts driver=nbd,host=localhost,port=10809,tls-creds=tls0
The qemu-nbd tool gained support for new '--object' and '--image-opts' arguments. The --object argument allows 'secret' and 'tls-creds-x509' objects to be defined for use in association with a block device backend or the NBD server. The '--image-opts' argument instructs qemu-io to parse the image string as a set of image options, instead of a plain filename. For example, to connect qemu-nbd to an HTTP server with authentication and export it over NBD using TLS
qemu-nbd --readonly \
--object secret,id=sec0,file=passwd.txt \
--object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server \
--image-opts driver=http,url=http://some.random.host/some/image,username=fred,password-secret=sec0
The qemu-img tool gained support for new '--object' and '--image-opts' arguments. The --object argument allows 'secret' and 'tls-creds-x509' objects to be defined for use in association with a block device backend or the NBD server. The '--image-opts' argument instructs qemu-io to parse the image string as a set of image options, instead of a plain filename. For example, to a remote HTTP server with authentication
qemu-img info --object secret,id=sec0,file=passwd.txt \
--image-opts driver=http,url=http://some.random.host/some/image,username=fred,password-secret=sec0
Support for deleting snapshots on Sheepdog devices.
The NBD client and server now support use of TLS. When enabled, the server will mandate that the client also enable TLS and drop any client which attempts to continue in plain text. To run a qemu-nbd server with TLS:
qemu-nbd --object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=server \
--tls-creds tls0 \
/path/to/disk/image
To connect to a server that requires TLS with qemu-img:
qemu-img info --object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
--image-opts driver=nbd,host=localhost,port=10809,tls-creds=tls0
To start a VM pointing to the NBD server
$QEMU -object tls-creds-x509,id=tls0,dir=$HOME/.pki/qemutls,endpoint=client \
-drive driver=nbd,host=localhost,port=10809,tls-creds=tls0 \
...other args...
The NBD server gained support for specifying an export name. When the client negotiates use of the new style NBD protocol the default export name is "". The --exportname argument allows this to be customized:
qemu-nbd --exportname myvol /path/to/myvol.qcow2
QEMU gained support for volumes formatted with the LUKSv1 data format. To format a new LUKS volume
qemu-img create -f luks \
--object secret,id=sec0,file=passphrase.txt \
-o key-secret=sec0 \
demo.luks 10G
To boot a guest from a LUKS volume:
$QEMU -object secret,id=sec0,file=passphrase.txt \
-drive driver=luks,key-secret=sec0,file=demo.luks \
...other args...
The LUKS implementation is intended to be compatible with that used by cryptsetup/dm-crypt, so it should be possible to use disk images interchangeably between them. The only caveat is that some less common cipher/hash algorithms are not yet supported by QEMU. It is also not yet possible to manage key-slots with qemu-img.
TCG
Record/replay support extended to cover character devices.
Tracing
The "stderr" tracing backend was replaced by the "log" tracing backend, which is now the default. This backend prints tracing messages to the destination specified with the "-D" option.
In addition to the existing "-trace file=...", tracepoints can be enabled using "-trace [enable=]...". The new option also supports globbing, as in "-trace bdrv_aio_*".
In addition to the existing "-trace file=...", tracepoints can be enabling using "-d trace:...". This option also supports globbing, as in "-d trace:bdrv_aio_*".
When using "-daemonize", the "-D" option also provides the file to which QEMU's stderr output will be redirected.
TCG supports a new "-dfilter" option to limit exec, out_asm, op and op_opt logging to a range of guest physical addresses. ARM also applies the filter to in_asm logging; this will be extended to other targets in future releases (FIXME: probably should do it now instead...)
A "%d" substring in the log file name is replaced with QEMU's pid.
User-mode emulation
The default CPU for ppc64 and ppc64le is now POWER8
To quote abs:
I don't know why this package has a manually maintained list of gcc versions
to exclude LTO on, but for now just add 4.8.5. Fixed build on netbsd-7
No PKGREVISION bump as will only affect platforms which did not build before
It's the end of another month, and time for a new MAME release.
This time there are more improvements for capabilities we have added
in previous versions.
MAME now includes ports of some popular shaders for the BGFX renderer,
including the EAGLE, HQx and xBR scaling effects. Please be aware
that the BGFX renderer is still a work in progress, and you may
experience some stability issues when using it.
This release introduces a new cheat engine based on the Lua scripting
language. This opens the door to exciting new possibilities. One
of the most significant improvements is better support for systems
with banked memory, including many 8-bit home computers like the
Apple II family.
MAME's archive file handling has been improved in a number of ways.
ZIP64 format is now supported, allowing MAME to archives over 4GiB
in size. This mean that, for example, large flyer collections don't
need to be unzipped for use with the internal UI. 7zip support has
been updated for the latest 7zip release, including new archive
features and many bug fixes. We've also fixed a number of bugs in
the internal file browser.
Of course this release also includes many other improvements from
the MAME team and external contributors.
It's with great pleasure that we announce the release of MAME 0.172.
This release includes several notable things above and beyond the
usual assortment of new systems, new features, and bug fixes.
Most importantly, this is the first release of MAME since the change
to a proper open-source licensing scheme as announced earlier this
month. From this release onward, MAME will be distributed under a
GPL-2.0+ license, with the bulk of code being covered under a
3-clause BSD license.
MAME now has an up-to-date set of documentation! You can find it
under the "Documentation" drop-down at the top of this site, or go
to http://docs.mamedev.org/ to check it out.
Due to the large number of configuration changes made in this
version, we strongly advise all users to delete their existing INI
configuration files and re-create them using the "-cc" option.
In case you are just overwriting previous release files note that
you better remove plugin folder first
For those of you running MAME on authentic CRT monitors, MAME now
incorporates a number of scaling-related features from GroovyMAME,
thanks to its author being brought on board the team, which should
help reduce user fragmentation. Please note: If you have issues
with MAME 0.172's graphics output, please ensure that "unevenstretch"
is set to 1 in your MAME configuration.
MAME 0.172 will also introduce a new high-score saving system using
Lua scripting. The feature is still experimental, but it's something
to keep an eye on for interesting future developments!
This version additionally marks the creation of a cross-platform
data-driven shader system via the BGFX renderer, which allows you
to apply shader effects per-screen, and more.
* Fix DISTNAME as original
Changelog:
Add instructions to build on Windows
Remove libuuid dependency and NIO Multicast implementation that depends on it. NIO Multicast is never used and maybe not even functional. This will simplify the compilation requirements, especially on Windows with Cygwin
EthernetSwitch: Allow to choose ethertype for QinQ outer tag
modern compilers, turn off -Werror globally and avoid the creeping
failures each compiler update (this affects both gcc and clang.)
apply -fno-strict-aliasing for all foreseeable future gcc versions.
this now works with gcc 5.3.
ok wiz, joerg
This fixes building emulators/qemu on netbsd-7 (amd64).
On a related note, it may also make sense to include
security/nettle/buildlink3.mk to the build.