Make avi_file a class that's held with smart pointers, encapsulate various AVI I/O structures
Make zip_file and _7z_file classes rather than having free functions everywhere
Hide zip/7z class implementation behind an interface, no longer need to call close() to send back to the cache
Don't dump as much crap in global namespace
Add solaris PTY implementation
Improve variable expansion for SDL OSD - supports ~/$FOO/${BAR} syntax
Rearrange stuff so the same things are in file module for all OSDs
Move file stuff into its own module
7z/zip open and destruct are still not thread-safe due to lack of interlocks around cache access
Directory functions still need to be moved to file module
SDL OSD may not initialise WinSock on Windows
- options are reset to loaded preset when game is closed
- changed default values of options to result in no effects activated
- init_slider_list() does not returns but sets g_slider_list directly
- removed unnecessary oriented_vector_texcoords
- implemented proper texture coordinates for vector quad primitive
- vector screen is now processed in texture coordinates
- revered workaround for raster screen, which is again processed in
texture coordinates
- known issue: cocktail mode for vector screen looks wrong
Add common debugger commands to global menu bar [Vas Crabb]
Also fix occasional crash in Copy Visible
Note that copy visible, paste, toggle breakpoint, and view options still require you to use context menus in windows
Debug/Run menus only work when a debugger window has focus, so Break is less useful than it could be
Hope this is at least a slight improvement for you, ArBee
- split into primary.fx into 3 techniques for vector buffer, screen and
UI pass
- moved register_texture() for shaders outside of texture_info creation
- added render_primitive parameter to register_texture(); currently
unused
- removed other unused register_texture() definition
Update MAME to use new function
Instantiate ODR-used static constant members
Make some of the UI code more localisable
Remove use of retired functions in tools
- calculation of bloom dimensions is now done only once, when render
target is created
- reduced blur width for non-vector screens
- implemented shadow u/v option for source tile mode
Five new specifiers for driver enumeration and all commands depending thereon:
- @source.cpp matches all drivers in source.cpp
- ^driver matches driver and all its clones
- :drivbios matches drivbios and all drivers having it as their BIOS
- ^ matches all drivers excluding clone sets
- : matches all BIOS roots
Note that these new specifiers are not compatible with other wildcards; they only perform normal case-insensitive matches with driver or source file names.
The -listclones command now lists drivers in a completely different, human-readable format. It performs an extra loop to deduce the parent set name if a clone was specified; this causes, for instance, -listclones pacman and -listclones puckman to produce identical output. It includes descriptions with the clone driver names much like -listfull, and uses the parent set's description as a header for its clones. It also recognizes BIOSes and lists unique matching sets with no clones at the end of the output.
The -listsource command outputs not only the source file of each matching driver, but also its parent set and BIOS root (if any). These are output using the new @sourcefile, ^driver and :bios specifiers.
The new -listtree command is a human-readable analogue to -listsource and an alternative to -listclones. It tabulates drivers by source file in tree format, with the names of clones indented under their parents and drivers indented under their respective BIOS roots.
The -listbrothers command remains functionally unchanged, but should be considered somewhat deprecated in favor of the @sourcefile specifier with other listing commands.
Fix include_all counting error causing assert to fail in find_approximate_matches (nw)
Relax dependencies on drivenum.h in UI headers (nw)
- HLSL now uses NPOT sized target surfaces (breaks compatibility with
graphics cards based on R300/R400/NV30 and older)
- HLSL target surfaces now have the size of the screen canvas
- removed HLSL pre-scale factor
- HLSL now uses a sharp bilinear interpolation to pre-scale textures to
screen canvas size, based on [Themaister's] implementation
- improved overall performance (based on the previously required
pre-scale factor, you might notice a 5-50% speed-up depending on your
graphics card, more if you used a higher pre-scale factor)
- improved shadow mask quality (pixel-perfect) in screen-mode
- fixed half source texel offset of bloom level alignment
- removed ./hlsl/artwork_support folder
- all shaders after pre-scale are now based on screen coordinate
(workaground, till both raster and vector pass can work on texture
coordinates)
- disabled distortion shader for more than one screen and for artworks
in full mode, does not affect artworks in copped mode (workaground, till
both raster and vector pass can work on texture coordinates)
- moved compute_texture_size() from texture_info to texture_manager (nw)
-[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
- fixed target dimensions of bloom levels, which results in a much
better alignment especially for game with very low resolution (therefore
current bloom settings might look a little less intense than before)
- small cleanups (nw)
- changed the amount of scanline darkness, a setting of 1.0 now becomes
fully black (to get the same result as before half your current setting)
- scanline height now depends on the brightness of the underlying color
- the amount of the scanline brightness and overdrive now depends on the
scanline darkness
- renamed 'Scanline Screen Height' to 'Scanline Screen Scale' and
'Scanline Indiv. Height' to 'Scanline Height'
- merged YIQ encode and decode pass into one NTSC pass
- added options for most NTSC settings
- reduced sample count to 64
- changed default O value to 0
- fit NTSC signal jitter between a reasonable limit of 0 and 1
- fit A and B value between a reasonable limit of -1 and 1
- fit scanline jitter between a reasonable limit of 0 and 1
- 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)
- 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
- fixed half texel offset
- readded usage of A value in encode/decode pass
- readded jitter of B value in encode/decode pass
- readded usage of P value in encode pass
- fixed not set O value uniform for decode pass
- removed duplicate YIQ option definition
- changed default of O value back to 1.0
- color converge is now independent from ratio
- the radial converge now "translates" the most outer pixel as thay
would be translated by the linar converge with the same amount
- color converge is now limited to a maximum of 10
- added color converge pass to vector rendering
- replaced shader parameters OrientationSwapXY xor RotationSwapXY by
SwapXY
- made shader parameters SourceDims, SourceRect, TargetDims, ScreenDims,
QuadDims and SwapXY available for all shaders
- color convolution, defocus and phosphor pass will now be skipped if
all influencing parameters are 0
- removed unused bloom_texture and bloom_target arrays from cache_target
class
- fixed half texel offset in prescale.fx
HLSL: Improved Defocus, Fixed LCD screen, Extended Shadow Mask and Bloom [ImJezze]
Made defocus strength equal for x/y and independent from screen size
defocus is now independent from screen size and ratio
horizontal and vertical defocus now have the same strength
replaced asymmetric defocus kernel by a symmetric kernel
defocus is now limited to a maximum of 10
added shader uniforms for orientation and rotation settings
Fixed HLSL for LCD screen
fixed wrong detection of vector screen, which meant that a LCD screen was also detected as vector screen
re-enabled scan-line and other CRT related sliders for LCD screen
Extended Shadow Mask and Bloom functionality
added shadow mask option to choose between "Screen" and "Source" tile mode ("Screen" is the default as before)
added bloom option to choose between "Addition" and "Darken" blend mode ("Addition" is the default as before)
the alpha channel of a shadow mask is now filled with the background color of the screen by the amount of the inverted alpha value
added monochrome-matrix.png which can be used in combination with "Source" tile mode and "Darken" blend mode to simulate a STN LCD
- added shadow mask type option to choose between "Screen" and "Source"
tile mode ("Screen" is the default as before)
- added bloom type option to choose between "Addition" and "Darken"
blend mode ("Addition" is the default as before)
- the alpha channel of a shadow mask is now filled with the background
color of the screen by the amount of the inverted alpha value
- added monochrome-matrix.png which can be used in combination with
"Source" tile mode and "Darken" blend mode to simulate a STN LCD, for
example
- fixed wrong detection of vector screen, which meant that a LCD screen
was also detected as vector screen
- re-enabled scan-line and other CRT related sliders for LCD screens
- defocus is now independent from screen size and ratio
- horizontal and vertical defocus now have the same strength
- replaced asymmetric defocus kernel by a symmetric kernel
- defocus is now limited to a maximum of 10
- added shader uniforms for orientation and rotation settings
"byte per chunk" is sostituted by "data format"
data formats lesser than 9 work as before, data format 9 is 32 but floating point
in the debug_view_memory class method bytes_per_chunk is substituted by get_data_format, set_bytes_per_chunk is substituted by set_data_format
floating point values cannot be edited
currently floating point values are available only in the windows debugger, next commit will add them to the qt debugger, osx i won't be able to do it
afterwards 64 and 80 bit formats will be added
- fixed not used HLSL settings from <custom>.ini if MAME was started
without driver parameter
- removed default values from HLSL sliders, the defaults here are more
like null values to hint when an effect would be disable
- slightly changed default HLSL settings
- screen adjustment (scale, offset) can now be handled by the respective
render API itself (default behavior is as before)
- D3D (if HLSL) is activated handles screen adjustment by itself within
the shader, which fixes the odd behavior of some effects (e.g. round
corners) when screen scale and offset is used
- replace beam width by beam min. and beam max. width, this makes it
possible to create a linear dynamic beam width by the amount of
intensity of the beam
- added beam intensity weight, this adds an exponential factor to the
dynamic beam width (values greater than 0 will push larger intensities
more than smaller intensities)
- fixed displayed ratio of vector points (zero-length lines)
- fixed the Apollo floppy disk emulation
- added the media option -node_id resp. -ni to set the node ID from a node ID rom image file
- fixed the unmapped ISA Bus access to return 0xff instead of 0x00
- removed excessive log entries from unmapped ISA Bus access
- fixed date (and some other issues) in mc146818 (new in MAME 0166)
- added special post.fx and distortion.fx shader, which support enabled
artworks, but they cannot apply some of the previously implemented
corrections (e.g. bloom staircase artifacts when screen is curved,
elliptic rounded corners when aspect ratio is not 4:3)
- changed default values of curvature, vignetting, reflection, round
corner and smooth border to 0
- reverted compute_size_subroutine() back to non static
- removed some test code
- added experimental bloom overdrive effect and options, this effect
allows to overdrive pure colors like red, green and blue to become more
brighter
- added lcd.ini to parse_standard_inis()
- enabled smooth border effect and added option, its amount is limited
by the amount of rounded corners
- added raster.ini to parse_standard_inis()
- merged vector and raster bloom options, use vector.ini or raster.ini
to distinguish
- fixed defocus strength with difference prescales
- removed default screen ratio of 4:3, ratio is now based on the screen
quad size
- reverted some space to tab changes
- added distortion pass, which is applied after the bloom pass
- moved vignetting, curvature, round corners and reflection effect to
distortion pass
- disabled distortion pass for multi screens and activated artworks due
to not yet fixed misalignments
- disabled scanlines for vector rendering in post pass shader
- removed prescale knowledge from downsample, bloom and post pass shader
- fixed half pixel offset in most shaders
- fixed position of reflection effect when screen is rotated or flipped
- fixed roundness of round corners in any aspect ratio
- fixed shadow mask bleeding (nearly completly)
- added bounds() and screen_bounds() getter to layout_view
- added current_view() getter to render_target
- some cleanup and refactoring
SailorSat made it possible to run multiple instances of MAME for link games, but the problem is that you can only control one MAME instance at a time (the window that has focus). Because win32 MAME supports RawInput, we can make linked games playable with global inputs that will poll simultaneously regardless of whether that MAME instance has focus. In win32 MAME using RawInput, keyboards were already registered for global inputs (RIDEV_INPUTSINK), but the polling code checks if the window has focus, so it wasn't taking advantage of it.
I thought it'd be a good idea to add an option for global inputs to win32 MAME with RawInput. The WINOPTION is the "global_inputs" boolean. The option is disabled by default because this is an uncommon use case for MAME. The option is also disabled when forcing direct input and debugging. If the RawInput initialization code fails for whatever reason, the option will not be enabled. If the option is disabled, keyboards are no longer registered for global inputs (dwFlags set to 0 instead of RIDEV_INPUTSINK), because they won't work globally with the screen focus check anyway.
m_. Rewrote code accessing members to use seconds() and attoseconds().
The changes were triggered by a test how gcc __int128_t would perform as
the internal representation. This test revealed that the current
implementation is still faster. (nw)
- removed position offset in post.fx
- fixed texture offset caused by 0th level of bloom.fx
- fixed texture offset caused by focus.fx
- changed Passthrough parameter in phosphor.fx to boolean
- simplified defocus pass function and calling it twice
- removed CU_PHOSPHOR_IGNORE (Passthrough) uniform, which was only used
in phosphor pass function and is now directly set
- added CU_TARGET_DIMS (TargetDims) uniform based on the current render
target
- fixed missing Prescal parameter in downsample pass function
- some code cleanup
- added support for post pass effects for vector rendering (does not
work properly in full screen mode, yet)
- made texture_info::compute_size_subroutine() function public static
- separated downsample pass and bloom pass into two function calls
- removed/replaced simple.fx by using primary.fx to render on screen
- changed PostPass parameter of primary.fx to boolean
- simplified bloom.fx and downsample.fx, Prescale parameter is now set
correctly from outside depending on raster/vector rendering
In both Windows and SDL builds, format of -resolution can now be any of:
<width>x<height>
<width>x<height>x<depth>
<width>x<height>x<depth>@<refresh>
<width>x<height>@<refresh>
Omitted values are defaulted to 0, at the point of parsing (as before).
-showusage says, and the Windows version looks for,
"<width>x<height>[@<refreshrate>]", but the SDL version was scanning for
"<width>x<height>[x<depth>][@<refreshrate>]", with the effect of
silently ignoring refreshrate if depth was omitted. And if given, the
depth didn't appear to be used anywhere anyway.
This is still not compliant code, and will probably break with LTO,
but is a cleaner fix for the warning. Using this attribute also ensures
that the linker doesn't remove the code.
- changed shadow mask implementation, shadow count XY now represent the
number of pixel the shadow UV sized tiles will take on the screen
- implemented rotation of the shadow mask texture depending on the
default landscape or portrait view of the screen
- removed prescale and pixel border of the shadow mask texture
- added option to change the shadow UV offset, to reduce the color
bleeding of the shadow mask
- adjusted presets to work with the changed mask implementation
- reduced defocus offset
- improved downsampling for better blurring
- improved alignment of bloom layers (raster and vector)
- applied bloom effect to the render output of screenshot and AVI
recording
- changed curvature effect to fit screen size
- changed scanlines to be not rendered into bloom layers
- changed shadow mask to be not rendered into bloom layers
- changed color floor to not light the bloom layers
- changed shadow mask to not dark the color floor
- added image vignetting simulation and option
- added round screen corner simulation and option
- added screen light reflection simulation and option
- made usage of unused brightness offset (additive)
- removed unused pincushion option
- removed duplicate shadow count Y options
- removed artwork/adapture.png
- added artwork/adapture-grill.png
- added artwork/shadow-mask.png
- added artwork/slot-mask.png
- added hlsl/simple.fx
- removed unused shaders::blit() function
- added shaders::screen_pass() function, which handles the
(raster-)rendering on screen, into screenshot and AVI recording
- added effect:set_bool() function
* Save window positions with .aueffect documents
* Allow generic view to be selected for effects with custom views
* Allow factory presets to be loaded
* Clean up CoreAudio module, break up big functions, re-use more code
* A little cleanup in AUEffectUtil
* AUEffectUtil sizes windows automatically
* Proper handling of unsaved changes in AUEffectUtil
It doesn't provide facilities for AU effects, although that could be
added pretty easily if someone wants to. Advantages over SDL sound
output are simpler code and lower latency.
moved MSVC defines from winprefix.h to osdcomm.h
removed empty file compilation - porttime.c
removed osinline.h in windows and sdl and change files using them.
make TARGET=mess -j19
will generate all needed files and build MESS, while developing you can use
make TARGET=mess COMPILE=1 -j19
to prevent rebuilding of make files.
Build system have automatic generate of dependencies so will do incremental builds fine.
make clean
will remove all generated files/projects and obj files