Commit Graph

78373 Commits

Author SHA1 Message Date
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
cam900
764fee75bc
seibuspi.cpp: Fix document based from hardware manual (#7901)
* seibuspi.cpp: Fix document

in SXX2D, JP121 is for mono/stereo sound output select, there's no jumper for cartridge change/flashing.
reference: japanese SPI motherboard manual from http://ikotsu.blogspot.com/2010/01/raiden-fighter-jet-seibu-spi-jet.html

* seibuspi.cpp: Fix notes related to hardware
2021-03-31 15:19:55 -04:00
James Wallace
362375ad05 Games promoted to working
------------------------------
Give Us A Break Club (JPM) (IMPACT) (GB 8 GB12) (set 1)
Impulse (JPM) (IMPACT) (IP 5 C13) (set 1)

Clones promoted to working
----------------------------
Give Us A Break Club (JPM) (IMPACT) (GB 8 GB12P) (set 2, Protocol)
Impulse (JPM) (IMPACT) (IP 6 C14) (set 2)
Impulse (JPM) (IMPACT) (IP 6 AC14) (set 3)
Impulse (JPM) (IMPACT) (IP 7 C15) (set 4)
Impulse (JPM) (IMPACT) (IP 7 AC13) (set 5)
Impulse (JPM) (IMPACT) (IP 7P C15) (set 6)
Impulse (JPM) (IMPACT) (IP 7P C15) (set 7, Whitbread)
2021-03-31 19:58:51 +01:00
Robbbert
2aec0da4fc trs80m3: removed non-TRS80 formats. 2021-04-01 04:51:45 +11:00
Robbbert
1343e5e7d3 trs80: used the correct FDC. Removed non-TRS80 formats. 2021-04-01 04:43:38 +11:00
Ivan Vangelista
ad07c7d0c1 magreel.cpp: redumped ic24 [Team Europe] 2021-03-31 18:33:05 +02:00
Olivier Galibert
593ce66eb2 floppy: What wd177x_dsk has become should be taken out and shot 2021-03-31 17:23:45 +02:00
Olivier Galibert
69bde90a2f wd,upd: filter unsupported image formats 2021-03-31 16:49:29 +02:00
Olivier Galibert
75cfa07377 jv1-dsk: SSDD can not do 80 tracks 2021-03-31 16:28:17 +02:00
Olivier Galibert
905e758b93 imd: Don't crash when trying to put a 80-track image in a 40-track drive 2021-03-31 16:08:57 +02:00
Robbbert
198d896c12 trs80: updated notes. 2021-03-31 22:53:36 +11:00