Changes from 1.101:
- Everything from MAME 0.102 (http://x.mame.net/changes-mame.html) and
MESS 0.102 (http://x.mame.net/changes-mess.html).
- Fixed a bug that could afflict MESS console emulations by preventing
the keyboard from working.
- The default ALSA buffer size is now 50000ms instead of 250000ms,
which reduces lag.
- Advancing frame-by-frame using shift-P works again. Bugzilla bug 787.
- When the setup menu is closed, the keyboard state is cleared. This
prevents the key press that closes the menu from affecting the
emulation. This replaces the fix from 0.97, which wasn't working
anymore and caused the frame-by-frame advancing to break besides.
Changes since 0.100:
- Everything from MAME 0.101 (http://x.mame.net/changes-mame.html) and
MESS 0.101 (http://x.mame.net/changes-mess.html).
- When the LIRC configuration cannot be read, the joystick polling code
no longer tries to use LIRC. This fixes a crash that occurs under
memory pressure. (Paul "TBBle" Hampson)
- Enabling full keyboard emulation in the classic MESS UI once again
prevents keys such as P and Esc from being intercepted by the
emulation core.
- Added support for BGR visuals to the blit core for, e.g., Solaris.
(Hans de Goede)
Changelog:
- Everything from MAME 0.100 (http://x.mame.net/changes-mame.html) and
MESS 0.100 (http://x.mame.net/changes-mess.html).
- Improved support for OpenBSD, including fixing audio on 8-bit sound
cards. (Claudio Castiglia)
- Improved the SDL joystick driver so that it will work better with
components identified as hat switches or trackballs. (Dave Ahlswede)
- Increased the maximum number of joystick axes from 8 to 16 to support
the Gravis Xterminator joypad. (Dave Ahlswede)
Changes since 0.97:
- Everything from MAME 0.99 (http://x.mame.net/changes-mame.html) and
MESS 0.99 (http://x.mame.net/changes-mess.html).
- The SVGAlib target no longer fails silently under certain conditions.
(Hans de Goede)
- Removed some unnecessary calls to exit() and fixed a few memory leaks
in the X11, Xv, and effects code. (Hans de Goede)
- The SVGAlib driver now handles __svgalib_tty_fd == -1. This allows
it to work with newer releases of SVGAlib. (Hans de Goede)
- Removed "-xv/-xvext" from the manpage. Bugzilla bug 535. (Erik Hovland)
- Updated the joystick types in the manpage. Bugzilla bug 737.
- Fixed some typos in the documentation. Bugzilla bug 738. (Erik Hovland)
Release 0.97, 13 June 2005
- Everything from MAME 0.97 (http://x.mame.net/changes-mame.html) and
MESS 0.97 (http://x.mame.net/changes-mess.html).
- When the emulation is unpaused, the keyboard state is cleared. This
prevents keypresses from bleeding over from the user interface.
- The SDL driver now uses the correct green mask for RGB 565. This
fixes a problem with SDL on DirectFB being unable to find a valid
video mode. (Uli H.)
- The SDL driver now locks the video surface before retrieving the
pointer to its memory. This fixes a crash with SDL on DirectFB.
(Uli H.)
- Fixed a few spots in the code for 4.3 BSD, e.g., OpenStep on NeXT.
- Fixed bugs in the Xv driver and the 6-tap effect that affected
big-endian architectures. (Hans de Goede)
Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
Release 0.96, 10 May 2005:
- Everything from MAME 0.96 (http://x.mame.net/changes-mame.html) and
MESS 0.96 (http://x.mame.net/changes-mess.html).
- Fixed the RGB to YUV conversion used by the Xv driver so that it
conforms to the CCIR digital component video specifications. Fixes
Bugzilla bug 691. (Alex W. Jackson)
- The rows of the OpenGL bitmap used for 16bpp games are no longer
misaligned in some cases; nagano98 now displays without doubled
lines.
- The behavior of "-listgamelist" should once again match the Windows
side with regard to case-insensitive sorting and the treatment of
leading "The" and "Le".
- When a specific joystick device is designated with "-joydevname
(-jdev)", it is now always treated as the player 1 joystick.
- The built-in profiler works again. (Colin Howell)
- The X11 build now properly sets the standard window properties.
(Christian Birchinger's friend)
Changes since 0.90 includes:
- Everything from MAME 0.95 (http://x.mame.net/changes-mame.html) and
MESS 0.95 (http://x.mame.net/changes-mess.html).
- Forcing Xv to use YV12 ("-force-yuv 2") no longer causes rotated
games to segfault. Fixes Bugzilla bug 679.
- Fixed the aspect ratio of the MESS SuperVision driver so that it's
quadratic. (PeT)
- Fixed several problems with the front-end "-list" commands: The MESS
commands could segfault, some commands' headers were misaligned, and
"-listpalettesize" was causing the ROM list to print.
- Worked around or fixed a double-free on exit in xmess.
- Fixed a segfault on startup that occurred when four or more joysticks
devices were found.
- The SDL joystick driver now works with multiple joysticks attached.
- The SDL sound driver should produce much better output. Also fixed a
potential deadlock.
Changes since 0.89:
- Everything from MAME 0.90 (http://x.mame.net/changes-mame.html) and
MESS 0.90 (http://x.mame.net/changes-mess.html).
- The "-sleepidle (-si)" option is now enabled by default. This keeps
the emulation from hogging the CPU when it's idle.
- Did a major rework of the effects code, which now borrows code from
the AdvanceMAME project (Hans de Goede):
* The code is much cleaner.
* Effects are much faster on DGA.
* The scaling is no longer fixed to a certain factor for each
effect: It supports normal (1x1 - 8x8), scale2x (2x2 - 3x6), scan2
(1x2 - 4x2), rgbscan (1x3 - 6x3), scan3 (1x3 - 6x3), hq2x (2x2),
lq2x (2x2), 6tap2x (2x2).
* All the scanline effects come in both horizontal and vertical
varieties, and vertical scanlines are automatically chosen for
rotated games.
- Made the 32bpp to yuy2 blitting code much faster and cleaner. (Hans
de Goede)
- Enhanced LIRC support to compile and link against system-installed
liblirc_client files. Added the "-lircrc" option. (Mads Villadsen)
- Optimized some of the yuy2 blit functions. (Hans de Goede)
- Added CPU capability detection for Linux on x86. Currently this only
tests for MMX. (Hans de Goede)
- Changed the effects code to use the C versions of effects when a CPU
isn't MMX-capable. This means that binary distributions can be built
with EFFECT_MMX_ASM defined and still run on older CPUs. This
presently only works for Linux on x86. (Hans de Goede)
- Fixed "-geometry (-geo)" to properly adhere to given window
coordinates. Added support for window coordinates to OpenGL. (Hans
de Goede)
- By default, fullscreen mode now only spans screen 0. To select
another screen, use "-xinerama-screen <nr>", or use -1 if you want
the old behavior where all screens are spanned. (Joe Q. and Hans de
Goede)
- Removed Mesa on Glide on Voodoo 2 in fullscreen mode hack. If you
need this, just use "-geometry 640x480 -grabkeyboard -grabmouse"
instead. (Hans de Goede)
- Reverted to treating lightgun buttons as mouse buttons, so lightguns
will work independent of joystick devices or drivers. It is now
also assumed that there are always 5 mice connected, so multiple
lightguns should work fine.
- The old-style debugger works again. (Hans de Goede)
- Merged several of Nicola Salmoria's memory leak fixes from Windows
MAME.
- Fixed multiple port recording for the playback/record option. (Chad
Hurwitz)
Changes from 0.88:
- Everything from MAME 0.89 (http://x.mame.net/changes-mame.html) and
MESS 0.89 (http://x.mame.net/changes-mess.html).
- Re-added a missing "Rapid Fire" entry from the setup menu that caused
the other entries to be off by one. Fixes Bugzilla bug 621.
- Another batch from Hans de Goede:
* The GGI driver no longer crashes when $DISPLAY isn't set.
* Sped up the rgbscan effect (effect 4), especially for DGA.
- Added LIRC support for remote controls, e.g., with MythTV. (Andrew
Chuah)
- Fixed a typo that caused absolute analog axes to interfere with
digital negative axes in the input setup.
Available options are: sdl opengl esound.
sdl and opengl options are used to specify default display method, if
none of them is specified, x11 is used as before.
Changes since 0.86:
- Everything from MAME 0.87 (http://x.mame.net/changes-mame.html) and
MESS 0.87 (http://x.mame.net/changes-mess.html).
- Reworked the video mode functions (Hans de Goede):
* Unified and moved the aspect ratio calculations from xgl, fx, and
x11_window to mode.c since all display targets that support
arbitrary scaling through hardware make use of this.
* Modified the code to use the aspect ratio supplied by the game
driver instead of doing all kinds of magic. This corrects, for
example, the aspect ratio of 1942.
* Added a new option, "-perfectaspect (-pa)", which automatically
sets yarbsize to honor the aspect ratio provided by the game
driver. This is disabled by default because it can cause scaling
artifacts.
* When video modes are matched, the aspect ratio is now taken into
account.
- Made changes to the X11 targets (Hans de Goede):
* Restored widthscale == 2 yuy2 code for perfect yuy2 blitting.
* Fixed a bug introduced by the aspect ratio patches which caused the
Xv fallback code to not detect an error case and crash later on
instead of falling back to MITSHM.
* The Xv window is now resized with the correct aspect ratio after a
user resize; this prevents black borders from appearing.
* Renamed "-perfect-yv12" to "-perfect-yuv".
* Enabled perfect blitting by default for yuy2, since it fixes the
ugly color bleeding in, for example, pacman.
* Fixed colors being way off in Xv for 15bpp direct games, e.g.,
vector games with artwork disabled.
* Current mouse values are now initialized in xinput_open, which
should fix the problem of the visor going to the lower right corner
in starwars when the video mode is switched from windowed X11 to
DGA fullscreen while the mouse is grabbed.
* Fixed the display of a 32bpp source on a 24bpp packed pixel window.
* Fixed a bug in the DGA2 target which caused it to throw an XError
when it failed to find a suitable mode, causing xmame to abort.
* XInput now maps controls to mice 2 - 5 and leaves mouse 1 free for
the default mouse. (Hans de Goede)
* Fixed a bug which caused the window to disappear with Xv windowed
mode under KDE.
- Added a missing "Rapid Fire" string to the configuration menu. This
fixes problems with the configuration of player controls. (Sylvain
Trosset)
- Cleaned up the sound code (Hans de Goede):
* Cleaned up the ALSA driver.
* The ALSA driver now reports the actual sample rate to the caller
rather than the requested one.
* Removed the "-alsa-pcm" command line option; the ALSA driver now
supports "-auviodevice (-ad)". (Hans de Goede)
* Removed "-fakesound (-fsnd)". Now sound is always faked since
certain games won't run without it.
* Changed the default sample rate to 44100, moving us into the
Third Millennium.
* Removed the "-[no]sound" option; if you really want to disable
sound, specify a bogus device with "-audiodevice".
- Removed the "-[no]mouse" option. (Hans de Goede)
- Split aspect and mode settings so that all targets can use the
aspect settings. (Hans de Goede)
- Fixed the mapping of analog sticks' min..max ranges to the core's
range. This fixes games that use analog controls, such as Out Run,
as well as the jittery movement of the mouse cursor in games such as
Missile Command.
- Audio should work much better on Mac OS X. (anonymous)
- The MMX assembly language version of the 6-tap filter now works for
16 and 32bpp source and destination bitmaps; previously, only the
32bpp screen depth was accelerated. (Richard Goedeken)
- Corrected some of the out-of-date information in the documentation.
Fixes Bugzilla bug 604.
- Light guns should work again. Also added support for the triggers on
an ACT LABS USB PC Monitor model that didn't work previously.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
Changes since 0.85 include:
- Everything from MAME 0.86 (http://x.mame.net/changes-mame.html) and
MESS 0.86 (http://x.mame.net/changes-mess.html).
- Fixed buffer overruns in the effects and rotation code that caused a
segfault on exit for some games with artwork enabled.
- Fixed memory leaks in the effects and rotation code that occurred
when the display settings changed.
- XInput was probably limited to two controllers in 0.85, but should
again support up to four.
- When "-norotate(-nr)" is specified, the UI is no longer rotated
relative to the game. (Hans de Goede)
- Did major cleanup of the blit core (Hans de Goede):
* Rotation should be a bit faster.
* Defining DEST is no longer optional; targets that don't define it
will need to be fixed.
* Removed a bunch of obsolete #defines and special cases.
* Added support for vector clipping, which fixes mhavoc.
* Removed fixed Y scaling, since the arbitrary Y scaling is not
noticeably slower.
* Removed LOW_MEM from the makefile; blit.h is now so small, it
should no longer be needed.
- The C version of the 6-tap filter rotates pointers now instead of
using memcpy, which should give a small speed boost. It also no
longer reallocates a rotation buffer. (Hans de Goede)
- Adjusted a few tests to make sure that every combination of compiling
in XIL, MITSHM, and Xv will work and that the fallback order is Xv ->
MITSHM -> normal X11. (Hans de Goede)
- The Xv driver no longer uses "-geometry", since this requires users
to know the aspect ratio of a game. It instead uses "-widthscale"
and "-heightscale". (Hans de Goede)
- Added "-perfect-yv12", which uses perfect Xv YV12 scaling instead of
the widthscale == 2 && heightscale == 2 hack. (Hans de Goede)
- Added support for displaying 32bpp bitmaps on a 16bpp X11 or 3Dfx
display by down-sampling. (Hans de Goede)
- Added rotation for Xv YV12 displays. (Hans de Goede)
- Sometimes Xv Image creation succeeds, but the first XvShmPutImage to
a mapped window fails with a BadAlloc error; also, sometimes it can
create an Image smaller than the requested size. In such cases, the
code now falls back to another Image type instead of crashing later.
(Hans de Goede)
- Fixed problems in the X11 display target (Hans de Goede):
* Free cursors on close.
* Call close when display creation fails to clean up after us.
* Comment out sleep calls, which shouldn't be necessary since XSync
should only exit after everything has been processed.
* Removed x11_window_put_image in favor of x11_window_refresh_screen
since dirty rectangles are no longer supported.
* Worked around an X11 bug that caused keys to get stuck when
fullscreen DGA mode was exited.
- The display should no longer open twice for artwork games: The setup
code wasn't rounding the display bounds as it should have.
- Effects now use CORRECTED_DEST_WIDTH and *may* work with PACKEDPIXEL
modes. (Hans de Goede)
- Adjusted the display bounds rounding so that the resulting rectangle
is at least as large as the original. This prevents the cutoff on
the right side of the intro screen for, e.g., pacman with artwork.
- Fixed problems with aspect ratio calculation (Hans de Goede):
* Fixed problems with SVGAlib, DGA, and possibly other display
targets when arbitrary Y scaling was used.
* Games whose bitmap isn't 4:3, such as pacman and moo, no longer
show black borders with Xv.
* Added correct aspect ratio calculation to Xv when games have double
width or double height pixels; for example, blstroid.
* The Xv aspect ratio honors "-displayaspectratio".
* Removed the "-widescreen" option in favor of "-displayaspectratio
1.77".
* Pixel width and height doubling is now correct when
"-[auto]ro{r|l}" is used.
- The "-bpp" option now only supports 15 or 32. (Hans de Goede)
- Joystick buttons are no longer always registered as "button 9" in the
configuration menu. Fixes Bugzilla bug 587. (Thomas Klausner)
Changes since 0.84.1nb1:
- Everything from MAME 0.85 (http://x.mame.net/changes-mame.html) and
MESS 0.85 (http://x.mame.net/changes-mess.html).
- Added a 2x sinc-based 6-tap filter effect with scanlines, enabled
via "-effect 8" or "-ef 8". (Richard Goedeken)
- Reworked the input code so that it more closely resembles its Windows
counterpart. This adds support for "-steadykey", "-a2d_deadzone" and
"-digital".
- Increased the maximum number of joysticks from 6 to 8 and the maximum
number of buttons per joystick from 16 to 32.
- Mouse buttons may not have been working in recent releases for games
such as Missile Command; they should work now.
- Network support is broken for the time being because of the core
input changes, so please disable XMAME_NET in your makefile. If
you're interested in fixing this, have a look at src/unix/network.c
and the XMAME_NET sections of an older src/inptport.c.
Changes since 0.82.1:
* Everything from MAME 0.83 and MESS 0.83 (changes-mess.html).
* The Xv driver now turns on XV_AUTOPAINT_COLORKEY, in case it was
turned off by, for example, by the xine movie player. This prevents the
display from being blank in this case. (Shyouzou Sugitani)
Changes:
Release 0.80.1, 13 March 2004
- Everything from MAME 0.80 (http://x.mame.net/changes-mame.html)
and MESS 0.80 (http://x.mame.net/changes-mess.html).
- Improved support for GNU make's -j option, which can especially
benefit SMP and SMT machines. (Arnaud G. Gibert)
pkgsrc changes:
o Make esound support optional via USE_ESOUND (by default is NO).
Changes since 0.78.1 includes:
- Everything from MAME 0.79 (http://x.mame.net/changes-mame.html) and
MESS 0.79 (http://x.mame.net/changes-mess.html).
- Updated the ALSA DSP module to use the ALSA 1.0 API. (Shyouzou
Sugitani)
- Paths now allow a literal "$" if it's preceded by "\". (Andre
Majorel)
- Fixed a segfault that occurred when "-debug" was used with a rotated
game.
- The debugger window should no longer be blank for 32bpp games.
- Fixed a bug in fix-comments.c that was causing it to mangle
src/drivers/vendetta.c.
- When XINPUT is defined in the makefile but no XInput devices are
configured, the mouse is treated as a trackball. (Gerd Sussner)
- The Xv YUV code should now work on big-endian platforms. (Maciej J.
Woloszyk)
- The trigger for the ACT LABS TV light gun now works; reloading now
requires only one offscreen shot instead of two. (Joe)
Changes since 0.77.1 includes:
- Everything from MESS 0.78.
- Changed the abbreviation of "-pause_brightness" to "-pbrt" to prevent
a conflict with "-playback".
- Fixed an infrequent spurious error reported by zlib 1.2.1. (Mark
Adler)
Changes since 0.74.1 includes:
- Everything from MESS 0.77.
- Ported two more effects from AdvanceMAME: hq2x and lq2x. (Pieter
Hulshoff)
- Adjusted and cleaned up some YUV code. (Alastair Robinson)
- Improved the Superboard II emulation in xmess. For details, see
http://claudio.ch/SuperboardII/ (Claudio Nieder)
- The I/O section of the xmess manpage should be more up-to-date.
- A leading '.' on a path now causes xmess to treat it as absolute.
This allows "xmess.x11 nes -cart ./zelda.zip" to work.
- Set options.mess_printf_output so that xmess spits out more
informative error messages, e.g., when it's unable to load an image.
- The "-list-dsp-plugins / -ldp" and "-list-mixer-plugins / -lmp"
commands now cause the program to exit with a return value of 0.
Changes since 0.72.1 include:
- Everything from MESS CVS.
- Reapplied David Mitchell's fix for the XInput inertial effect when
a mouse or spinner is used. (Jake Stookey)
- Added support for controllor setup via "-ctrlr". Note that "-hotrod"
and "-hotrodse" have been replaced by "-ctrlr HotRod" and "-ctlrlr
HotRodSE".
Changes since 0.71.1 include:
- Everything from MAME 0.72 and MESS 0.72.
- The various effects enabled by -effect now work with rotation enabled.
(Shyouzou Sugitani)
- The Xv target supports more effects. (Shyouzou Sugitani)
- The rc parsing code displays more compact and readable error messages.
(Andre Majorel)
- Xv windowed mode is now enabled with "-x11-mode 2" or "-x11 2", and
Xv fullscreen mode is enabled with "-x11-mode 3" or "-x11 3". The
"-[no]xv" and "-fullscreen" switches are no longer available.
- Added hotkey switching for Xv windowed mode via ALT + DEL and Xv
fullscreen mode via ALT + END.
- Added -widescreen for Xv. This shrinks the width of the output for
display on a widescreen TV. (Per Wigren)
Changes since 0.69.1 includes:
- Almost everything from MESS 0.70
- Fixed the default values for -sysinfo_file and -messinfo_file, which
were missing a '/'.
- Fixed the handling of leading zeros in the fractional part of a float
in src/unix/snprintf.c. (Chris Kirmse)
Changes since 0.68.1 includes:
- Re-added Ben Collins' core change that adds support for extra mice.
- Reverted to using the original fronthlp.c (from 0.67.2) modified to
work with the 0.69 core.
- Fixed a logic bug in the XInput devices button-handling. (Ben
Collins)
- Made a tiny fix in fileio.c that allows specifying direct paths to
roms to work again; e.g., ./xmame.x11 ./moo.zip
Changes since 0.67.2 include:
- Almost everything from MESS 0.68.
- Fixed the analog joystick support so that the Y-axis is
recognized as analog. (Sebastien Devaux)
- The command line is now parsed even if the display cannot be
opened. (Christopher Stone, David Mitchell)
- Added support to the core for 4-button mice and 10-button
joysticks. (Ben Collins)
- Fixed several problems and did a lot of cleanup in the XInput
code, especially for the output (e.g., showing detection
status. (Ben Collins)
- Fixed a few problems with -listinfo output. (Andrea Mazzoleni)