Commit Graph

78383 Commits

Author SHA1 Message Date
feos
4e337734f7 Fix vs2019_clang build 2021-04-05 13:00:48 +10:00
Aaron Giles
c462e67488 ymadpcm: Initialize ADPCM-A pans and instrument volume. Fixes some homebrew neogeo sounds. 2021-04-04 17:09:48 -07:00
Aaron Giles
17e0ffb32b ymfm: Don't pre-mask status bits with the status mask; apply instead at time of consumption. Fixes missing music in kickball. 2021-04-04 15:08:37 -07:00
Aaron Giles
47e9aa7d6b ymf278b: Fix ID register implementation; fixes several metro games that were hanging. 2021-04-04 13:28:06 -07:00
hap
17c64fa372 spkrdev: fix regression with filtering 2021-04-04 21:38:38 +02:00
AJR
5a63d0e738 megasys1.cpp: Reset the sound devices when the sound CPU is reset. This fixes the stuck note in soldam's attract mode. 2021-04-04 11:52:09 -04:00
cracyc
6ac210c6be plugins/cheat: fix getting arbitrary screen 2021-04-04 09:58:51 -05:00
hap
e1ba0999e9 spkrdev: not authored by nicola, introduced in MESS 0.36r1 2021-04-04 16:28:46 +02:00
Vas Crabb
8ec30280b0 bus/a2bus: Fix Buffered Grappler+ ROM digests, use silkscreend mask IDs for labels, edit notes. 2021-04-05 00:19:05 +10:00
Jos van Mourik
26c592f6a3
Update Dutch strings.po (#7924)
Added all missing strings for the Dutch language. Also made spelling and meanings more consistent after testing the menu's with previous translations.
2021-04-04 16:18:20 +02:00
Brian Troha
29dcb2f273 itech8.cpp: Correct some ROM labels.
Document Dyno Bop's program ROM label known to read v1.0 but it's still the v1.1 as per service mode.
2021-04-04 01:34:38 -05:00
etabeta
586238dbf7 options: simplified the statename/snapname logic for naming after image devices (e.g. %d_cart or %d_flop1) while allowing for more general non-alphanumeric separators, so that for instance %d_cart_%i correctly produces a name with the software name, followed by an underscore and an index, rather than failing to be recognized and defaulting back to %g/%i. 2021-04-04 07:15:44 +02:00
arbee
029f7fdf87 a2mockingboard.cpp: Fix 2 more off-by-ones in the Phasor address decoding [TomCh] 2021-04-03 21:56:04 -04:00
cracyc
9c14a66139 plugins/data: properly clear history data when loading new file 2021-04-03 20:13:56 -05:00
Vas Crabb
82222e9b73 bus/a2bus: Fix clang build (no idea how GCC didn't fail to compile that). 2021-04-04 05:20:04 +10:00
Vas Crabb
d4cc6959af bus/a2bus: Made Buffered Grappler+ DRAM size configurable, fixed a bad
bit in the MCU ROM dump, and marked the MCU ROM as bad.
2021-04-04 05:10:59 +10:00
Robbbert
0a424a3ac3 shtngmst: Dumping Union has confirmed that the other missing PLDs are not PLDs. 2021-04-04 04:03:56 +10:00
Robbbert
ad5436f56f shtngmst: Added a prom [Dumping Union] 2021-04-04 03:50:19 +10:00
Vas Crabb
49006281c1 bus/a2bus: Also synchronise data and asserting strobe for Apple II Parallel Interface Card. 2021-04-04 03:25:53 +10:00
Robbbert
c6c0f2f3ec trs80m3: model 4 can boot some floppies 2021-04-04 03:00:56 +10:00
Vas Crabb
0a687da2ae bus/a2bus updates: [Vas Crabb, Golden Child]
* Added Orange Micro Buffered Grappler+ printer interface card.
* Synchronise all I/O for Apple Parallel Interface Card.
2021-04-04 01:18:11 +11:00
Fergus Leen
d7199ad66f
Added floppy sounds (#7912) 2021-04-03 07:59:28 -04:00
r09
db89743e8b
fmtowns: fix off-by-1 calculation in CDDA length (#7921) 2021-04-03 07:58:58 -04:00
arbee
195d45d335 a2mockingboard.cpp: fix two off-by-ones on the Phasor address decoding [TomCh] 2021-04-03 07:38:33 -04:00
Aaron Giles
46d17663b3 ymfm: Fix OPL3 output channels and waveform mask in compatibility mode. 2021-04-02 21:06:59 -07:00
Aaron Giles
ee1e4f9683 More friendly behavior when OPLL writes are performed out of range. 2021-04-02 15:04:39 -07:00
Aaron Giles
52f0acb25c
New BSD-licensed OPL/OPLL (YM3526, YM3812, YM2413, Y8950, YMF262, etc) cores (#7869)
* OPL prep. Define FAMILY constant in register classes, and use that instead of template specialization for family-specific behaviors. Expand channel masks to 32 bits. Add is_keyon() helper.

* Made FM channel and operator mapping more flexible. Operators are now owned by the engine and can be dynamically assigned to channels. Register classes now provide a mapping between a linear set of operators and channels. The register data array is now a regular array instead of a vector.

* Minor change for consistency.

* Introduce OPL registers and create a ymopl_engine. Add support for sustain-less notes and the OPL envelope clocks (which does not divide by 3).

* Moved keycode calculations into register class. Removed unnecessary recalc in phase generator. Lined up OPL frequency, feedback, algorithm, and total level.

* Implement key scale level and OPL-specific LFO and phase handling.

* Create new YM3526 device based on new OPL. Fix keyon and sustain behaviors.

* Fix weird OPL multiple values. Clean up and further document OPL LFO.

* No busy flag on OPL, so no need to do the work. Add a right shift of 1 to the output stage to line up volume with old implementation.

* More compact way of representing key scale level values.

* Move the KSL bitswap into the registers since it's apparently fixed in OPLL and perhaps others.

* Add support for ryhthm generation in OPL. Change compute_volume to take a phase value directly, and expose operator phase.

* Fix OPL timers.

* Start LFSR with a non-zero value to ensure it actually starts generating for OPL.

* Fix silly bug in sustain logic for OPL. Fixes a lot of previously missing sounds.

* Create OPL2 engine. Add waveform support for OPL2/3 waveforms.

* Wire up YM3812 to the new OPL2 engine.

* Reset OPL timers when the mask is written as well.

* Manage rhythm key ons separately. Fixes Wardner awfulness.

* Explicitly make channel logic handle 0, 2, or 4 operators rather than checking each one for null. Also simplify the combining logic for the 2 operator case.

* Reverse bit order of LFSRs to make things a little simpler. Fix OPL LFSR so that it has its full 23-bit period.

* Change outputs along the path to arrays rather than stereo items. This allows for four channel output. Also add a constant for the number of outputs to the register class.

* Move status register bit definitions to the registers class. Generically support the IRQ bit.

* Create shared helpers for FP encode/decode/roundtrip and use them throughout. Also update TMNT to use the FP decoder.

* No need to clamp when using the roundtrip.

* Clear the EOS flag when execute is turned off on ADPCM-B. Fix combine_status in YM2608 to ignore previously set flags.

* Add missing note_select in base class. Don't add 1 to the OPL release rate.

* Move Y8950 over to new OPL engine.

* Remove old y8950, along with fmopl and ymdeltat

* Add updates prior to status reads for ADPCM systems.

* Add status_mask and irq_reset logic into the core. Clean up documentation on family-specific registers. Includes some temporary gross debugging stuff.

* Made debugging less gross by giving operators and channels a reference back to their owner.

* Fix status port address in OPL chips. Reduce ADPCM volume to match previous implementation.

* Fix Y8950 ADPCM start. Return masked status properly.

* Initial cut at OPLL mapping.

* Add YM2413 support based on ymfm; renamed vrc7snd to ds1001; added YM2423 amd YMF281 variants as well. Instrument data is now loaded via external ROMs. Added 'depress' envelope support to the core engine. Fixed a number of issues in the ymopll_engine. Documented hard-coded values. Moved register clear into register-specific reset.

* Add missing identifier.

* Y8950 is OPL not OPL2.

* Some documentation cleanup. Consistency fixes in the register classes.

* Consolidate large comments. Add support for delayed modulators for OPL. Broke out 2-op and 4-op cases to help simplify logic. Fixed overflow handling in fp encoding.

* Fix silly bug.

* Changed operator assignment mechanism to be more readable. Added prepare method to be called at the start of sound update. Added ALL_CHANNELS constant to register files. Updated all consumers to call prepare and use constants where applicable.

* Move YMF262 and YMF278B to use new FM engine for OPL3/4. Fix several issues in OPL3 logic, which now seems to work ok.

* Minor fixes. More documentation.

* Fix MSVC build.

* Add caching of data to prepare methods to improve performance. Moved non-register decoding logic out of the .h file and into .cpp file. Move phase_step calculation into register class.

* More notes. Removed keycode from cache. Split 2/4-operator outputs into separate functions. Changed OPN/OPL to use templates for variants. Added channel/operator_offset helpers.

* Fairly substantial overhaul of register interface. Register interface is now stateless and contains family-specific state. Channel and operator accessors are prefixed by ch_/op_ now and require an offset to the specific channel or operator. Moved LFO/noise generation into register class, along with keyon logging.

* Add noise back to OPL/OPLL

* Added early-out for low envelope. Moved waveform logic out into family-specific code. General clean up of ordering. Reduced family base class to minimal needed.

* More aggressively track active channels to help performance.

* Use only summing outputs for consideration of active channels. Centralize the logic of determined 4-op vs 2-op.

* More conservative channel deactivation.

* Add helper to compute the sample rate and use it in all implementations. Remove unneeded chnum/opnum members.

* Fix error in YM2612 that caused crashes.

* Switching parameters and locals to 32-bit values gives a noticeable performance boost. Checkpoint 1.

* More moving to 32-bit values. Checkpoint 2.

* Last of the 32-bit promotions.

* Ensure SSG inverted flag is only tested on systems with SSG support in the innermost loops.

* Make most constants 32-bit as well. Expose some constants via the engine class.

* Expand waveforms ahead of time. Optimize the attenuation lookup a bit.

* If volume is low, don't erase output, just leave it alone. Fixes missing sound in raimais.

* Replace a couple of magic numbers with constants.

* Normalization of FM engine usage across consumers.

* Removed explicit external prepare() call; this logic is now automatically done after writes and periodically. Changed OPL/OPLL to use native formats for block/fnum. Fixed waveform generation. Fixed PM and AM depth on OPL/OPLL.

* Cache multiple value. Clean up output handling a bit.

* Move multiple caching ahead of phase step caching.

* Fully split OPLL from OPL. Remove many hacks now that OPLL registers can have state. Created shared helpers between OPL/OPLL. Removed more aggressive channel disables since it was not rhythm friendly and didn't really buy much.

* Remove old comment

* Remove bad write in OPL mode case. Fixes fsoccer intro. Only call set_reset_status() once per mode call.

* Remove FM output boost in YM2608/2610. Not sure why I did that. Better matches previous volume now.

* Make AM/PM logging less confusing.

* Let's actually set DYNAMIC_OPS properly, eh?

* Improved logging.

* Comment cleanups. Add constant for dynamic phase. Pre-shift sustain level. Srcclean.

* Fix memory regions on YM2608 games.

* Clean up ymadpcm to line up with recent ymfm changes.

* y8950: Reshuffle read/write handlers. Rename them to less confusing names.

* ym2413: Reshuffle read/write handlers. Rename them to less confusing names.

* ym3526/ym3812: Reshuffle read/write handlers. Rename them to less confusing names.

* ymf262: Match read/write details to datasheet and previous tests.

* Use a constexpr function instead of macro for packing operator numbers. Pre-compute OPM LFO waveforms.

* Generate OPL4 engine to support the proper clock divider and new flags. Update YMF278B to use FM timers and status rather than replicating the logic.

* Fix 4-operator enable on new OPL4 instance.

* Fix FM downsampling and adjust balance in YM278B.
2021-04-02 19:58:04 +02:00
hap
1cc65ff1c9 rf5c68: update stream before writing to wave ram 2021-04-02 17:03:54 +02:00
Ivan Vangelista
7065e73b8d New clones marked as NOT_WORKING
--------------------------------
Sonic Blast Man 2 Special Turbo (SNES bootleg, set 2) [ShouTime]
2021-04-02 14:36:35 +02:00
Patrick Mackinlay
33ac8ffd54 r4000: simplify branch state 2021-04-02 13:53:28 +07:00
Robbbert
41a0233715 meritum: upgraded quickload to latest; added speaker. 2021-04-02 17:17:31 +11:00
Robbbert
3a0e9abc43 trs80: validate the cas file 2021-04-02 16:25:34 +11:00
arbee
68b16c6f51 a2mockingboard.cpp: Updates [R. Belmont, TomCh]
- Mirror the VIAs correctly across the whole CnXX range
- Actually write the inflection bits for the SC-01
2021-04-01 22:16:08 -04:00
hap
289efafb39 multipcm: retrigger after writing to sample register if key is on (YMF278 also does this) [dink, hap] 2021-04-01 22:23:29 +02:00
hap
0d897d07e6 namcos2/c355 sprites: color 0xfe is for a palette offset instead of shadow [dink, hap] 2021-04-01 21:01:36 +02:00
hap
91fdb8adca battlane: fix a problem with double height sprites at last boss [dink] 2021-04-01 17:11:37 +02:00
Robbbert
900f39f55a gameboy: Fixed crash with momocol2 and varpack 2021-04-02 01:08:04 +11:00
etabeta
8e72b65075 plugins/cheat: removed spurious print 2021-04-01 15:56:38 +02:00
Priuli
bcfd7c64b0 plugins/cheat: fix XML cheat loading when emulation is launched with an image option specified (e.g. mame nes -cart smb) or by loading directly one part of the software (e.g. mame a600 amigaocs_flop:lslarry2:flop1) 2021-04-01 15:33:39 +02:00
Robbbert
1bc0dcbf46 Added some swlist warnings for Tafoid's tests. 2021-04-02 00:19:11 +11:00
987123879113
3e33bd1bcb
Changed audio_latency valid range from 1-5 to 0-5 (#7916) 2021-04-01 23:12:10 +11:00
Dirk Best
499ddb2af8
Use llvm-ar for GitHub Actions Windows CI build (#7917) 2021-04-01 23:10:50 +11:00
Patrick Mackinlay
1dbaaae999 r4000: physical address space is 36 bits 2021-04-01 18:06:31 +07:00
Robbbert
b44de86569 Moved lnw80 to its own driver. 2021-04-01 20:34:23 +11:00
Patrick Mackinlay
efa3521d7a r4000: timing improvements
* external clock is doubled internally
* consume additional cycles for integer multiply/divide
* streamline memory access
2021-04-01 11:06:14 +07:00
cracyc
ee62f40e1b vis: partially try to fix MT7912 2021-03-31 21:32:53 -05:00
arbee
065809bae7 apple2e: turn off INTCXROM on Control-Reset (GitHub issue #7909) [R. Belmont] 2021-03-31 21:07:12 -04:00
Aaron Giles
e16d3e98d9 Disable sleep when using -bench. 2021-03-31 17:08:28 -07:00
AJR
9f1e99117a asma2k: Correct size of undumped spellcheck ROM; add PCB notes [AJR, Lord Nightmare] 2021-03-31 20:01:00 -04:00
AJR
ac78893d76 mac128.cpp: Remove bogus SCSI XTAL
* mac.cpp: Remove now-unnecessary #include
2021-03-31 17:31:03 -04:00