summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound (follow)
Commit message (Collapse)AuthorAgeFilesLines
* es5503: fixed bad playback of synthLAB sampled-attack looped-sustain ↵ arbee2018-07-041-2/+1
| | | | instruments [R. Belmont]
* ym3812: Synchronize IRQ outputs to prevent lossage (nw) AJR2018-06-302-7/+19
|
* Allow passing std::unique_ptr<TYPE> directly to save_pointer and remove ↵ AJR2018-06-247-9/+9
| | | | now-superfluous .get() in many drivers/devices (nw)
* clean up some excessively long comment lines, and made the capitalization of ↵ Lord-Nightmare2018-06-181-18/+46
| | | | 'FIFO' in comments and log messages more consistent (nw)
* TMS5220 changes, bugfixes and updates (#3654) Jonathan Gevaryahu2018-06-172-262/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 5220 changes part 1: comments * 5220 changes part 2: renaming improperly capitalized pseudo-macros, and remove pseudo-macros from lvalues * 5220 part 3: reorganize savestate values into a sane, maintainable order * 5220 changes part 4: remove the unused, deprecated time_to_ready and cycles_to_ready functions * 5220 changes part 5: fix the race condition bug with m_buffer_low and m_buffer_empty flags not being updated before setting the interrupt state * 5220 changes part 6: fix the issue where if no VSM is actually attached to the 5220, the chip will get stuck speaking silence forever if it gets a Speak VSM command. In reality (at least on the tms51xx and probably the same here) the pin reads as open bus/noise, but will eventually hit a stop frame by reading 4 ones in a row. * (missed lines from parts 1 and 2) * 5220 changes part 7: add/fix debugger fences for read functions where they were missing, and a write function where it was unnecessary and caused issues when issuing manual writes from the debugger * 5220 changes part 8: change the types of the flag variables already used for boolean values to bool, and simplified comparisons with them; also renamed the ambiguous m_data_register variable to the more descriptive name of m_read_byte_register * (more missed lines from parts 1 and 2) * 5220 changes part 9: change status_read such that reading the status register from the debugger returns a valid value instead of 0, but doesn't otherwise affect the emulation * 5220 changes 10: make it so the /READY(readyq) callback only changes state to ready after a write during speak external mode, if the write actually completed because there was room in the FIFO. If not, it polls the fifo state every 16 cycles until there is room, and only then asserts the readyq callback. * 5220 changes part 11: actually zero the fifo during initialization and when speak external goes active. replace memset calls with std::fill * commit two forgotten lines
* more macro removal and overload disambiguation (nw) Vas Crabb2018-06-172-15/+10
|
* Remove emupal.h from emu.h (nw) AJR2018-06-131-0/+1
|
* ad1848, cem3394: More descriptive device names (nw) AJR2018-06-122-3/+3
|
* tms5220: Convert logging calls to logmacro.h standard (nw) AJR2018-06-122-333/+268
| | | | This also reinstates the command logging improvements from 62fc2e8f068a67b84b324b1c2e9b55791850247e.
* Revert "tms5220: fix the READYQ callback to poll the fifo state with a timer ↵ Vas Crabb2018-06-122-288/+275
| | | | | | | | loop instead of always asserting the /ready via callback even if there is no more room in the FIFO, to match hardware. Fix the speak vsm mode to assume that the ADDR/DATA pin floats high if no VSM is attached, so that the speech chip doesn't get permanently stuck speaking silence if a spurious SPEAK VSM command is sent to it. Fix some race conditions with the INTQ callback and status flags not being updated before the callback is called. General cleanup and bool-ification of boolean variables. [Lord Nightmare]" This reverts commit 62fc2e8f068a67b84b324b1c2e9b55791850247e. See coments on https://github.com/mamedev/mame/commit/62fc2e8f068a67b84b324b1c2e9b55791850247e
* tms5220: fix the READYQ callback to poll the fifo state with a timer loop ↵ Lord-Nightmare2018-06-122-275/+288
| | | | instead of always asserting the /ready via callback even if there is no more room in the FIFO, to match hardware. Fix the speak vsm mode to assume that the ADDR/DATA pin floats high if no VSM is attached, so that the speech chip doesn't get permanently stuck speaking silence if a spurious SPEAK VSM command is sent to it. Fix some race conditions with the INTQ callback and status flags not being updated before the callback is called. General cleanup and bool-ification of boolean variables. [Lord Nightmare]
* Removed nearly all custom MCFG macros from eepromser, migrated more of ↵ mooglyguy2018-06-071-4/+0
| | | | policetr to newer syntax, nw
* as if millions of this pointers suddenly cried out in terror, and were ↵ Vas Crabb2018-06-0821-135/+49
| | | | | | | suddenly silenced * streamline templates in addrmap.h * get rid of overloads on read/write member names - this will become even more important in the near future
* Fix the buggychl mcu to run at 3mhz as shown on the schematic, and add sound ↵ Lord-Nightmare2018-05-291-1/+1
| | | | address map and other comments. [Lord Nightmare]
* ad1848.cpp: Room for improvement (nw) AJR2018-05-281-0/+2
|
* wpc_shift, wpc_lamp, wpc_out, wpc_pic, wpc_dmd, ygv608, timekpr, at28c16, ↵ Ryan Holtz2018-05-282-15/+7
| | | | c352: Eliminated customized MCFG_DEVICE_ADD macros. (nw)
* ad1848: oops (nw) cracyc2018-05-271-2/+2
|
* srcclean (nw) Vas Crabb2018-05-271-1/+1
|
* remove many mainly PCI-related MCFG macros in favour of constructor Vas Crabb2018-05-254-32/+27
| | | | | | | | | | | | overloads, remove some absolute device lookups, remove some absolute device tags, and generally clean up stuff fix incorrect device class for PCI APIC (nw) xbox machine config looks ugly now - the devices should expose proper constructor overloads that accept the parts of the PCI ID that are in system PROM or customisable by the OEM and hard-code the parts inherent to the device
* pc9801.cpp: fix sound ROM mapping, fixed sound board initialize for Eikan wa ↵ angelosa2018-05-241-0/+2
| | | | Kimi ni 2 [Angelo Salese]
* rf5c68.cpp : Sync to current commit cam9002018-05-112-11/+11
|
* rf5c68.cpp Updates, etc (#3515) cam9002018-05-112-20/+53
| | | | | | | | | | | | | | | * rf5c68.cpp : Add save states, Add device_rom_interface, because Datasheet says it's can connect with ROM, Add notes fmtowns.cpp, segas18.cpp, segas32.cpp, system16.cpp : Reduce runtime tag lookups megacd.cpp, system16.cpp, segas32.cpp : Fix bit manipulations fmtowns.cpp, system16.cpp : Reduce duplicates * segas18.cpp : Add output finders * rf5c68.cpp : Add rom_bank_updated * rf5c68.cpp : Add device_memory_interface instead device_rom_interface * segas18.cpp : Fix regression
* xtheball: DAC type identification (nw) AJR2018-05-091-0/+1
|
* (nw) remove more low-value macros and add a couple more constructor options Vas Crabb2018-05-102-17/+11
|
* astrocde.cpp: Driver and device modernization (nw) AJR2018-05-092-33/+150
| | | | | | | - Rename sound device, document pinout and add input and output callbacks - Add addressable and non-addressable output latch devices - Add watchdog timers for most games - Use memory maps instead of hacking in handlers in DRIVER_INIT
* dsp16: fix condition mask in disassembler (nw) Vas Crabb2018-05-093-3/+6
| | | | (nw) remove more MCFG macros and make speaker config more explicit
* Revert "ics2115.cpp Updates (#3497)" Vas Crabb2018-05-082-174/+55
| | | | This reverts commit 6d87b49e6b4c52cb337759e3ee8c532b98178417.
* ics2115.cpp Updates (#3497) cam9002018-05-082-55/+174
| | | | | | | | | | | * ics2115.cpp : Implement variable sample rate related actived voice/input clock(Datasheet says default clock is 33.8688MHz), Implement/Fix Interpolate of u-Law/8bit sample, Add device_rom_interface, Add IO Handler when 16 bit accessing, Add notes, Add imperfect_features() because Envelope/IRQ/Interpolation isn't perfectly emulated igs_fear.cpp : Add notes igs011.cpp : Move 16 bit ICS2115 Handler into ics2115.cpp pgm.cpp : Move CPU_VBLANK_INT_DRIVER into screen VBLANK callback * ics2115.cpp : Add notes of unimplemented registers * ics2115.cpp : Fix logerror
* Add support for custom device constructors when replacing devices. Vas Crabb2018-05-084-30/+17
| | | | | | | | | | Current syntax: MCFG_DEVICE_REPLACE(tag_or_finder, TYPE, ...) Next-generation syntax: TYPE(config.replace(), tag_or_finder, ...) (nw) Kill off some more low-value macros that aren't needed any more, and get rid of the token-pasting voodoo and casts in the discrete sound macros.
* (nw) checkpoint since Midway SSIO sound is fixed - periodic interrupt ↵ Vas Crabb2018-05-077-49/+24
| | | | doesn't support derived clock, kill off some more low-value macros, add a validity check, fix changes to Okim M6295 pin 7 in vgmplay
* (nw) misc follow-up Vas Crabb2018-05-069-212/+65
| | | | | | | | | | | | Fix MT06964 Fix µPD7759 class hierarchy, and reset callback before resolving it (fixed assert in Sega C2) Remove some more low-value device add indirection macros, default some more clocks Make cards inherit clock from slot by default
* Streamline machine configuration macros - everyone's a device edition. Vas Crabb2018-05-0621-63/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Start replacing special device macros with additional constructors, starting with ISA, INTELLEC 4 and RS-232 buses. Allow an object finder to take on the target of another object finder. (For a combination of the previous two things in action, see either the INTELLEC 4 driver, or the Apple 2 PC Exporter card. Also check out looping over a device finder array to instantiate devices in some places. Lots of things no longer need to pass tags around.) Start supplying default clocks for things that have a standard clock or have all clocks internal. Eliminate the separate DEV versions of the DEVCB_ macros. Previously, the plain versions were a shortcut for DEVICE_SELF as the target. You can now supply a string tag (relative to current device being configured), an object finder (takes on the base and relative tag), or a reference to a device/interface (only do this if you know the device won't be replaced out from under it, but that's a safe assumption for your subdevices). In almost all cases, you can get the effect you want by supplying *this as the target. Eliminate sound and CPU versions of macros. They serve no useful purpose, provide no extra checks, make error messages longer, add indirection, and mislead newbies into thinking there's a difference. Remove a lot of now-unnecessary ":" prefixes binding things relative to machine root. Clean up some miscellaneous rot. Examples of new functionality in use in (some more subtle than others): * src/mame/drivers/intellec4.cpp * src/mame/drivers/tranz330.cpp * src/mame/drivers/osboren1.cpp * src/mame/drivers/zorba.cpp * src/mame/devices/smioc.cpp * src/devices/bus/a2bus/pc_xporter.cpp * src/devices/bus/isa/isa.h * src/devices/bus/isa/isa.h * src/devices/bus/intellec4/intellec4.h
* (nw) let's have some fun with the new functionality, and fix poor casper ↵ Vas Crabb2018-05-042-14/+4
| | | | while we're at it
* Make MCFG_DEVICE_ADD and callable device types more flexible: Vas Crabb2018-05-042-2/+3
| | | | | | | | | | | | | | | | | | | | | * Allows defaulted clocks (see subtle example with vboy) * Allows additional constructors (see RS232 port in tranz330) * Allows use of device finder in place of tag in MCFG_DEVICE_ADD * Requires out-of-line destructor for devices using incomplete types * Requires XTAL or explicit u32 for clocks for devices with private types Devices must still define the standard constructor. When writing additional constructors, be aware that the constructor runs before device_add_mconfig in the context of the existing device, not the new device. See osborne1, zorba, tranz330, and vboy for examples of this in use. Compilation is a bit slower, but this is temporary while refactoring is in progress. Eliminated the need for MCFG_SOUND_ROUTE_EX. Removed macros from slot option configuration - they just obfuscated code and slowed it down with needless dynamic casts, but didn't actually simplify it.
* namco, polepos: Clean up some line write handlers (nw) AJR2018-05-012-23/+14
|
* Set finder tag relative to current device being configured rather than Vas Crabb2018-04-304-4/+4
| | | | | | | | | | | | | | the finder's owner. This meand you no longer need to care about the your relationship to the object being configured and a lot of ^ and : can disappear. There's a bit reduction in string pasting in macros from this. Yes, I have to make this apply to devcb etc. as well, but that's a job for another day. There's probably at least one thing broken by this where optional objects are involved. Most things can be solved by just getting rid of the now-problematic ^ and : prefixes.
* c6280.cpp : Fix LFO cam9002018-04-281-1/+1
| | | <<1 is same at patent, not +1 (reference:https://patents.google.com/patent/US4924744A/)
* Sarayan made me do it. Vas Crabb2018-04-283-8/+5
| | | | | | | | | | Concrete device types now have a call operator that instantiates a device. This change means you *must* use DECLARE_DEVICE_TYPE to declare the public interface of your device, even if it's device_t. If you want to use private implementation classes, use DEFINE_DEVICE_TYPE_PRIVATE and instantiate the object finders.
* c6280.cpp : Add LFO, Add notes (#3380) cam9002018-04-261-12/+42
| | | | | | * c6280.cpp : Add LFO, Add notes * c6280.cpp : Fix channel check when lfo is enable
* aica.cpp : Correct register name from development manual, Add docs of ↵ cam9002018-04-272-1/+15
| | | | unimplemented registers; Add imperfect_features because Emulation isn't perfect (DSP, etc..)
* maps: Finish devices/sound (nw) Olivier Galibert2018-04-208-39/+53
|
* maps: Finish map.m() (nw) Olivier Galibert2018-04-192-12/+16
|
* remove safe_pc() and safe_pcbase() (nw) smf-2018-04-131-10/+10
|
* multipcm notes (nw) Lord-Nightmare2018-04-081-1/+2
|
* Revert " AICA Cleanups & Internalize CPU Core (#3423)" R. Belmont2018-04-073-383/+234
| | | | This reverts commit 36eb386c1914bf7bc52a85142d42c38dcf3c0b67.
* AICA Cleanups & Internalize CPU Core (#3423) cam9002018-04-073-234/+383
| | | | | | | | | | | | | | | | | | | | | | * AICA Cleanups & Internalize CPU Core aica.cpp : Minor cleanups, Internalize ARM7DI core, Add device_clock_changed, Add notes, Sample/Timer rate related input clock, Implement some registers, Fix suffixes for hexadecimal values, Add imperfect_features Because emulation aren't completed, Fix suffixes for hexadecimal values aicadsp.cpp : Fix suffixes for hexadecimal values dccons.cpp : Add stereo(Both chip and output supports stereo), Minor cleanups dc.cpp : Minor cleanups hikaru.cpp : Add docs for aica ram size naomi.cpp : Add docs for regional title difference, Fix suffixes for hexadecimal values * aica.cpp, dccons.cpp : Add notes * aica.cpp : Revert "Simpler ADPCM decoding", Fix AICA clock when adding naomi.cpp : Add notes, Fix build segasp.cpp : Minor cleanups * aica.cpp : Remove unused macro * aica.cpp : Fix unnecessary thing, Fix spellings * aica.cpp : Fix timer period
* Reshuffle some stuff: Vas Crabb2018-03-282-10/+7
| | | | | | * Move around the debugger hooks to get a small but measurable performance increase * Remove emucore from external tools * Improve performance of DSP16 interpreter a little by generating six variants of execution loop
* srcclean and regenerate localisations (nw) Vas Crabb2018-03-254-6/+6
|
* vgmplay: Disable POKEY and QSound devices if not required AJR2018-03-221-7/+8
|
* qsound: update command listing (nw) Vas Crabb2018-03-201-9/+18
|