xmame/xmess 0.88 is now available. Many thanks for the patches and
feedback and especially to Hans de Goede for his gargantuan efforts.
You can grab a patch for 0.87 or the full sources from
http://x.mame.net/download/0.87-0.88.diff.bz2
http://x.mame.net/download/xmame-0.88.tar.bz2
Please pay careful attention to the highlights section of the changelog.
Changes since 0.87:
- Everything from MAME 0.88 (http://x.mame.net/changes-mame.html) and
MESS 0.88 (http://x.mame.net/changes-mess.html).
- Highlights of this release (PLEASE READ) (video changes by Hans de
Goede):
* Completely reorganized the video code. The OpenStep and Photon2
targets are broken as a result until someone fixes them, but the
changes are well worth it.
* Renamed "-x11-mode (-x11)" to "-video-mode (-vidmod)". The help
text for this option is now auto-generated based on which options
are available. This option is also used by non-X11 displays.
* The xgl and xfx drivers are now built into the X11 target,
alongside Xv and DGA. OpenGL can be selected at runtime with
"-video-mode (-vidmod) 2", and Glide can be selected with
"-video-mode (-vidmod) 3".
* Fullscreen mode is now enabled from the command line with
"-fullscreen".
* Reworked the hotkeys for switching between X11 video modes and
fullscreen and windowed modes: left-alt +
insert: normal or DGA rendering
home: Xv rendering
page up: OpenGL rendering
delete: Glide rendering
page down: toggle between windowed and fullscreen
* Changed the hotkeys for grabbing keyboard and mouse from left-alt +
page up/page down to left-control + page up/page down.
* Added an ALSA mixer plugin, which can be enabled with
"-sound-mixer-plugin (-smp) alsa". The new "-alsa-mixer (-amixer)"
option accepts the name of a "simple mixer control", which you can
find by executing "amixer". (Shyouzou Sugitani)
* Changed JOY_I386 in the makefile to JOY_STANDARD.
* Removed support for the X11 joystick driver, which was broken
anyway.
* The "-joytype (-jt)" list now only displays drivers that are
compiled in. Note that some of the values have changed!
- Another slew of changes from Hans de Goede:
* Added "-alwaysusemouse(-aum)" to the X11 driver. If this is not
set, mouse events won't be reported to the core when fullscreen
mode is disabled and the mouse is not grabbed.
* The code for handling a grabbed mouse now uses the window size
instead of the image size, which fixes problems when the Xv window
is shrunk to less than half its original size.
* The in-game cursor no longer jumps when the mouse is grabbed.
* BIG cleanup of the display code: Internal changes should
theoretically allow the display drivers to be placed in shared
object (.so) files and loaded dynamically.
* The game_bitmap_update bounds are now honored, resulting in a nice
speedup for artwork games.
* The rounding of bounds is now only done for blitting to the
offscreen image, and not for displaying on the screen. This gets
rid of the black borders in some games, such as mspacman with
artwork enabled.
* The DGA code can now display any color depth on any depth just like
normal windowed mode.
* The DGA 2.0 code now tries to obtain a mode with the best and
fastest color depth; for example, a depth 15 mode for vector games,
so that the entire bitmap can be copied straight into the
framebuffer with no conversion.
* Fixed a small memory leak in the DGA 1.0 code.
* Made a small tweak to the Xv window size handling to avoid a small
black border in Xv windowed mode.
* Now "-geometry (-geo)" sets not only the x- and y-coordinates, but
also the window size when the window is resizable (xgl and Xv).
The requested size gets clipped to the largest constrained size
with the correct aspect ratio.
* Removed the "-fxres" option. Glide now honors the window size
passed with "-geometry (-geo)".
* Really fixed artwork with vector games in the Glide targets.
* Added a "-hwvec <int>" option:
0: Never use Glide/OpenGL vectors.
1: Auto (don't use when there is an artwork overlay).
2: Always use Glide/OpenGL vectors.
* Fixed rotation with artwork-enabled vector games in Glide targets.
* Force a full screen update so that artwork bezels get shown when
DGA mode is enabled via hotkey.
* Prefer 16bpp deep modes over 15bpp deep modes when we must
downsample from 32bpp; try to avoid 24bpp packed modes.
* Added a "-forcemode (-fm) WxHxD" option; this is intended mostly
for testing purposes.
* The DGA 2.0 driver no longer uses fillsolidrectangle, which isn't
supported on some cards, notably Radeons in 32bpp mode. This is
not in a speed-critical path, so memset is always used.
* The DGA 2.0 driver can now pageflip on vsync. This fixes tearing
in side-scrolling games and flashing in all games. Added an option
"-vsync-pagelimit (-vspl) <int>" with which the user can specify
the maximum number of frames to queue in offscreen video memory for\
displaying on vsync; the default is 2, and 0 disables this feature.
Note: When a game's FPS is higher than the refresh rate of the
chosen video mode, the game will run slower or skip frames.
* Rewrote the OpenGL vector code, which now works with artwork
(without overlays), supports clipping, fixes a number of bugs with
cabinet mode, and generates shorter OpenGL command lists.
* Made the resizing of the OpenGL window not bound to the aspect when
in cabinet mode.
* Don't resize the window for display methods that can do hardware
scaling when the visual area of the game changes. This fixes
flashing with, for example, raystorm when Xv or OpenGL is used.
* Removed the definition of GLX_LIBNAME from the makefile; now it is
always libglut.so.
* Removed TDFX_DGA_WORKAROUND from the makefile; this is now always
enabled, since it shouldn't hurt cards which don't have the bug.
* Added a "-fxresolution (-fxres)" option for Glide: Now "-geometry
(-geo)" can be used for hardware-scaled windows (Xv, OpenGL)
without causing Glide to complain about an invalid resolution.
* Whenever possible, the display is no longer destroyed and recreated
when settings change; only the window is resized or the video mode
changed.
* Made XIL a separate X11 mode, which can be enabled with
"-video-mode (-vidmod) 4" or left-alt + end.
* Fixed a rounding error which caused vector games to get a slightly
different resolution than requested.
* Shuffled options somewhat so that the output of "-help" and
"-showconfig (-sc)" is more logically ordered.
* Disabled the use of scanlines with yarbsize.
* Fixed a bug with double-buffered blitting which caused each line to
be blitted twice. This is a huge speedup for DGA.
* Config files are now parsed after checking for "-help", "-version",
and "-manhelp".
* An error about being unable to open the display is no longer
reported when "-help" or front-end options are used without X.
* For 2x and 3x width scales, pixels are now written in memory order,
which speeds up scaling directly to the framebuffer a lot, since
this makes use of write combining.
* Double buffering is no longer used for directly writing to hardware
surfaces.
* When the source and destination pixels are the same and the width
scale is 1, the rotation code now writes directly to the
destination instead of to an intermediate buffer.
* Cleaned up the mode handling in the DGA 2.0 driver.
* Added hotkey switching for effects: Use left-ctrl + page-up or
page-down. Mouse and keyboard grabbing are now toggled with
left-ctrl + del and left-ctrl + end, respectively.
* Scanlines are now an effect (number 9) instead of being controlled
by a separate option ("-scanlines").
* A brief message is now displayed when effects and other options are
changed via hotkeys.
* Fixed a vector clipping bug in the Glide target.
* Added hotkeys for changing options for Open GL: left-ctrl +
left-alt + :
insert: toggle bilinear filtering
home: toggle cabview
end: toggle antialiasing
page up: increase vector beam size
page down: decrease vector beam size
Left-ctrl + left-alt + insert also works for toggling bilinear
filtering in Glide.
* Core dumps are disabled when DGA is available, since dumping core
with DGA leads to X server freezes.
* Fixed artwork not showing in OpenGL and Glide modes under certain
circumstances.
* Scanlines are now at the bottom of each line, an no longer halfway
in certain cases.
* Only close and reopen the sound device if necessary.
* Align not only min_x but also max_x of the destination coordinates.
This fixes screen corruption with DGA on certain buggy hardware.
* Fixed a problem with DGA where garbage would show on the right side
of the screen for certain artwork.
* Handling failures in the video setup is now more graceful; this
should make sure that the abort case doesn't get reached unless a
system is running out of memory or the like.
* Fixed 16bpp to YUY2 blitting on 64-bit architectures.
* Fixed a bug in DGA2 which caused the border of artwork to be
blitted each frame.
* Slightly reworked alignment handling in video drivers which can
have different modes/resolutions (DGA, SVGAlib, SDL).
* Completely rewrote the SDL driver. It's now much faster than
before -- just as fast as the native X11 driver -- and has 100%
support for fullscreen, effects, scaling, etc.
* A number of games should no longer segfault on AMD x86-64 systems.
- The xml2info utility can now link against the system's libexpat, and
no longer requires BUILD_EXPAT to be set. Fixes Bugzilla bug 592.
- Updated the CFLAGS for IRIX MIPSpro in the makefile. (Brandon
Corey)
- Fixed the IRIX AL sound driver's 8-bit output and updated rate setup
to deal with unsupported audio hardware rates. (Brandon Corey)
- Possibly fixed a crash that occurred when a second lightgun's button
was pressed and XINPUT_DEVICES wasn't defined in the makefile.
_______________________________________________
Xmame mailing list
[EMAIL PROTECTED]
http://toybox.twisted.org.uk/mailman/listinfo/xmame