| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
emu/ioport.cpp: Allow controller files to override input sequences for
inputs that don't use defaults, and to override the toggle setting for
digital inputs.
emu/config.cpp: Expose configuration level (mostly matters for
controller files), improved verbose diagnostic messages, and moved a few
things out of the global and preprocessor namespaces.
docs: Added documentation for some controller configuration file
features. The device mapping feature documentation will be merged in at
some point.
util/unicode.cpp, emu/input.cpp: API cleanups.
|
| |
|
|
| |
44100 times per second)
|
| |
|
|
|
|
|
|
|
|
| |
* osdcomm.h: Move definition of EQUIVALENT_ARRAY to coretmpl.h
* sharc.cpp, gt64xxx.cpp, ym2413.cpp, gb_lcd.cpp, snes_ppu.cpp: Use STRUCT_MEMBER for save state registration
* gio/newport.cpp, megadrive/svp.cpp, nes_ctrl/bcbattle.cpp, arm7.cpp, tms9995.cpp, pckeybrd.cpp, sa1110.cpp, sa1111.cpp, jangou_blitter.cpp, vic4567.cpp: Use std::fill(_n) instead of memset
* emucore.h: Remove obsolete typedef
|
| |
|
|
|
|
|
|
|
|
|
| |
Made the sound manager mute controls readable, and got rid of system
enable since it just controls system mute anyway. This was causing
confusion: phantom2 was trying to use both independentlyt casuing the
mute bit to be ignored.
THe Lua interface changes are mostly changing methods to properties,
some renames to make things clearer, and some additional properties for
better control over snapshots.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The things that were previously called device iterators are not
iterators in the C++ sense of the word. This is confusing for
newcomers. These have been renamed to be device enumerators.
Several Lua methods and properties that previously returned tables now
return lightweight wrappers for the underlying objects. This means
creating them is a lot faster, but you can't modify them, and the
performance characteristics of different operations varies.
The render manager's target list uses 1-based indexing to be more like
idiomatic Lua.
It's now possible to create a device enumerator on any device, and then
get subdevices (or sibling devices) using a relative tag.
Much more render/layout functionality has been exposed to Lua. Layout
scripts now have access to the layout file and can directly set the
state of an item with no bindings, or register callbacks to obtain
state. Some things that were previously methods are now read-only
properties.
Layout files are no longer required to supply a "name". This was
problematic because the same layout file could be loaded for multiple
instances of the same device, and each instance of the layout file
should use the correct inputs (and in the future outputs) for the device
instance it's associated with.
This should also fix video output with MSVC builds by avoiding delegates
that return things that don't fit in a register.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* dac/volt_reg: improve performance
* modify dac to accept streams of any input rate to avoid resampling
* modify dac to assume input voltage streams are constant by only
grabbing the first input sample
* modify volt_reg to output at the minimum sample rate
* dac: Restructure the DAC sound devices a bit
* centralize implementation based on lookup tables
* add set_constant_vref() method for the common case where references
are constant, thus avoiding the need for voltage regulator devices
* convert williams.cpp to using this new method as a test
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
stream_sample_t removed. (#7297)
* a2mcms/coco_ssc/gus/cassette/floppy/8364_paula/laserdsc/s2636/spg2xx_audio/arcadia/channelf/cmi01a/cps3/dai_snd: Update to new stream callbacks
* dsbz80/elan_eu3a05/exidy/exidy440/flower/geebee/gomoku/gridlee: Update to new stream callbacks
* hyprolyb/lynx/micro3d/phoenix/pleiads/polepos: Update to new sound stream callback
* redbaron/segag80r/segausb/seibu/snk6502/socrates/special/svis_snd: Update to new stream callbacks.
* tiamc1/turrett/tvc/tx1/vboy/vc4000: Update to new stream callbacks
* warpwarp/wiping/wswan/xavix/esq1/istrebiteli/milton6805/pv1000/mega32x/gic: Update to new stream callback
* sound: Remove legacy stream support and stream_sample_t
* * gomoku/wiping: Remove silly mixer tables in favor of math
* micro3d: Remove tiny vectors in favor of fixed arrays
* phoenix: Went back to std::unique_ptr array for LFSR
* wiping: Fixed the scale factor.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
* Reuse resamplers if routing the same output to multiple targets at the same rate
* Avoid copying when there's only one stream going through a mixer
|
| |
|
|
| |
This reverts commit dc0ede3c90717ed25de0695c555b861f06344f18.
|
| |
|
|
|
|
|
|
|
|
| |
* read/write_stream_views now have an internal index
* get/put/add/fill/copy now implicitly use and advance this index
* new method reset() can (re)set the internal index
* new method done() checks if index is past the end
* new method remaining() indicates how many samples remain
* get_indexed/put_indexed/etc available for random access
* updated all consumers to new interfaces
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Significant internal changes to sound streams:
Abstracted buffers of sound data into an internal stream_buffer class, with helper classes read_stream_view and write_stream_view which offer readable/writable "views" into the buffers
Internal sound calculations are all done using stream_buffer::sample_t, which is a 32-bit float; existing callbacks are supported through an adapter that converts to/from signed 32-bit integers
Improved behavior of dynamic stream sample rate changes to resample a short runway of data to preserve continuity across transitions
Created a new stream update callback which passes a std::vector of read_stream_views for inputs, and a std::vector of write_stream_views for outputs
Updated core mixer and speaker devices to the new stream update callback
Updated the following sound cores to the new stream update callback: ay8910, dac, k054539, msm5205, namco, netlist, okim6295, pokey, samples, sn76496, sp0250, tms5220, tms57002, upd7759, vgm_visualizer, volt_reg
Changed existing stream update callback to make inputs explicitly const and the output pointers const as well, since they are re-used across calls; fixed several engines that violated this rule
Sound_manager::stream_alloc can no longer automatically connect to a device's sound_stream_update callback; instead, the stream_alloc() on the sound_device_interface should be called; updated many violators of this rule
Streams can be created with SAMPLE_RATE_OUTPUT_ADAPTIVE, which dynamically tracks the sample rate of its first downstream output, or with SAMPLE_RATE_INPUT_ADAPTIVE, which tracks the sample rate of its first input
Changed resampling to be a separate sound_stream that is invoked as needed, opening the path for selectable resampling implementations
Added a flags parameter to the new stream allocation method that allows you to specify a that input streams should not be resampled
Exposed stream_input and stream_output classes directly, simplifying access to user gains and stream names
Added a simple dynamic compressor to sound_manager to provide nicer results when overdriven sound happens; compression does not affect speaker_report results
Improved verbose speaker_report to print a graph of peaks over time
More aggressive debugging enabled for now even in release builds (should be disabled prior to next release) via SOUND_DEBUG define in sound.h; report any assertions for fixing
|
| | |
|
| |
|
|
| |
instead of memset (nw)
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
* luaengine: manager:machine():sound():samples()
* luaengine: fix natural_keyboard docs
* tiny cleanup as requested in #5348
* fix clang build
|
| |
|
|
|
|
|
|
|
|
| |
qix, quizpun2, stfight, tigeroad: Removed MACHINE_CONFIG. [Ryan Holtz]
-m68705, m68hc05: Removed MCFG. [Ryan Holtz]
-qix: First-pass cleanup. [Ryan Holtz]
-core: Fixed spelling of "nonexistent". [Ryan Holtz]
|
| |
|
|
| |
rate is zero. This fixes all reported bugs. (nw)
|
| |
|
|
|
|
|
| |
This is damn sensitive code, and generates differences all over the
place we don't really explain. The changes should be justified by
themselves and tested in collaboration with Tafoid to ensure the
differences are not a problem.
|
| |
|
|
| |
[smf]
|
| |
|
|
| |
this (nw)
|
| |
|
|
| |
a0137c10da45fe10e52f9debcf00b266f2234329 in a better place (nw, seems to fix assert error)
|
| |
|
|
|
|
|
| |
different devices at a different execution point), don't try to generate
a negative number of samples [O. Galibert]
Not sure why that never happened before. Oh well.
|
| |
|
|
|
|
|
|
|
|
| |
Revert "Removal of voltage_regulator_device (nw)"
This reverts commit 1af133752a05079060c462e372c369ad0b7296ee.
Revert "New way to provide DAC reference inputs (nw)"
This reverts commit 1c6a7ab40ccd23b753777204c7a289e830b2adcb.
|
| |
|
|
|
|
|
| |
- Introduce MCFG_SOUND_REFERENCE_INPUT to provide fixed inputs through the resampler, eliminating the need for the "voltage regulator" device
- Replace memset use in sound.cpp with std::fill
This was my third implementation of this concept. The previous two involved attaching sound streams to the dummy device (which required giving it device_sound_interface and other modifications).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Make device_creator a variable template and get rid of the ampersands
* Remove screen.h and speaker.h from emu.h and add where necessary
* Centralise instantiations of screen and speaker finder templates
* Add/standardise #include guards in many hearers
* Remove many redundant #includes
* Order #includesr to help catch headers that can't be #included alone
(nw) This changes #include order to be prefix, unit header if applicable
then other stuff roughly in order from most dependent to least dependent
library. This helps catch headers that don't #include things that they
use.
|
| |
|
|
|
|
|
| |
* move stuff to namespace util::xml
* scope down some enums
* split config load/save delegate types
* make config load take const so it can't mangle data
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* New abbreviated types are in osd and util namespaces, and also in global namespace for things that #include "emu.h"
* Get rid of import of cstdint types to global namespace (C99 does this anyway)
* Remove the cstdint types from everything in emu
* Get rid of U64/S64 macros
* Fix a bug in dps16 caused by incorrect use of macro
* Fix debugcon not checking for "do " prefix case-insensitively
* Fix a lot of messed up tabulation
* More constexpr
* Fix up many __names
|
| |
|
|
| |
It's still a bit quirky but it's far better encapsulated before, and it plays nice with const (nw)
|
| | |
|
| |
|
|
| |
(nw)
|
| | |
|
| |
|
|
|
| |
Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8
also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
|
| |
|
|
| |
memset for clearing vector (nw)
|
| |
|
|
| |
to inline functions (nw)
|
| | |
|
| |
|
|
|
|
| |
- Boolean parameter to running_machine::run is no longer firstrun (which is now a member variable of mame_machine_manager) but quiet, which disables logging and audio recording without explicitly checking the system name.
- Sound recording is now turned on and off by explicit calls. The potential uses of this have not been explored.
- Dependencies reduced on drivenum.h, where the declaration for GAME_NAME(___empty) has been moved to.
|
| | |
|
| |
|
|
|
|
| |
Replace the old device_iterator and its specialized versions with functionally equivalent classes that use standard operators to yield references to devices/interfaces rather than pointers. With range-based for loops, they no longer have to be stored in named variables, though they can also be reused concurrently since the iteration state is now maintained by a subclass.
Add a few more typical getters to device_t::subdevice_list.
|
| | |
|