summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/src
Commit message (Collapse)AuthorAgeFilesLines
* smartboard: add internal artwork for the pc version hap2021-04-191-0/+2
|
* smartboard: add support to connect it to pc printer port hap2021-04-192-2/+17
|
* thomson: Turn the extensions into slot devices, modernize the floppies Olivier Galibert2021-04-191-0/+22
|
* nscsi: Add dump and skeleton device for Sony CDU561-25 CD-ROM drive [Bitsavers] AJR2021-04-161-0/+2
|
* sound: Pulseaudio support Olivier Galibert2021-04-161-0/+29
|
* cdu415: Add skeleton Olivier Galibert2021-04-141-0/+2
|
* cdu75s: start the driver Olivier Galibert2021-04-081-0/+2
|
* h8: Add the h8/3032 Olivier Galibert2021-04-071-0/+2
|
* Add bus/adb for real ADB device emulation [O. Galibert, R. Belmont] arbee2021-04-061-0/+13
|
* bus/a2bus: Added Orange Micro Grappler printer interface card. Vas Crabb2021-04-071-2/+2
|
* New BSD-licensed OPL/OPLL (YM3526, YM3812, YM2413, Y8950, YMF262, etc) cores ↵ Aaron Giles2021-04-021-25/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#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.
* Restore legacy pc_dsk floppy support for imgtool only AJR2021-03-291-0/+2
|
* srcclean in preparation for release Vas Crabb2021-03-281-1/+1
|
* xt446: Use its real name Olivier Galibert2021-03-221-4/+4
|
* keyboardmania: Interface with the mu100 Olivier Galibert2021-03-211-0/+12
|
* pps41: add preliminary mm78la/mm77la hap2021-03-191-0/+4
|
* pmac6100: Move it to a new driver Olivier Galibert2021-03-121-0/+11
|
* pps41: added mm78 disasm and mm77/mm78 skeleton device hap2021-03-081-0/+4
|
* HP9845: added synchronous I/O for RS232 port and HP98046 module (#7695) fulivi2021-03-071-0/+2
| | | | | | | * rs232: added device for synchronous I/O * hp9845: implemented external clocking in hp98046 serial module Co-authored-by: ajrhacker <ajrhacker@users.noreply.github.com>
* Fix messed-up merge Olivier Galibert2021-03-051-2/+2
|
* floppy: Beginning of the support for preformatted floppy images. Olivier Galibert2021-03-051-2/+19
| | | | | | 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)
* pps41: add skeleton MM76-derived devices hap2021-03-041-0/+4
|
* formats: Fix missed RC759 format Dirk Best2021-03-041-2/+2
|
* formats: Create mame_formats_full_list which gives access to all the ↵ Olivier Galibert2021-03-042-478/+488
| | | | supported formats, make floptool use it. Castool should use it too probably, but I don't want to touch it.
* rc759: Add RTC and floppy, start cleanup Dirk Best2021-03-031-0/+12
|
* Fix dependencies Olivier Galibert2021-03-021-12/+2
|
* defaults: pc format is in, ipf is out Olivier Galibert2021-03-021-6/+6
|
* mastmind: shuffle around bit/byte ordering, disasm looks better now hap2021-03-021-4/+4
|
* machine.lua: correct applefdintf file pointer hap2021-03-021-1/+1
|
* Revert "fileio.cpp: This doesn't technically require emu.h" AJR2021-02-281-2/+1
| | | | This reverts commit 6d6073054b9155592a6022d66751422ff3b3a372.
* econx25: Added the dual Z80 co-processor board (incomplete). Nigel Barnes2021-02-281-0/+2
|
* New working machines AJR2021-02-271-0/+17
| | | | | -------------------- Mark 1 FORTH Computer [AJR]
* New BSD-licensed implementation of Yamaha OPN and OPM FM audio chips (#7808) Aaron Giles2021-02-271-25/+26
| | | 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.
* added MM76 disassembler and preliminary PPS-4/1 MCU core [hap] hap2021-02-261-4/+24
| | | | | | New machines marked as NOT_WORKING ---------------------------------- Electronic Master Mind (Invicta) [hap, Sean Riddle]
* fileio.cpp: This doesn't technically require emu.h AJR2021-02-261-1/+2
|
* Refactored Seta sound, adding preliminary ST0032 sound support. (#7800) cam9002021-02-231-4/+4
| | | | | | * 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.
* bus/bbc/tube: Added the CMS 6809, Acorn 16032, and Acorn A500 2nd processors. Nigel Barnes2021-02-201-0/+4
|
* added MM5799 MCU emulation [hap] hap2021-02-141-0/+20
| | | | | | | | | | | New working machines -------------------- Basketball (Mattel) [hap, Sean Riddle] QuizKid Speller [hap, Sean Riddle] New working clones ------------------ QuizKid Racer (MM5799 version) [hap, Sean Riddle]
* scripts: Remove references to non-existent headers and duplicate source file ↵ Roberto Benfatto2021-02-144-7/+14
| | | | references. (#7770)
* added ds8874 device hap2021-02-071-0/+12
|
* coretmpl.h: Move lru_cache_map to separate header AJR2021-02-031-0/+1
|
* unidasm: Add disassemblers for NEC/Renesas V850 family AJR2021-01-301-0/+9
|
* Goodbye 64 suffix on the main executable, it was nice knowing you. Vas Crabb2021-01-262-52/+4
| | | | | | 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).
* New working machines Curt Coder2021-01-141-4/+6
| | | | | | | -------------------- 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]
* -Acorn Archimedes code reorganization: (#7627) Sandro Ronco2021-01-121-0/+24
| | | | | | | | | * 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]
* - m950x0: Added implementation for STmicro M950x0 SPI EEPROM series. [Ryan ↵ Ryan Holtz2021-01-101-0/+12
| | | | | | | | | | | | | | | | | 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]
* odyssey2: add service test cart 7seg output hap2021-01-041-0/+2
|
* render.h, rendlay.h: Dependency refactoring AJR2021-01-041-0/+1
| | | | | - 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
* Low-level #include overhaul AJR2021-01-023-0/+3
| | | | | | | - 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.
* -arm7: Moved WinCE call logging into a separate .hxx file. [Ryan Holtz] Ryan Holtz2021-01-011-0/+1
|