| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
values. Fix up ymfm-related saving. Modernize AY8910 saving.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
* rs232: added device for synchronous I/O
* hp9845: implemented external clocking in hp98046 serial module
Co-authored-by: ajrhacker <ajrhacker@users.noreply.github.com>
|
| | |
|
| |
|
|
|
|
| |
What's missing:
- parameters (like the disk name when it exists)
- possibly a cleanup of ram_open and friends (but not sure of the appropriate direction in which to go)
|
| | |
|
| | |
|
| |
|
|
| |
supported formats, make floptool use it. Castool should use it too probably, but I don't want to touch it.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This reverts commit 6d6073054b9155592a6022d66751422ff3b3a372.
|
| | |
|
| |
|
|
|
| |
--------------------
Mark 1 FORTH Computer [AJR]
|
| |
|
| |
New BSD-licensed implementation of Yamaha OPN and OPM FM audio chips, along with new device drivers for YM2203, YM2608, YM2610, YM2610B, YM2612, YM3438, and YM2151 based upon these.
|
| |
|
|
|
|
| |
New machines marked as NOT_WORKING
----------------------------------
Electronic Master Mind (Invicta) [hap, Sean Riddle]
|
| | |
|
| |
|
|
|
|
| |
* Renamed sound/nile.cpp to sound/setapcm.cpp.
* Added preliminary support for 16-voice ST0032 variant.
* jclub2.cpp: Hooked up ST0032 sound.
* jclub2.cpp, srmp6.cpp: Derive sound clocks from crystal frequencies.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
New working machines
--------------------
Basketball (Mattel) [hap, Sean Riddle]
QuizKid Speller [hap, Sean Riddle]
New working clones
------------------
QuizKid Racer (MM5799 version) [hap, Sean Riddle]
|
| |
|
|
| |
references. (#7770)
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
If you want to build 64-bit and 32-bit in the same tree without them
stomping on each other, use SEPARATE_BIN=1 (you already need to do this
for TOOLS=1 anyway).
|
| |
|
|
|
|
|
| |
--------------------
Facit DTC (DeskTop Computer) [Luxor ABC arkivet, Curt Coder]
abc800: Added new revisions of ROMs, and skeletons for DataBoard 4106/4107. [Luxor ABC arkivet, Curt Coder]
|
| |
|
|
|
|
|
|
|
| |
* Separated Acorn IOC and MEMC into devices.
* Emulated 8051-based serial keyboard.
* acorn_machine/memc.cpp: Ensure only one logical page is mapped to a single physical page.
* Fixed RISC OS POST IOC register test.
* aa310.cpp: Added debug code to display RISC OS POST failures.
-machine/archimedes_keyb.cpp: Dumped Acorn Archimedes keyboard microcontroller. [Phil Pemberton]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Holtz]
- sa1110: Added rudimentary support for the ICP and DMA blocks. [Ryan Holtz]
- sa1111: Various changes. [Ryan Holtz]
* Hooked up I2S audio DMA support.
* Hooked up IRQ support.
* Hooked up basic GPIO support.
- uda1344: Added initial pass at audio support, based on DMADAC. [Ryan Holtz]
- sed1356: Added support for BitBLT solid-fill command. [Ryan Holtz]
- jornada: Added more keys, touch pen support, and fixed EEPROM access. [Ryan Holtz]
|
| | |
|
| |
|
|
|
| |
- render.h: Split out layout class declarations into rendlay.h, with some adjustments for the resulting incomplete types (std::reference_wrapper unfortunately does not allow these by C++17 rules)
- rendlay.h: Move old header contents to layout/generic.h
|
| |
|
|
|
|
|
| |
- vecstream.h: Revert changes made in aa29519528cb3dbdbfac56819bea670ed8c56c5d. The std::string_view conversion has been made a non-member function (util::buf_to_string_view) and moved to coretmpl.h.
- strformat.h: Remove the using declaration importing util::string_format into the global namespace. It has been moved to emucore.h and a few tool sources; other references have been qualified.
- osdcore.h: Split out file, directory and path classes and methods to a new header (osdfile.h), Doxygenizing the documentation comments.
- Disaggregate many #includes that were including other standard or custom headers. emu.h now includes basically the same things that it did, but other headers have been streamlined; for instance, emucore.h no longer stealth-includes osdcore.h several ways.
|
| | |
|
| |
|
|
|
|
| |
-uda1344: Added skeleton audio device for Philips UDA13444 Codec. [Ryan Holtz]
-sa1111: Hooked up basic L3 audio transceiver support. [Ryan Holtz]
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
------------------
Hewlett-Packard Jornada 720 [Ryan Holtz]
* arm7: Fixed interaction between instruction prefetching with the MMU enabled. [Ryan Holtz]
* sa111: Added skeleton device for Intel SA-1111 Microprocessor Companion Chip. [Ryan Holtz]
* sed1356: Added skeleton device for Epson/Seiko SED1356 video controller. [Ryan Holtz]
* sa1110: Various cleanups. Added rudimentary SSP module support. [Ryan Holtz]
|