MAME 0.183
22 Feb 2017
Hi everyone! It’s been a busy month for MAME development, and we’ve
got a whole lot of surprises to unwrap today as we continue to
celebrate twenty years of MAME. First up, we’ve added some incredibly
rare systems to MAME. Omega is an Arkanoid-inspired arcade game
with a production run of about ten boards. Dodge Man is a rare Omori
title from 1983. The vertical version of Flash Boy, a DECO Cassette
title that borrows more than a little from a well known anime is
another very rare game that was at risk of becoming nothing but a
memory. Westinghouse Test Console #5 is possibly a one-of-a-kind
wire-wrapped prototype machine for field-programming some kind of
interlocking equipment (it has a rude easter egg – press X|TRAN in
calculator mode to see it). Less rare, but still awesome, are arcade
titles Galaxy Games StarPak 3, Sega Sonic Cosmo Fighter, and a U.S.
release of Puzznic with the digitised photos intact.
This release adds support for a number of electronic toys/handheld
games, including Atari’s Touch Me (a clone of Simon, which is itself
a clone of an Atari arcade game), GAF Melody Madness, Lakeside Le
Boom, and with possibly the most awesome title if not gameplay,
LJN’s I Took a Lickin’ From a Chicken. Many of these games have
colourful, clickable artwork. MAME is dedicated to preserving more
than just video games, and these systems are great examples of some
of the other experiences you can relive through emulation.
If you use MAME’s computer emulation and have been frustrated by
modifiers not working properly in natural keyboard mode, you’ll be
pleased to know that this release addresses that. Natural keyboard
mode now works properly with many more systems, including Amiga,
Sun and RM Nimbus. Speaking of Amiga, we’ve emulated a 3rd-party
variant of the Amiga 1200 keyboard and added support for many
different language variants, so chances are you’ll be able to use
keyboard that matches your Workbench language. And speaking of
keyboards, the Zorba keyboard now works properly, so you can try
out one of the last luggable CP/M machines.
Other improvements include fixing the crash on encountering invalid
cheats, allowing multi-part software list entries to load each part
on the correct interface, emulation of the Poly-Play light organ,
a brand new preliminary Interpro 2800 driver and Clipper CPU core,
support for VIC-20 and C64 speech synthesiser cartridges, support
for the Osborne-1 Nuevo Video 80-column modification, protection
MCU emulation in Bad Dudes vs. Dragonninja and Bouncing Balls, audio
improvements to a number of supported games, and optimisation of
the netlist emulation.
Some of these improvements might seem inconsequential, or apply to
systems you don’t use, but they often lie in common components used
by many other systems. For example, the Amiga 1200 and Zorba keyboards
use the same MCU family used in a lot of arcade games published by
Taito. The same change that fixes the Zorba keyboard also fixes
enemy spawning and timing in Xain'd Sleena. The Nuevo Video board
uses a common Motorola CRT controller, so improvements made to
support it stand to benefit a lot of other systems.
Of course there are plenty of other improvements not listed here,
and you can read all about them in the whatsnew.txt file, or grab
the source or Windows binaries from the download page and join in
our 20th anniversary celebration.
* Fixed building with C++.
* Fixed building on Darwin (PR 51899).
* Added GTK3 as an option.
* Switched from SDL-1 to SDL-2.
* Depend and enable support for: lzo, jemalloc, snappy, png, curl, jpeg.
Make sure that /usr/include and /usr/lib${LIBABISUFFIX} always appear in the
search paths for headers and libraries, respectively.
Fix the broken ethernet support (and etc) on platforms like NetBSD.
Thanks hans for his valuable suggestions.
MAME 0.182
As we approach the 20th anniversary of the first MAME release,
we've got a really exciting update for you. There's so much awesome
stuff in this month's release that there's no way we can possibly
cover it all here. MAME is a team effort, and we'd like to thank
everyone who's contributed towards making this release as awesome
as we think it is. One very exciting addition is support for another
version of the East German Poly-Play system, with German and Czech
ROM sets providing ten games, six of which are new. Protection on
Future Flash/Laser Base has finally been emulated, so you can take
a look at Hoei's take on Missile Command. A dump of the damaged
microcontroller (MCU) from Tatakae! Big Fighter makes this title
and Sky Robo finally playable. Another eagerly awaited addition is
the Hot-B prototype Hangzo.
Serial ports have been hooked up on Race Drivin' allowing you to
link two MAME instances over TCP, reproducing the multi-player
experience with linked cabinets. To do this, use a null modem slot
device and configure it for 38,400 Baud, 8 data bits, even parity,
and 1 stop bit. It would also be possible to connect a MAME instance
to a real board set by forwarding the connection to a serial port
on the host system.
We've received a contributed PortAudio output module and integrated
it in this release. This provides a cross-platform low latency
audio output solution. Performance should be similar to Steinberg
ASIO on Windows 7 or later without the licensing issues, and better
than SDL audio on Linux. It can be enabled by setting the sound
parameter to portaudio on the command line or in an ini file. Of
course, all the other audio output modules are still supported, so
if you're happy with your current setup you don't have to change
anything.
Although we haven't added a huge number of new microcontroller
(MCU) dumps in this release, substantial work has gone into improving
systems where we already have dumps but the emulation is lacking.
MCU emulation was added to Puzznic, Joshi Volleyball and Gladiator.
For Puzznic, this places player data at the correct location in
RAM and supplies the game with a pseudo-random number sequence
rather than a stream of zeros. Joshi Volleyball now behaves better
in service mode, allowing coins and inputs to be tested. Gladiator
now honours the coinage DIP switches. The MC68705 core has had a
complete overhaul, and all drivers using it have been reviewed.
This fixes lots of subtle issues: for example Change Lanes will
now skip the full memory tests if configured to ignore them in DIP
switches, timings have improved in Arkanoid, and the Apple II mouse
card is slightly improved. We now emulate the '705 family well
enough to support stand-alone MCU programmer boards.
Other improvements include working sound in Pole Position bootlegs,
improved video in Winning Run, preliminary banked 256 colour mode
for the NEC PC-9821, kana input on the Sharp X1, a VME bus system
with preliminary support for the miniFORCE 2P21 chassis, additional
Aristocrat Mark 5 peripheral emulation allowing non-US games to
boot, Corvus hard disks for the DEC Rainbow 100, preliminary work
on Atari Stunt Cycle (displays the playfield), fixes for the Aussie
Byte and Otrona Attaché, and support for octal and binary numbers
in debugger expressions.
---------------------------------
4.7.2 to 4.7.3: (Nov. 21, 2016)
* Added preliminary support for the 3E+ bankswitching scheme, developed
by Thomas Jentzsch.
* Fixed HMOVE positioning bug that occurred under certain circumstances.
Thanks to Omegamatrix of AtariAge for the bug report and patch to fix
the issue.
* Added 'trapm', 'trapreadm', 'trapwritem' commands to debugger prompt.
These are similar to the non-'m' versions, except that they also trap
on all mirrors of the given address.
* Fixed bug in debugger 'reset' command; it wasn't resetting the
bankswitching, so after a reset the banks were in an undefined state.
* Updated UNIX configure script to fix a bug where it fails in
cross-compilation under certain circumstances. Thanks to Vlad
Zakharov for providing a patch to fix this issue.
4.7.1 to 4.7.2: (Mar. 25, 2016)
* Fixed bug when entering and exiting the debugger; sometimes the
character corresponding to the '`' key would be output in the
prompt area.
* Updated DPC+ Thumb ARM emulation code to latest from David Welch.
In particular, this fixes incorrect handling of the V flag when
adding and subtracting, but also fixes compile-time warnings that
I couldn't get rid of before.
* Updated UNIX configure script to work with GCC 6.x compilers, and to
remove references to obsolete compiler versions that can no longer
be used to compile Stella.
4.7 to 4.7.1: (Feb. 13, 2016)
* Improved TV 'jitter' emulation; the recovery time can now be spread
over multiple frame, to simulate a real TV taking multiple frames to
recover. Related to this, added new commandline argument
'tv.jitter_recovery' to set the recovery time. Finally, enabling
the jitter effect and the recovery time are now accessible through
the UI. Special thanks to SpiceWare of AtariAge for the initial idea
and implementation.
* Fixed bug with 'Medieval Mayhem' ROMs; the paddle range was set too
low, and as a result the number of players couldn't be selected.
* Fixed bug when using more than two input controllers with the same
name; each controller after the second one was named the same as the
second one. This caused the joystick mappings to be lost, since there
was only information about two controllers being saved.
* Indirectly fixed issues with Stelladaptor/2600-daptor devices and
paddles having too large of a deadzone in Linux. Currently, this
involves running an external application to set the deadzone,
since SDL2 does not yet expose this information. The program is
called 'evdev-joystick', and will be released separately from Stella.
* Updated internal ROM properties database to ROM-Hunter version 11
(thanks go to RomHunter for his tireless research in this area).
Related to this, updated the snapshot collection.
4.6.7 to 4.7: (January 25, 2016)
* Improved paddle emulation in several ways:
- Added ability to specify the maximum range of movement for paddles
when using a mouse or digital device to emulate the paddle. This is
useful since on a real console most paddle games use very little of
the paddle range, and could result in moving the mouse onscreen with
nothing appearing to happen (when in effect it was as if you turned
a real paddle all the way to the end of the range). This eliminates
issues in (for example) Kaboom, where there was a huge 'deadzone'
when moving to the left. All applicable ROMS in the internal
database have been updated.
- The range for paddle emulation now takes an integer from 1 - 20,
indicating how much to scale movement (ie, how fast the onscreen
paddle will move when you move the mouse). The movement itself
is now also smoother than before.
* Fixed bug in 'Score mode' in TIA emulation; the TIA object colours
were correct, but the associated priority was sometimes incorrect.
* Fixed bug in ROM launcher; selecting 'Options -> Game Properties' after
loading a ROM would always point to the last opened ROM, not to the one
currently selected.
* Fixed bug in storing ROM properties; in some cases, a copy of the
ROM properties was being stored in the external file when it was
exactly the same as the internal entry.
* Added 'CV+' bankswitching scheme, developed by myself and LS_Dracon
(of AtariAge). This scheme contains RAM like the CV scheme, and
also switchable 2K ROM segments by writing to $3D.
* Added more C++11 updates all over the codebase, and ran Stella
through Coverity for the first time. I'm proud to say that Stella
now has a 0.00 defect rate!
MASTER_SITES= site1 \
site2
style continuation lines to be simple repeated
MASTER_SITES+= site1
MASTER_SITES+= site2
lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
accordingly.
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.
Upstream changes:
- Update copyright years. Noticed by Margo Seltzer.
- Fix handling of file creation in emufs, again.
- Fix another issue with dropped input handling, reported by Sam
Fishman.
- Print more info with exception traces.
- Remove obsolete disk sizes from sys161.conf.sample.
- Reuse emufs handles when the same object is reopened. ".." usage
now behaves itself. Mostly from Sam Fishman.
- Remove stray debug print.
0.171
-------
MAMETesters Bugs Fixed
----------------------
- 06137: [Crash/Freeze] (maygay1bsw.c) Many sets in maygay1bsw.cpp: Several games
are crashing while "initializing.." (Osso)
- 06135: [Interface] ROM-less games cannot be started from internal UI
- 02327: [Graphics] (megasys1.c) chimerab: Priorty PROM is missing. (David Haywood)
- 06134: [Misc.] all games with LED outputs: ledutil no longer works (micko)
- 06139: [Color/Palette] (x68k.c) x68k [akumajo]: Some elements turn blue (crazyc)
Source Changes
--------------
-New video chip support : Thomson EF9364 / Sescosem SFF96364 [Jean-Francois DEL NERO]
-Pyon Pyon Jump: [Roberto Fresca]
Create derivative machine driver.
Hooked the V9938 Yamaha VDP.
Added the DIP switches bank #1
Hooked the system input ports.
Added support for Yamaha YM2149.
Decoupled the YM2149 data read.
Correct bankswitching.
Added sound latch & output port.
Version added to the game description.
Proper inputs + DIP switches support.
Second CPU IRQ ack. Promoted to working.
OKI M5205 ADPCM samples support.
-pulsarlb: Added extra bios [Robbbert]
-Modernized sound volume setting code in various Atari drivers [AJR]
-Fixed F3 soft-reset on Arkanoid sets with MCU [Lord Nightmare]
-osdmini: Fixes build issues [Stuart Carnie]
-Replaced osd_lock with std::mutex [Miodrag Milanovic]
-Software list entries can now supply slot option defaults [AJR]
-i8271: Unload head after programmed revolutions [Nigel Barnes]
-apple2: Fix parallel card ACK handling, Print Shop almost works with
the lx810l now. [R. Belmont]
-Nibble driver: Rewrote the whole driver. Added video hardware,
preliminary machine driver and memory map. Decoded the graphics.
[Roberto Fresca]
-Made anonymous timer non-anonymous in arkanoid.cpp, fixes savestates
for the sets using the original Taito MCU code [Lord Nightmare]
-Allow load/saved state slots to be bound to joystick buttons [Victor Vasiliev]
-Dumped "Dead or Alive 2 (Rev A)", match existent set, fix game and EPRROM names
[Smitdogg, The Dumping Union]
-Dumped "King of Fighters XI" EN, match JP one, add notes [Brizzo]
-Substantial improvements to Web Audio sound backend for Emscripten
port. [Grant Galitz]
-disound: Don't crash on state load when the mixer is disabled by lack
of inputs (misconfiguration or missing samples) [O. Galibert]
-Initial import of MEWUI to MAME [Maurizio Petrarota]
-External DATs grouped into a single view. [Maurizio Petrarota]
-New video chip support: Thomson EF9364 / Sescosem SFF96364 [Jean-Francois DEL NERO]
-z80.cpp: Added a debug mechanism for /WAIT pin assertion mechanism
(enable with STALLS_ON_WAIT_ASSERT in CPU core), and hooked it up to
Night Gal driver as a quick example. [Angelo Salese]
-Make octal flag part of address_space/address_space_config [AJR]
-Added unknown NAOMI development(?) board BOOT ROM [coolmod]
-Initial support for BGFX [Ryan Holtz, Dario Manesku, Branimir Karadic, Miodrag Milanovic]
-Significant speed improvements to the BGFX renderer. [Ryan Holtz]
-Added basic JSON-based single-pass shader effect support to BGFX renderer. [Ryan Holtz]
-Added hat trick hero 93 PALs [Alex Cmaylo]
-catnmous: graphical improvements [Vernimark, Vas Crabb]
* Redumped Cat and Mouse colour sprite ROM as the correct size
* Implement sprite ROM banking
* Improve colour palette using resistor values from board photographs
-laserbat: fix inadvertently swapped TMS organ chip clocks (fixes music) [Vas Crabb]
-Make Zaccaria 1B11107 and 1B11142 boards devices and share common parts [Vas Crabb]
-apple1: Completely rewrote the driver in modern idioms. All
functionality should be the same. [R. Belmont]
-Descrambled the ROM on the Xerox NoteTaker, and mapped it in the
correct areas to make it start to boot. [Lord Nightmare]
-Xerox NoteTaker: Corrected CPU Clock speed, and map at least some of RAM
[Lord Nightmare]
-electron: Added cassette softlist and implemented BREAK key [Nigel Barnes]
-Xerox NoteTaker: Corrected RAM amount. Attached the pic8259 interrupt
controller, though no interrupts are attached to that yet. Added
documentation of i/o writes during the boot process. [Lord Nightmare]
-vigilant.cpp: Added video timing PROM. [Pasky, caius]
-Videosnaps patch (additional file to write: gamename.inp.timecode) [Michele Fochi]
Added new options:
* [no]exit_after_playback (default=no)
* [no]record_input (default=no) Added new UI shortcut to save current
timecode (default F12) Translated variable names and comments to
english language
-Sord m5 driver update [Ales Dlabac]
added support for RAM expansions EM-5,64KBI,64KBF,64KRX
added m5p_brno mod Sord m5+1024kB
ramdisk+cp/m 2 cart slots
-Moon Light (Set 2): Fix the program ROM addressing. This fix the
corrupt graphics in the double-Up feature. [Roberto Fresca]
-Moved JANGOU_BLITTER into a device [Angelo Salese]
-NCS8105 ADCX opcode is actually an ADDX, fixes gfx garbage in
nightgal.cpp [Angelo Salese]
-Corrected ROM labels and removed endian-swap during descramble for
notetaker in favor of loading ROMs the other way round. Add ROM
locations. [Lord Nightmare]
-Xerox NoteTaker: Implement ROM/RAM overlay as per schematics.
Documented Address map and part of I/O map. [Lord Nightmare]
-Note that one of the buccaneers proms matches the vigilante video sync
prom [caius, David Haywood]
-Moon Light: Rearranged and split by program. This generated new sets
due to the hidden extra programs in the program ROMs. [Roberto Fresca]
-Xerox NoteTaker: Added the IO Processor firmware v1.50 as an alt bios
after typing it from the assembly source listing on bitsavers. Added
two PROMs as NO_DUMP. Updated comments and history a bit, but needs
further improvement. [Lord Nightmare]
-Updated Xerox NoteTaker documentation and history section, with cited
sources. [Lord Nightmare]
-Cherry Master v1.10: Fixed inputs / DIP switches. [Roberto Fresca]
-Xerox NoteTaker: Finished documenting the I/O CPU's I/O ports, updated
history documentation a bit more [Lord Nightmare]
-Figured out algorithm and replaced SnowBoard Championship lookup
table with proper emulation of device [Samuel Neves & Peter
Wilhelmsen]
-chihiro.c: Redumped "Sega Network Taisen Mahjong MJ 2 (Rev G)" [ANY]
Re-parented set
-mitchell.cpp: Dumped a blockjoy board and noted a rom label difference
[Andrea Palazzetti]
-snotec.xml: Added 3 new cart dumps. [TeamEurope]
-Extended LUA API [Jeffrey Clark]
-Support for the AMPAL18P8 to the jedutil tool. [Kevin Eshbach]
-Improved cross compile support [Jeffrey Clark]
-Hp9845: Added tape driver [F. Ulivi]
-r9751: Add more DMA registers for serial and floppy [Brandon Munger]
-slapstic: One small step toward slapstic modernization [AJR]
* Make chip number part of device configuration, not init param
* Correct mainpcb slapstic number in racedrivpan
* Remove many unused slapstics
-c64_cart.xml, c128_cart.xml: Added some diagnostic carts.
[World of Jani]
-COM5016/COM8116 Baud Generator: Added a bunch more divisor tables and
notes [Lord Nightmare]
-Apollo changes: [Hans Ostermeyer]
* Unified logging format in associated devices
* Use correct raw video modes
-Xerox NoteTaker: Finished IOCPU memory map documentation. Hooked up the two
UARTS. Begin hookup of the screen/CRTC. Fixed an issue with writes to
ROM-mapped areas shadowing to RAM. Added 960KHz xtal for the keyboard UART.
[Lord Nightmare]
-AY-3-1015 UART: Fixed two swapped pin functions. [Lord Nightmare]
-Added multi-language support for MAME [Miodrag Milanovic]
-sq1: Much-improved LCD and front panel button support.
[Parduz, R. Belmont]
-weddingr: better input port descriptions [Vas Crabb]
-Added Chinese Simplified and Chinese Traditional translation [YuiFAN]
-Added German translation [Raf Tacker]
-Added Japanese translation [Fujix]
-Added Italian translation [Angelo Salese,Antonio Paradossi,Fabio Priuli]
-Added Portuguese (Brazil) translation [Ashura-X]
-pacman.cpp, meadwttl.cpp: small fix of game years for Novomatic's Cannon
Ball and Meadows' Meadows 4 in 1, respectively, to synchronize with
history.dat [Antonio Paradossi]
pkgsrc changes:
- explicitly disable SDL2
(SDL2_mixer with smpeg2 cannot coexist with SDL_mixer with smpeg)
upstream changes (no English changelog):
- fix crash on reset after changing sound settings on some environments
- add SDL 2.0 support
- fix sound issue when PulseAudio is used as SDL audio backend
- add SPFM Light and C86BOX support
MAMETesters Bugs Fixed
----------------------
- 06097: [Crash/Freeze] (viper.c) Most sets in viper.c: Crashing at start
(32-bit only) (Robbbert)
- 06127: [DIP/Input] (m92.c) thndblst: "Continuous Play" dip switch
value incorrectly labeled (kane)
- 06126: [Crash/Freeze] (suna8.c) hardhea2b: Exception at start (Osso)
- 04900: [Flip Screen/Cocktail] (battlex.c) battlex: Missing Title and
Text while flipped (Osso)
- 06117: [Multisession] (bfm_sc2.c) qntoond, quintoon: MAME crashed when
switching games (Osso)
- 02640: [Gameplay] (megasys1.c) kazan, iganinju: Multiple issues (slow graphic
rendering, missing graphics) (Angelo Salese)
- 06114: [DIP/Input] (cps1.c) sf2m10: Kick inputs are not working LK MK HK (Osso)
- 06090: [Crash/Freeze] (namcos10.c) mrdrilr2, mrdrlr2a: Crash during Init (Osso)
- 06046: [Speed] Several drivers using mc6845.c: Speed is always 90-98% when
throttled (crazyc)
- 06104: [Gameplay] (x1.c) x1 [druaga]: druaga fails to get past
loading screen (crazyc)
- 06124: [Crash/Freeze] (phc25.c) phc25, spc1000, fc100: phc25, fc100 crash
at start; spc1000 crash when a letter key is pressed (Osso)
- 06122: [Crash/Freeze] (x68k.c) x68000 [ffight]: crashes with stack crawl (crazyc)
Source Changes
--------------
-Added more accurate SSi S14001A speech chip emulation, written by one
of the people at SSi who originally laid out the S14001a silicon in
1974/5! [Ed Bernard]
-nokia_3310.cpp: started implementing the driver based on available
information. Also added dumps for various models. [Sandro Ronco]
-Corrections to some ROM names and labels on Elevator Action based on
pcb pictures. [Lord Nightmare, brizzo]
-tispeak.cpp: Dumped and added correct version of 1979 US Speak &
Spell. [Sean Riddle]
-vicdual: rewrote carnival music board emulation, copy-pasted samples
handling from audio/pulsar.cpp. Kept sample names and function names
the same. [hap]
-XAudio2 support [Brad Hughes]
-Removed this == nullptr checks and fixed most of the resulting
crashes. [MooglyGuy, Tafoid]
-psychic5.cpp: added SCREEN_RAW_PARAMS [Angelo Salese]
-More configuration fixes [AJR]
* terrafb: remove unused NB1414M4
* segas16b.cpp: sanity check forgotten in last confix
* sega16sp.cpp: fix region width, make required (as last confix
allows)
-psychic5.cpp: Fixed sprite disable for Bombs Away. [Angelo Salese]
-Pass and return palette devices by reference, not as pointers [AJR]
* Add screen_device::has_palette()
* Require device_gfx_interface::gfx() and palette() to access members
* Getters for atari_vad_device return devices as references, not
pointers
-Driver configuration fixes [AJR]
- Implement found() method for object finders
- a1200, cubo, midzeus2, etc.: remove spurious palette tags
- bagman, sbagman & clones: correct PROM region lengths
- atomicp, snapper: remove unused(?) sprite device w/no ROMs
-taitotz: replace HLE rendering with actual chip emulation [Ville Linde]
-NAOMI/Chihiro docs update [f205v]
-document rest of Atomiswave registers [brizzo, MetalliC]
-added dump of World Club Champion Football's camera sensor board [ANY]
-tourvis.cpp: Added V4.0 BIOS to the Tourvision driver [system11]
-OS/2 patch [KO Myung-Hun]
-Arkanoid: Add note about the number of optical quadrature slots (24)
the arkanoid 1:20 geared spinner's quadrature wheel. [brizzo]
-Arkanoid.cpp: Set YM2149 emulation to mix channels the same way the
real pcb mixes them, by directly tying them together with no mixing
resistors. This introduces some distortion, but is more accurate
to actual pcb audio. [Lord Nightmare]
-40love.cpp: added global color select bank, fixes colors in later
levels for Forty-Love [Angelo Salese]
-spc1000: cassette tape motor fixed for working properly [Miso Kim]
-arkanoid.cpp: Added emulation of the 68705 timer and timer interrupts.
Fixed bugs with MCU port c ddr handling, latches and edge detection,
added missing interrupt on Z80 write to MCU, and removed a boost
interleave hack which was made unnecessary by these fixes. Switched
the Arkanoid (older) sets to use original Taito A75 06 MCU code as
opposed to the bootleg MCU code used until now. The 3 (newer) and 1
Tournament sets still use hand-hacked bootleg MCU code until original
MCU chips can be dumped and/or decapped. All 9 of the dumped Arkanoid
MCU code roms now work, if hooked up to the appropriate drivers. Hooked
the now-working 'deprotected Taito' MCU dump up to arkanoidjbl. Added an
alternate gfx rom dumped from an original 'older' US board. [Lord Nightmare, Brizzo]
-some fast invaders improvements [ANY]
-Return std::string objects by value rather than pass by reference [AJR]
- strprintf is unaltered, but strformat now takes one fewer argument
- state_string_export still fills a buffer, but has been made const
- get_default_card_software now takes no arguments but returns a string
-Some comments on TRS-01 'early radar scope' 5-PCB set. Fixed some ROM
names based on PCB pictures from Superully. [Lord Nightmare]
-segas18.cpp: Add documentation of a Laser Ghost test PCB [Arzeno Fabrice]
-meadwttl.cpp: ROM labels update for Bombs Away (Meadows) [Stiletto, Andrew Welburn]
-common osd path environment var expansion [Jeffrey Clark]
-add lua console support back in [Jeffrey Clark]
-pc9801_86: add pcm [Carl]
-added official updater roms to the calspeeda set so that you can
update the hdd / game revision if you so please [mrsinister]
-ts803: can display text and graphics, can boot from disk [Gabriele D'Antona]
-dccons.c:
Dreamcast v1.022 "no MIL-CD" BIOS dumped [Leonard Oliveira]
Katana Set5 Dev.Box BIOS v1.001 found [MetalliC]
sorted out bioses/flashes, removed outdated comments [MetalliC]
-apple2e: fix $c800 arbitration, fixes IDE and SCSI cards
among others. [R. Belmont]
-R9751: Clean up, add timer register, and add another system disk
set to software list [Brandon Munger]
-makedep.py: Finish making it python3-compatible [O. Galibert]
-sfkick.cpp: Fill in missing dipswitches and added dip locations. [Brian Troha]
-Added pre-compiled headers support to build system [Miodrag Milanovic]
-improvements to hp9845b driver [F.Ulivi]
-Increase debug console maximum parameters in debugcon.h [ConHuevosGuey]
-m68k: fix 020+ bfins instruction results and flags [Till Harbaum]
-fidelz80: redumped CC10B PRG ROM [Berger]
-rf5c400: added external memory r/w function [Ville Linde]
-marywu: Most of the hardware has been mapped by analysing the pcb tracks. [Felipe Sanches]
This set of commits include:
a video layout with all 30 LEDs 13 double-digit 7seg modules
an improved memory map hooking up the couple AY8910-3 chips, 2kb of Static RAM and the keyboard/display controller (an i8279 clone)
multiplexing signals for the 7seg displays
LEDs being controlled by the IO ports of the 2 AY8910-3 chips
8-bit set of DIP-Switches, a 2x16 keyboard and 4 push buttons mapped to the i8279 scanlines and return lines
-Some more validity checking improvements: [AJR]
* The -validate command now accepts an optional string, validating only
matching drivers. This has proven useful for debugging. The default is
to validate all drivers as usual.
* Devices' names are tracked when validating their auto-finders.
-Have sound_stream::input_name return the std::string it constructs [AJR]
-Added SteamLink initial support [Sam Lantiga, Miodrag Milanovic]
-Refactored NTSC pass and added sliders [ImJezze]
* merged YIQ encode and decode pass into one NTSC pass
* fixed half texel offset
* re-added usage of A value
* re-added usage of P value
* re-added jitter of B value
* changed default O value to 0
* reduced sample count to 64
* removed duplicate YIQ settings definition
* added sliders for most NTSC settings
* fit B value jitter between a min/max range of 0 and 1
* fit A and B value between a min/max range of -1 and 1
Refactored color convergence pass
* color convergence is now independent from ratio
* color convergence is now limited to a maximum of 10
* the radial color convergence now "translates" the most outer
pixel as they would be translated by the linear color convergence
with the same amount
* added color convergence pass to vector rendering
Misc.
* fixed half texel offset in pre-scale pass
* fit scan-line jitter between a min/max range of 0 and 1
* color convolution, defocus and phosphor pass will now be skipped
if all influencing parameters are 0
* added hum bar simulation based on [MooglyGuy's] GLSL port of the MAME shader pipeline
* added monochrome-chessboard.png
* added slot-mask-aligned.png (to simulate a TFT LCD
New machines added or promoted from NOT_WORKING status
------------------------------------------------------
Wing Force (Japan, prototype) [ShouTime]
Snow Board Championship [Charles MacDonald, David Haywood]
Waku Waku Marine [Ryan Holtz, Smitdogg, Shoutime, The Dumping Union]
Il Galeone [f205v]
Last Four (09:12 16/01/2001) [f205v]
Samsung SPC-1500 [Miso Kim]
TI-1250 [hap, Sean Riddle]
Speak & Spell Compact (3 versions) [hap, Sean Riddle, Lord Nightmare, Kevin Horton, plgDavid(David Viens)]
Ordisavant (France) [TeamEurope, dlfrsilver]
New clones added or promoted from NOT_WORKING status
----------------------------------------------------
Gun Dealer (bootleg) [Yrouel]
Rambo 3 (bootleg of Ikari, Joystick hack) [Any]
Laser Ghost (Japan) (FD1094 317-0164) [Charles MacDonald, ShouTime]
Strider (USA, B-Board 90629B-3, Street Fighter II conversion) [system11]
Nova 2001 (Japan, hack?) [system11]
Stadium Hero '96 (USA, EAH) [Kevin Eshbach, The Dumping Union]
Multi Game '96 (Italy) [system11]
Sly Spy (US revision 4) [system11]
New machines marked as NOT_WORKING
----------------------------------
Sequential Circuits Prophet-600 [R. Belmont]
Didact mp68a [Joakim Larsson]
Didact md6802 [Joakim Larsson]
Esselte 100 [Joakim Larsson]
<unknown> Labeled 'WU- MARY-1A [Felipe Sanches]
Various Tourvision (PCE bootleg) cartridges [system11, The Dumping Union]
- 1943 Kai, After Burner, Armed-F, Ballistix, Be Ball, Chōzetsurinjin Beraboh Man, Bomberman,
Chuka Taisen, Coryoon, Daisenpu, Dead Moon, Devil Crush, Dodge Ball, Dragon Spirit, Final Blaster
Final Match Tennis, Gunhed, Hana Taka Daka, Jinmu Densho, Kiki Kaikai, Legend of Hero Tonma
Mizubaku Daibouken Liquid Kids, Mr Heli, Ninja Ryukenden, Operation Wolf, Override, Pac-Land
PC Genjin Punkic Cyborg, Power Drift, Pro Yakyuu World Stadium '91, Psycho Chaser, Puzzle Boy
Raiden, R-Type II, Saiga No Nindou - Ninja Spirit, Salamander, Shinobi, Side Arms, Skweek
Son Son II, Tatsujin, Terra Cresta II, Toy Shop Boys, Veigues, Winning Shot, W-Ring, Xevious
Doraemon Meikyuu Daisakusen
Unknown Tab Austria Poker [ANY]
Roland TR-606 [hap, Kevin Horton]
Pyon Pyon Jump [Ryan Holtz, Smitdogg, Shoutime, Roberto Fresca, The Dumping Union]
Fidelity Voice Excellence [plgDavid, hap]
Fidelity Sensory Chess Challenger 12-B [Berger]
Dragon Treasure 3 (Rev A) (GDS-0041A) [Jorge Valero, rtw, The Dumping Union]
New clones marked as NOT_WORKING
--------------------------------
Fidelity Voice Chess Challenger (Spanish) [Berger]
Fidelity Voice Chess Challenger (German, French) [plgDavid, hap]
Sega Bass Fishing Challenge Version A [gamerfan, brizzo, MetalliC, Smitdogg, The Dumping Union]
Raizin Ping Pong (V2.01J) [Shoutime]
Power Shovel ni Norou!! - Power Shovel Simulator (v2.07J, alt) [Shoutime]
Desert Patrol (set 2) (Project Support Engineering (Telegames license)) [blinddog1, Paul Swan, gregf]
Maniac Square (protected) [Charles MacDonald]
Pacman Club (set 1, Argentina) [Roberto Fresca]
Pacman Club (set 2, Argentina) [Roberto Fresca]
New WORKING software list additions
-----------------------------------
tutor.xml: Tron (Jpn) [TeamEurope, Steve]
snotec.xml: added 4 new cart dumps. [TeamEurope]
Added 10 new cart dumps for PreComputer 1000. [TeamEurope]
Added 2 new cart dumps for Ordisavant (France). [TeamEurope, dlfrsilver]
c64_flop.xml: Added Little Knight Arthur. [Pasi Hytönen]
c64_cart.xml: Added KoalaPainter. [Curt Coder]
New NOT_WORKING software list additions
---------------------------------------
casloopy.xml: Loopy Town no Oheya ga Hoshii! [TeamEurope, Steve]
casloopy.xml: Lupiton no Wonder Palette [TeamEurope, Steve]
database.xml: Leapfrog [TeamEurope & Steve]
Upstream changes:
20160117 dholland System/161 2.0.6 released.
20160117 dholland util.c needs sys/types.h; from Nikhil Benesch.
20160116 dholland Don't let the dropped input character messages flood.
20160114 dholland System/161 2.0.5 released.
20160114 dholland Fix a bug counting global-idle cycles.
20160114 dholland Drop redundant columns in stat161 output.
20160114 dholland Polish previous.
20160113 gwa Make stat161's reporting interval adjustable.
20160113 gwa Have stat161 report elapsed clock time per tick.
20160112 dholland Print a message if the OS drops an input character.
20160108 dholland Print why if disk geometry initializion fails.
20160105 dholland Standardize and document the exit codes.
20160105 dholland Allow K, M, etc. suffixes for disk/memory sizes.
20160105 dholland Make the trace device reject (vs. ignore) invalid args.
20160105 dholland Add -C option to supply device config arguments.
20151222 dholland System/161 2.0.4 released.
20151222 dholland Improve the way -X works.
20151222 dholland Make trace161 -h output include the trace flag list.
20151222 dholland Use shell printf instead of echo -n. Apparently Apple
........ still ships a broken sh whose echo prints literal "-n".
20151222 dholland Apparently some Linux installs demand _GNU_SOURCE to
........ be allowed to see/use ftruncate.
20150808 dholland Actually install the new prof.html. Sigh.
........ (issued as patch for 2.0.3)
To match emulators/fuse-emulator move.
Fuse is the Free Unix Spectrum Emulator.
* Working 48K/128K/+2/+2A Speccy emulation, running at true Speccy speed on any
computer you're likely to try it on.
* Support for loading from .tzx files.
* Sound (on system supporting the Open Sound System or BSD/Solaris).
* Kempston joystick emulation.
* Emulation of the various printer you could attach to the Spectrum.
* Very basic support for RZX files.