Added SOURCEFILTER option to specify a driver filter file in your make
options, e.g. like make SUBTARGET=custom SOURCEFILTER=mydrivers.flt (or
put it in your useroptions.mak if you'll be using it a lot). It
functions more-or-less like SOURCES on steroids.
Changed the way system/device source file paths are displayed to suit
the new source layout better. INI file loading hasn't changed, that
still just uses the base file name.
Added overlooked trigger to src/bus.lua to include NES controller bus if
the NES zapper sensor is needed.
Driver projects now use globs to search for files. There's less effort
editing the Lua files when things are moved around. Remember it won't
automatically pick up a change, so if you add/remove/change files, you
should touch makefile to get it to find the change.
Driver projects no longer get the top-level MAME directory as an include
path. This means you need to think about how you structure things and
not introduce nasty circular dependencies.
Subtarget projects can now be generated entirely from .flt files without
the need for separate Lua scripts and .lst files. This has been done
for the arcade, mess and virtual targets. It effectively works like a
SOURCES= build on a large scale. This means you need to organise things
so the dependency genrators can find them.
There's an issue with the mess subtarget right now. For some reason,
decmate2.cpp isn't picking up the dependency on the PDP8 CPU core for
the HD6120 device. I'll debug it later
* Make netlist/plib noexcept issue workaround trigger for clang 8 or
Apple clang 11.0.0.
* Disable lifetime DSE optimisation for GCC 10.2 (this may be an issue
in GNU libstdc++ rather than GCC itself - using compiler version as a
proxy for standard library version is bad, but it's the path of least
resistance for now).
Don't treat hypen and dot as the same thing - it will cause issues with
pacakge revisions. Cleaned up some Lua code as well.
Also show warnings about potentially uninitialised stuff with GCC 12,
just don't make them fatal errors.
Need to find a better way of doing this without causing .po files to be
rebuilt on every build. The commit is still there for reference.
This reverts commit efe9c1e728.
Changed the default mapping for UI select to not trigger on Alt+Enter
fullscreen toggle. (Fullscreen toggle still doesn't work in menus -
actually fixing that is complicated.)
frontend: Made the about box wrap text properly, made the title and
backtrack menu item always visible, and added a footer with the VCS
revision.
frontend: Don't highlight the favourites and info toolbar buttons if
there's no selection (can happen if filters produce no results). Also
made the info viewer appear even if no info is available - it's less
confusing to see an empty menu than wonder why clicking the button does
nothing.
debugger: Added a register points view to the GUI debuggers, to go with
the breakpoints and watchpoints views.
debugger: Extended [brw]p(clear|(en|dis)able) commands to accept
multiple arguments to perform the same action on multiple
(break|watch|register)points at once. Also made rplist accept a CPU for
showing a single CPU's register points ([bw]plist already support this).
docs: Updated registerpoints debugger commands page, and updated other
pages for latest extensions to syntax.
Trying to collect messages from everything at once hits some limit in
xgettext and causes messages to be lost no, so I've split it up by the
second-level source directories.
For some reason xgettext thinks overloaded Lua functions are blasphemy,
so that has to be worked around, too.
* frontend: Added support for message context to localisations.
* frontend: Added string_view versions of the message lookup functions.
* frontend: Added a few more folder options to the internal UI.
* emu/softlist.cpp: Use more appropriate containers.
* Switched to Python 3 by default - this will become a requirement.
* Updated msgfmt.py for message context support.
* frontend: Show all software item info in the internal UI.
* frontend: Search alternate titles in software selection menu.
* 3rdparty/utf8proc: Updated to v2.6.1 (has several fixes).
* frontend: Added software filters for common info fields.
* frontend: Allow UI manager to hold onto persistent session data.
* frontend: Cache software lists for eight machines.
* frontend: Added support for loading localised system names.
* frontend: Add UI for selecting localised system names.
* Reduce repeated directory walking in cleansrc target (substantially
improves speed of building the target on Windows).
* Disable a validity check using an MSVC language extension when using
clang in MSVC ABI mode.
Made pbobble parent of bublbust, as it seems to be more widespread and
more complete. Also fixed some ROM labels for bublbust.
Made tbyahhoo parent of mtwinbee as the latter has substantial content
removed rather than being localised, making it less complete.
Applied srcclean to JSON files in bgfx subtree.
Removed support for DirectInput 7 and earlier. It hasn't been tested in
years, and it's not relevant on any supported OS. DirectInput is
effectively finalised at version 8, and is unlikely to get an API update
in the future.
Use more string[_view] and fewer C strings, and tightened up scope of a
few things.
* Removed inline assembly for operations compilers handle well.
* Added ARM and AArch64 implementation for a few operations.
* Added unsigned integer add with carry out operations.
-cpu/drccache.cpp: Detect whether RWX pages are supported.
-dynax.cpp: Improved a few hanafuda DIP switch descriptions.
* psixptty: Fix for FreeBSD
We need to check for __FreeBSD__ not __FreeBSD_kernel__
* FreeBSD: Use gl includes from pkg-config
FreeBSD doesn't install the includes from 3rdparty software in a default
location so use pkg-config to get the correct path.
* FreeBSD: genieos is named simple bsd
PowerPC architecture is special in a way that it has some inline assembly
code but no DRC support. As a result, NOASM=1 was never configured.
In contrast to the old DRC, asmjit only compiles on the architectures it
supports. FORCE_C_DRC_BACKEND=1 needs to be passed to the makefile or
the compilation will fail.
(nw) The pcap.h header itself has the problematic original BSD license,
including the obnoxious advertising clause. Using tap/tun networking on
Windows provides a much better experience, so the extra setup is worth
it. This patch also allows you to enable pcap on platforms where it's
disabled by default with USE_PCAP=1 if you really want to use it.
* Allow specifying NO_OPENGL manually
* Switch bgfx to OpenGL ES renderer if NO_X11 is specified
* Only link against EGL when NO_X11 is specified on linux, netbsd and openbsd
* Only switch bgfx to OpenGL ES on linux, netbsd and openbsd
* Indentation fix
* Sync with bgfx upstream revision b91d0b6
* Sync with bx upstream revision d60912b
* Sync with bimg upstream revision bd81f60
* Add astc-codec decoder
* Rename VertexDecl to VertexLayout
* Rename UniformType enum Int1 to Sampler.
* Add NVN stub
* Fix unused-const-variable error on macOS
* Drop redundant explicit language parameters
buildoptions_cpp are only applied to c++ files and buildoptions_objcpp are only
applied to objective c++ files. As such, hardcoding -x offers no benefit while
preventing overrides (such as one needed by 3rdparty/bgfx/src/renderer_vk.cpp on
macOS) from working.
* Re-introduce -x c++ in places where C code is compiled as C++ to prevent clang from throwing a warning
* Build bgfx as Objective-C++ on macOS
It is needed due to included headers
* Enable Direct3D12 and Vulkan bgfx rendering backends
* Enable building of spirv shaders
* Properly escape /c in cmd call
* Comment out dx12 bgfx renderer
* Honor VERBOSE setting during shaders build
* Only invert hlsl shader XYZ_TO_sRGB matrix for opengl
* Add spirv shaders
* OpenGL ES needs transposed matrix too
* Metal needs transposed matrix as well
* Synced with GENie upstream revision e78d6c1
* Add Visual Studio 2019 support
* Fix hardcoded -m64
* Switch appveyor to Visual Studio 2019
* Fix genie being built as 32-bit
* MSVC build is known to be broken currently. Let it fail until all the known issues are fixed.
* Update the packages before building
* Build with 3 threads
Appveyor VMs have only 2 cores and 8 GB RAM.
* Enable caching of pacman cache