* Sync with upstream. I/O callbacks are now consolidated into a single read callback and a single write callback, with an access type specifier.
* Initial working implementation of YM278B. Most features implemented, except vibrato.
* Implement vibrato and status register flags. Fix envelope rate computation.
* Rename ymfm_interface::external_type to access_class and clean up the fallout.
* Formally replace the old YMF278B engine with the one from ymfm
* Rotated YMF278B outputs into a more logical order.
* Re-evaluted envelope calculations and 2x works better than the weird 15/8 I came up with before. Also changed the way FM resampling is computed to be more precise (and simpler). Turned off extraneous debugging.
* Start of/reset to a null state with no loaded waveforms.
* Fix YM2608 I/O ports.
ymfm: refactor the code into a separate 3rdparty library
* Moved ymfm core implementation to 3rdparty/ymfm
* Split out each family (OPM/OPN/OPL/etc) into its own source file
* Added preliminary OPQ and OPZ support, still WIP
* Put all 3rdparty code into its own namespace ymfm
* Fixed various bugs reported in #8042
* Created interface class for communication between the 3rdparty engine and the emulator
* Standardized MAME implementation of all Yamaha devices based on a template class
* Created standard base class ym_generic that can be used when multiple YM chips are swapped in
* Changed YM2203/2608/2610 to embed a YM2149 as a subdevice instead of deriving from ay8910_device
* Also provided compile-time option to use a simplified built-in SSG rather than using MAME's at all (currently off)
* Consolidated MAME header files from one-per-chip (ym2151.h, ym2203.h, etc) to one-per-family (ymopm.h, ymopn.h, etc)
Now based on upstream cc6c08d3a80f1a305021af3d6394cdf1535d02a2.
Among other things, this version is supposed to be less sensitive to the
global locale.
(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.
* Removed empty nl_examples from dist.mak
* Added copyright acknowledgements and full text of licenses to binary distribution
* Fixed up the list of third-party libraries
* Moved WDL fft.c to 3rdparty
* Change makerules to take variable $(PROJECT_TYPE) instead of hardcoded 'gmake'
This allows to run `make projgen PROJECT_TYPE=ninja` to generate ninja build files instead.
and to build GENie using ninja by running `make release PROJECT_TYPE=ninja`.
Using ninja improves build times,
e.g. for macOS: 12.47s with gmake goes down to 2.05s with ninja.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Set prefer project set as solution.startproject as default target
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Adding `GenerateMapFiles` flag.
Causes Visual Studio's linker to generate .map files for that
configuration.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Add ninja support for 'wholearchive' libraries
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Fixup ninja.esc to gracefully ignore nil passed as value
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Use -Wl,-force_load for wholearchive libs when building for macosx
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Updated README.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Add space after filename in 'Generating' message
This makes the filename 'clickable' to open in iTerm and VSCode
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Print generated filenames as quoted string
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Remove '...' after filename
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Pop cwd after pushing to run file
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Make paths in embed.lua rely on script dir
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Updated README.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Fix issues caused by make-4.3 no longer adding spaces to variables in some cases The fix was found by @asavah.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Fixed release script.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Updated README.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Update scripts.c
Co-authored-by: Christian Helmich <kagekirin@gmail.com>
Co-authored-by: Johan Sköld <johan@skold.cc>
Co-authored-by: Бранимир Караџић <branimirkaradzic@gmail.com>
* Change makerules to take variable $(PROJECT_TYPE) instead of hardcoded 'gmake'
This allows to run `make projgen PROJECT_TYPE=ninja` to generate ninja build files instead.
and to build GENie using ninja by running `make release PROJECT_TYPE=ninja`.
Using ninja improves build times,
e.g. for macOS: 12.47s with gmake goes down to 2.05s with ninja.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Set prefer project set as solution.startproject as default target
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Adding `GenerateMapFiles` flag.
Causes Visual Studio's linker to generate .map files for that
configuration.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Add ninja support for 'wholearchive' libraries
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Fixup ninja.esc to gracefully ignore nil passed as value
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Use -Wl,-force_load for wholearchive libs when building for macosx
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Updated README.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Add space after filename in 'Generating' message
This makes the filename 'clickable' to open in iTerm and VSCode
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Print generated filenames as quoted string
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Remove '...' after filename
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Pop cwd after pushing to run file
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Make paths in embed.lua rely on script dir
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Updated README.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Fix issues caused by make-4.3 no longer adding spaces to variables in some cases The fix was found by @asavah.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Fixed release script.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Updated README.
Signed-off-by: Julian Sikorski <belegdol+github@gmail.com>
* Update scripts.c
Co-authored-by: Christian Helmich <kagekirin@gmail.com>
Co-authored-by: Johan Sköld <johan@skold.cc>
Co-authored-by: Бранимир Караџић <branimirkaradzic@gmail.com>
Currently waitvsync is broken in the bgfx vulkan backend.
The option is just ignored and a mode waiting for vsync is selected.
This also breaks throttle. -nothrottle doesn't work.
These changes fix this. If available a non-syncing mode is used if
-nowaitvsync is used.
Previous semantics were encouraged by sol2, and ThePhD admitted it was a bad idea for usertypes with lots of members. sol3 allows to assign members outside a constructor for regular usertypes, but mame can't move to sol3 because it requires C++17. Turns out sol2 also has a way to add members separately, and that is what I used. This helps immensely.
This approach required a fix to warning C5046 copied from here 5799084572
Tested current mame plugins, everything seems to work.
PS: Due to come black magic, if I use simple_usertype::set() with "manager" as well, "machine" member dies (others are fine!), so I had to leave it intact.
* Add workaround for imgtool and jedutil failing vs2019 debug builds with /ZI
* No longer allow msvc build to fail
* Enable tools build for travis to make it more useful
* Switch travis to Xcode 11 in order to fix nltool linking failure
* Prefer 64-bit compiler with VS 2019 too
* Setting PreferredToolArchitecture to x64 is not needed, genie puts it into the project files for vs2015 or later
* OPTIMIZE=1 build is faster that OPTIMIZE=0 for some reason. So fast in fact, that TOOLS=1 can be enabled without hitting the 60 minute timeout
* Switch MINGW build to VS 2017 image until appveyor figure out why builds on VS 2019 are almost twice as slow
* Run pacman twice to account for core system upgrades
- solver now uses dynamic allocation on systems larger than 512x512
- fixed osx build
- moved nl_lists.h classes to plists.h
- fixed netlist makefile clint section
- readability and typos
* 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