Commit Graph

1913 Commits

Author SHA1 Message Date
hap
c8d53cabbd added saitek OSA module interface used in leonardo/renaissance 2021-05-14 22:00:42 +02:00
Olivier Galibert
7ff6ed667f cdr-254sh: Skeleton 2021-05-10 09:14:54 +02:00
arbee
e13ea1cd39 Retiring my original NCR5380 implementation. [R. Belmont, AJR] 2021-05-08 16:55:52 -04:00
arbee
fa5977301e apple2: Add support for the BOOTI card [R. Belmont] 2021-05-08 16:19:36 -04:00
AJR
741595c312 qbus: Add dump and skeleton device for Data Systems Design A4432 Floppy Disk Interface [AJR, Bitsavers] 2021-05-05 09:36:12 -04:00
Sandro Ronco
800a422e42 ertictac.cpp: convert to use IOC and MEMC devices. 2021-05-01 23:07:51 +02:00
Olivier Galibert
8709e06b67 floppy: start block-devicing fielsystem support 2021-04-28 16:17:56 +02:00
arbee
f08b0c9c6c bus/rs232: Preliminary emulation of the Mockingboard D "sound card" for the Apple IIc. [R. Belmont, Apple II Documentation Project] 2021-04-25 22:24:44 -04:00
hap
5f977adf3f fix arcade target link 2021-04-23 18:55:31 +02:00
hap
d79ba952ac smartboard: add internal artwork for the pc version 2021-04-19 14:53:28 +02:00
hap
9194b83f3b smartboard: add support to connect it to pc printer port 2021-04-19 13:01:19 +02:00
Olivier Galibert
c037dfd822 thomson: Turn the extensions into slot devices, modernize the floppies 2021-04-19 09:50:19 +02:00
AJR
56ea894a84 nscsi: Add dump and skeleton device for Sony CDU561-25 CD-ROM drive [Bitsavers] 2021-04-16 15:19:23 -04:00
Olivier Galibert
9c8b72a5fe sound: Pulseaudio support 2021-04-16 14:49:16 +02:00
Olivier Galibert
6cbee7f176 cdu415: Add skeleton 2021-04-14 09:34:44 +02:00
Olivier Galibert
b663c4bc50 cdu75s: start the driver 2021-04-08 09:15:25 +02:00
Olivier Galibert
e0d69fad4c h8: Add the h8/3032 2021-04-07 14:29:28 +02:00
arbee
e42e059b23 Add bus/adb for real ADB device emulation [O. Galibert, R. Belmont] 2021-04-06 22:40:10 -04:00
Vas Crabb
958189731b bus/a2bus: Added Orange Micro Grappler printer interface card. 2021-04-07 04:33:43 +10: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
AJR
4d3afe00fc Restore legacy pc_dsk floppy support for imgtool only 2021-03-29 22:48:14 -04:00
Vas Crabb
e298c31a69 srcclean in preparation for release 2021-03-28 14:34:50 +11:00
Olivier Galibert
c8b532068f xt446: Use its real name 2021-03-22 22:51:49 +01:00
Olivier Galibert
5270d43692 keyboardmania: Interface with the mu100 2021-03-21 23:01:23 +01:00
hap
001eadf294 pps41: add preliminary mm78la/mm77la 2021-03-19 17:53:12 +01:00
Olivier Galibert
cdb06b7a99 pmac6100: Move it to a new driver 2021-03-12 21:35:02 +01:00
hap
82461369ff pps41: added mm78 disasm and mm77/mm78 skeleton device 2021-03-08 15:52:04 +01:00
fulivi
3fe689f03f
HP9845: added synchronous I/O for RS232 port and HP98046 module (#7695)
* rs232: added device for synchronous I/O

* hp9845: implemented external clocking in hp98046 serial module

Co-authored-by: ajrhacker <ajrhacker@users.noreply.github.com>
2021-03-07 13:31:39 -05:00
Olivier Galibert
e8ab2b8a78 Fix messed-up merge 2021-03-05 14:10:44 +01:00
Olivier Galibert
92326e47af floppy: Beginning of the support for preformatted floppy images.
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)
2021-03-05 10:17:20 +01:00
hap
d65c5159f1 pps41: add skeleton MM76-derived devices 2021-03-04 13:10:10 +01:00
Dirk Best
e5d1cec868 formats: Fix missed RC759 format 2021-03-04 11:24:17 +01:00
Olivier Galibert
d436cbd3a6 formats: Create mame_formats_full_list which gives access to all the supported formats, make floptool use it. Castool should use it too probably, but I don't want to touch it. 2021-03-04 10:14:24 +01:00
Dirk Best
23769b0970 rc759: Add RTC and floppy, start cleanup 2021-03-03 13:38:54 +01:00
Olivier Galibert
a52b69d27c Fix dependencies 2021-03-02 20:51:01 +01:00
Olivier Galibert
faf0417271 defaults: pc format is in, ipf is out 2021-03-02 20:20:20 +01:00
hap
323250bbee mastmind: shuffle around bit/byte ordering, disasm looks better now 2021-03-02 19:49:53 +01:00
hap
dd75841b96 machine.lua: correct applefdintf file pointer 2021-03-02 12:24:01 +01:00
AJR
f74d0978a9 Revert "fileio.cpp: This doesn't technically require emu.h"
This reverts commit 6d6073054b.
2021-02-28 13:25:25 -05:00
Nigel Barnes
fda2a0e482 econx25: Added the dual Z80 co-processor board (incomplete). 2021-02-28 12:22:22 +00:00
AJR
7002aae556 New working machines
--------------------
Mark 1 FORTH Computer [AJR]
2021-02-27 11:58:40 -05:00
Aaron Giles
95869d5718
New BSD-licensed implementation of Yamaha OPN and OPM FM audio chips (#7808)
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.
2021-02-27 21:57:43 +11:00
hap
2f02c96baf added MM76 disassembler and preliminary PPS-4/1 MCU core [hap]
New machines marked as NOT_WORKING
----------------------------------
Electronic Master Mind (Invicta) [hap, Sean Riddle]
2021-02-26 18:24:59 +01:00
AJR
6d6073054b fileio.cpp: This doesn't technically require emu.h 2021-02-26 12:07:44 -05:00
cam900
0a2caa105d
Refactored Seta sound, adding preliminary ST0032 sound support. (#7800)
* 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.
2021-02-23 23:12:22 +11:00
Nigel Barnes
2a4a487ec2 bus/bbc/tube: Added the CMS 6809, Acorn 16032, and Acorn A500 2nd processors. 2021-02-20 00:22:05 +00:00
hap
147b5e72a4 added MM5799 MCU emulation [hap]
New working machines
--------------------
Basketball (Mattel) [hap, Sean Riddle]
QuizKid Speller [hap, Sean Riddle]

New working clones
------------------
QuizKid Racer (MM5799 version) [hap, Sean Riddle]
2021-02-14 23:23:28 +01:00
Roberto Benfatto
02d6b1e457
scripts: Remove references to non-existent headers and duplicate source file references. (#7770) 2021-02-14 22:15:17 +11:00
hap
ad11e2d46e added ds8874 device 2021-02-07 17:12:19 +01:00
AJR
c47ed0112e coretmpl.h: Move lru_cache_map to separate header 2021-02-03 17:42:14 -05:00
AJR
75a7445a98 unidasm: Add disassemblers for NEC/Renesas V850 family 2021-01-30 12:30:56 -05:00
Vas Crabb
adc23f3f74 Goodbye 64 suffix on the main executable, it was nice knowing you.
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).
2021-01-26 15:37:11 +11:00
Curt Coder
39c150bd1e New working machines
--------------------
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]
2021-01-14 08:27:37 +02:00
Sandro Ronco
5a57d03cfe
-Acorn Archimedes code reorganization: (#7627)
* 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]
2021-01-12 23:39:14 +11:00
Ryan Holtz
1fad52d8ee - m950x0: Added implementation for STmicro M950x0 SPI EEPROM series. [Ryan 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]
2021-01-10 13:24:20 +01:00
hap
d329aa03f7 odyssey2: add service test cart 7seg output 2021-01-04 21:11:54 +01:00
AJR
c231ee373a render.h, rendlay.h: Dependency refactoring
- 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
2021-01-04 12:15:09 -05:00
AJR
60e518cc50 Low-level #include overhaul
- vecstream.h: Revert changes made in aa29519528. 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.
2021-01-02 15:18:15 -05:00
Ryan Holtz
29bc7e25b7 -arm7: Moved WinCE call logging into a separate .hxx file. [Ryan Holtz] 2021-01-01 23:23:42 +01:00
Ryan Holtz
139f044859 -arm7: Added optional logging for Windows CE calls. [Ryan Holtz]
-uda1344: Added skeleton audio device for Philips UDA13444 Codec. [Ryan Holtz]

-sa1111: Hooked up basic L3 audio transceiver support. [Ryan Holtz]
2020-12-31 19:18:54 +01:00
Patrick Mackinlay
763a780f37 romp: initial storage channel implementation 2020-12-31 16:39:20 +07:00
tim lindner
c49f1ee406
bus/coco Added CoCo and Dragon MIDI cartridges. (#7589) 2020-12-25 14:28:09 +11:00
Nigel Barnes
8aacde2c3f saa5240.cpp: Preliminary SAA5240/43 Computer Controlled Teletext emulation. 2020-12-25 00:09:52 +00:00
Ryan Holtz
7ebdb0bd97 New machines marked as NOT_WORKING
------------------
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]
2020-12-24 18:59:14 +01:00
AJR
f7585b3cdb a2bus: Add (corrected) ROM dumps and emulation of CCS Model 7710 Asynchronous Serial Interface [AJR, Apple II Documentation Project] 2020-12-24 10:02:48 -05:00
AJR
5bf175cb05 New device: Fairchild 4702B Bit Rate Generator 2020-12-24 09:56:49 -05:00
AJR
0d77739c27 Add dump and skeleton devices for Emerald Technology 3XTwin ISA board 2020-12-23 10:56:26 -05:00
arbee
add5e8a421 apple2: Support for the Videx Uniprint parallel card [R. Belmont, Golden Child] 2020-12-22 21:54:58 -05:00
AJR
4f70f2d58b Add CompactRISC CR16C disassembler to unidasm (largely untested) 2020-12-16 12:17:56 -05:00
arbee
30247885aa 3rdparty: use -Wno-strict-prototypes when building SDL2 on macOS [R. Belmont] 2020-12-13 17:03:16 -05:00
arbee
ca1bf9a040 Add AudioToolbox framework when building SDL2 on macOS, fixes TOOLS=1 link errors [R. Belmont] 2020-12-13 16:48:55 -05:00
AJR
04b59f8323 unidasm: Add disassembler for M32C architecture 2020-12-07 15:41:45 -05:00
Ryan Holtz
be92cc6c65 -scoop: Added skeleton device for Sharp "Scoop" peripheral IC from the Zaurus PDA line. [Ryan Holtz]
-ucb1200: Added skeleton device for Philips UCB1200 audio/telecom codec. [Ryan Holtz]

-sa1110: Added rudimentary framework for the MCP codec interface module. [Ryan Holtz]
2020-12-06 14:52:40 +01:00
Ryan Holtz
8287057888 -locomo: Added a skeleton device for the LoCoMo peripheral controller used in some Sharp Zaurus models. [Ryan Holtz]
-sa1110: Added OS Timer, RTC, Reset, GPIO, and partial UART3 controller module support. [Ryan Holtz]
2020-12-06 14:52:40 +01:00
Nigel Barnes
f25283c81f accomm: Added PCF8573 RTC.
- Added RTC interrupt, fixes TIME function.
- Realigned video handling with the Electron.
2020-12-04 12:23:11 +00:00
Vas Crabb
1bdf8d272a frontend: Lua engine improvements.
Added methods for enabling and disabling breakpoints and watchpoints,
and made debugger views update when breakpoints/watchpoints are
manipulated from Lua.  Made breakpoints and watchpoints objects rather
than tables.  (It’s not possible to enable/disable a breakpoint or
watchpoint from the object itself, you have to go through its owners'
debug interface.)

Exposed more device_t members for dealing with child/sibling tags and
devices.  Also provided a way to get regions/shares/banks from a device
using relative tags rather than going through the memory manager with
absolute tags.
2020-11-30 12:01:14 +11:00
Olivier Galibert
574daf4e49 Implement views, which are essentially bankdevs integrated into the
memory map system. [O. Galibert]
2020-11-22 19:43:52 +01:00
AJR
390bb74da9 Add dump of AppleCD 150 [DBWBP] 2020-11-20 12:35:18 -05:00
AJR
0bdbb0aa2e Separate TX-0 from PDP-1; separate some SoC types in build 2020-11-19 20:54:24 -05:00
Vas Crabb
612b6472e7 -unidasm: Allow input piped from stdin by specifying a bare hyphen as the filename. [AJR, Vas Crabb]
-netlist: Give devices the C++17 namespace treatment.

-Tidied up compiler warning options for 3rdparty.

-emu/render.cpp: Exposed a few information view item properties.
2020-11-18 00:58:30 +11:00
arbee
48d1f0de37 macOS: Disable BGFX threading, which causes crashes and wrong drawing on Catalina and Big Sur. [Balrog] 2020-11-16 23:28:00 -05:00
Vas Crabb
ac270744f3 Fix most implicit fallthrough warnings from clang 2020-11-17 09:18:37 +11:00
tim lindner
d6fbd53d2b
bus/coco: Added symphony 12 music device. (#7472) 2020-11-17 01:01:55 +11:00
Vas Crabb
b524aa701a frontend: split lua_engine user type registrations across a few files to make it a bit more manageable 2020-11-16 23:11:43 +11:00
Vas Crabb
4298ce18fb Enable GCC implicit fallthrough warning.
I've guessed whether break or [[fallthrough]] is appropriate.  In cases
where it looked particularly suspicious, I added a FIXME comment.  All
of these changes should be reviewed by someone familiar with the code.
2020-11-15 03:58:54 +11:00
Vas Crabb
55b8ca317a -Switch to building MAME as C++17.
* Updated sol2 to 3.2.2
* Updated pugixml to 1.10
* Increased minimum clang version to 6
* Cleaned up some stuff that can use new features
2020-11-15 03:53:47 +11:00
arbee
5ca983d83f apple2: Support the SUP'R'TERMINAL 80-column card. [R. Belmont] 2020-11-09 23:03:14 -05:00
Olivier Galibert
b644308114 mu5: Add the lc7985nd and the lcd [O. Galibert] 2020-11-05 14:00:00 +01:00
Sandro Ronco
2dbfe3db33 pce220.cpp: split HD61202 and SED1560 into separate devices. [Sandro Ronco]
Machines promoted to WORKING
----------------------------
Sharp PC-E220 [Sandro Ronco]
Sharp PC-G815 [Sandro Ronco]
2020-10-31 23:36:12 +01:00
Nigel Barnes
d44b1552cf aquarius: Peripherals implemeted as slot devices: 4K/16K/32K/16K+ Memory Cartridges, Mini Expander (now with controllers), Quick Disk (not working), C1541 DOS Interface (not working)
- Implemented memory mapper for CP/M.
- Serial printer port.
- External RAM is now scrambled.
- SuperCart bankswitching board implemented for Aquaricart.
- Cartridge images of size 4K, 8K, 16K now supported, was previously 16K only.
2020-10-31 21:33:20 +00:00
Vas Crabb
cf7fe1e04d -bus/a2bus: Added Apple II Parallel Printer Interface Card.
-frontend/mame/audit.cpp: Fixed another annoying edge case.

-Cleaned up RawInput code slightly.
2020-11-01 00:37:28 +11:00
Olivier Galibert
331baa268a lc57, msm65x2: Add disassemblers [O. Galibert] 2020-10-26 11:42:43 +01:00
tim lindner
d37876bd20
bus/coco: Added Speech Systems Stereo Composer cartridge. (#7379) 2020-10-26 19:42:18 +11:00
AJR
67ac7f437f 3rdparty.lua: Another build fix for older OS X versions 2020-10-25 15:29:24 -04:00
Justin Kerk
56f2ebaeaf Emscripten: Allow memory size to grow at runtime when targeting WebAssembly as there is no longer a performance hit 2020-10-24 00:44:57 -07:00
Vas Crabb
515e85ba80 bus/a2bus: Added Orange Micro Grappler+ Printer Interface. [Vas Crabb, Golden Child, archive.org] 2020-10-23 17:03:09 +11:00
Aaron Giles
89dbabd04d
volt_reg: Remove uses that are not needed anymore with the recent (#7367)
DAC changes. Which is all of them. Remove the device as well.
2020-10-20 10:59:34 -04:00
Nigel Barnes
af16e6fbe9 aquarius: Added support for .CAQ cassette images.
- Select 20K RAM as default.
2020-10-19 21:14:54 +01:00
Nigel Barnes
382e6fea50 bus/bbc/rom: Added support for the Gemini DataGem ROM carrier board. 2020-10-19 21:14:53 +01:00
AJR
31bf57410e m68000: Separate FPU code from header 2020-10-15 20:51:21 -04:00
cam900
24d5367e8f
Implement TT5665 emulation (#6841)
* Implement TT5665 emulation
Similar as OKIM6295, but with Support more ROM capacity and phrase spaces, 2 sound outputs
used in bowltry, igs_m036 (for some hardwares with TT5665, ex: cjddzsp)
bowltry.cpp: Fix game name (BOWLING TRY! in both poster and PCB)

* bowltry.cpp: Typo

* Fix endline

* tt5665.cpp: Reduce unnecessary argument
2020-10-15 14:18:21 -04:00
Vas Crabb
d256f069a5 -3rdparty/expat: Update to 2.2.10."
-Fixed tiny build (missing s11c_bg_device) and unused lambda capture in emu/rendlay.cpp.
2020-10-15 04:28:42 +11:00
Vas Crabb
c751a5348a -emu/natkeyboard.cpp: Allow keyboard devices to be enabled/disabled.
This fixes the "typing on all keyboards at once" issue.  You can now
enable and disable keyboard/keypad inputs per device in the Keyboard
Mode menu.  Default is to enable the first device with keyboard inputs,
and all device with keypad inputs but no keyboard inputs.  The settings
are saved in the CFG file for the machine.

Typing in natural keyboard mode only ever types on one keyboard at a
time, but now you can control which keyboard it types on, as it will be
the first enabled keyboard.

You can easily try this out with something like:
mame64d zorba -rs232 terminal cpm

-ui/inputmap.cpp: Show device descriptions as well as tag paths.

-mac128.cpp: Fixed mouse axis wrap compensation, cleaned up mouse code,
eliminated static variables for mouse input state.

You could see the issue with wrap detection easily enough just by
running mac128k/mac512k/macplus and tapping the arrow keys to move the
mouse one pixel at a time.  As you moved past the point where the axis
count wrapped, it would move one pixel in the opposite direction.

There were two function static variables related to mouse input state,
probably still lurking from when the code was initially made to use a
driver state class.  This obviously messes with save states and prevents
multiple instances.

- bus/a2bus/mouse.cpp: Fixed mouse axis wrap compensation.

This device had the same bug with wrap compensation as mac128k.cpp.
2020-10-11 02:58:46 +11:00
Patrick Mackinlay
e67a06058f ns32202: new device (wip) 2020-10-10 13:28:41 +07:00
Ryan Holtz
dbea17a536 Software list items promoted to working
-----------------------------------
vsmile_cart: V.Smile Tanz Mit Center (Germany), V.Smile Défi Gym (France), Gimnasio Interactivo V.Smile (Spain)

-vsmile: Added support for the Jammin' Gym Class dance mat. [bmx, Ryan Holtz]
2020-10-10 00:44:01 +02:00
Jonathan Gevaryahu
63dc4b41ed
Major update for HC55516 CVSD audio device and related filtering, as well as hooking it to drivers. (#7290)
* Split hc55516 core into separate cores/subclasses for hc55516 and hc55532 (new 'digital' implementation based on decap/die tracing) as well as mc3417 and mc3418 (old existing 'analog' implementation left alone) and hooked the hc55516 and mc3417 implementations to the appropriate hardware drivers. This should vastly improve CVSD sound quality in drivers that use the hc55516. [Lord Nightmare, Sean Riddle]
* Made Exidy's mouse trap use a timer to clock the mc3417 and update the state readable by the z80 rather than relying on the mc3417 to accept a clock parameter and update the z80 state via a callback. The timer implementation ensures proper synchronization and prevents missed clock transitions from the z80 side causing noise in the CVSD audio. [Lord Nightmare]
* Added a biquad-based 2nd order filter emulation for an audio stream (to go along with flt_rc 1st order filter emulation) and hooked it to Exidy's mouse trap (mc3417) and williams drivers (hc55516) following the original schematics. For hc55516 this is necessary as the original chip produces a very pronounced audible 16khz 'carrier' in its output audio even on the real chip, and these filters suppress this. This also happens to a lesser extent with the 8khz quieting waveform noise on both mc3417 and hc55516. [Lord Nightmare]
* Made Williams System 11 and s11_bg relative sound mixing more accurate to the original audio flow on the PCB itself. [Lord Nightmare]
* Switched Williams Joust 2 to use the s11_bg common sound device rather than its own implementation. [Lord Nightmare]
2020-10-10 04:25:40 +11:00
r09
dd73e03c08
fmtowns: add devices for the SCSI card slot and the FMT-121 card (#7306)
* fmtowns: add a SCSI card slot for the original models
- Add a slot device for the Model 1/2 dedicated SCSI slot
- Add a device for the FMT-121 SCSI Card
- Modify the I/O maps and machine configurations so the slot and the
  integrated controller don't overlap
2020-10-08 03:20:32 +11:00
Vas Crabb
b90fd35515 Various improvements to image file handling:
Moved MS DIB parser out of ICO file reader and made it available for
artwork and layout images.

Added more efficient I/O and better error checking for JPEG file loading
(MAME will no longer exit immediately on a bad JPEG file).

Made caller responsible for opening files for loading images, to avoid
decompressing images used in ZIP/7z artwork multiple times.

Added support for JPEG and Windows DIB to picture_image_device.

Added support for SVG image files in external artwork.

Added support for using I/O port value for animation state and masking
animation state values.

Made bounds elements more flexible in layouts.

Reworked headers to reduce dependencies.

Updated layout file format documentation.
2020-10-08 02:04:31 +11:00
Patrick Mackinlay
def86684ac ns32000: avoid potential slave dependency issue 2020-10-06 09:54:38 +07:00
Patrick Mackinlay
a89f9b274e ns32081: new device 2020-10-05 16:02:23 +07:00
couriersud
3a95d1e4fd netlist: Convert driver filenames to lower case. 2020-09-30 08:38:06 +02:00
Olivier Galibert
5352cdbc5e lc58: Add disassembler [O. Galibert] 2020-09-29 13:12:14 +02:00
David Haywood
3cd14b2e0a
machines promoted to WORKING (plug play) (#7299)
machines promoted to WORKING
----
TV MegaMax active power game system 30-in-1 (MegaMax GPD001SDG) [David Haywood]

* added files for the VT APU type, currently no extra functionality, but will be built upon
2020-09-29 19:05:21 +10:00
Justin Kerk
56f30e3ca0 Remove embed files unintentionally added to Emscripten build 2020-09-28 10:04:36 -07:00
Emmanuel Vadot
e996e148f3
FreeBSD fixes (#7295)
* psixptty: Fix for FreeBSD

We need to check for __FreeBSD__ not __FreeBSD_kernel__

* FreeBSD: Use gl includes from pkg-config

FreeBSD doesn't install the includes from 3rdparty software in a default
location so use pkg-config to get the correct path.

* FreeBSD: genieos is named simple bsd
2020-09-27 20:41:14 +10:00
Vas Crabb
6e807013c5 Disable SOUND_DEBUG for non-debug builds, and srcclean 2020-09-27 11:00:56 +10:00
Nigel Barnes
e7b852c7a3 bus/bbc/1mhzbus: Added the Acorn Music 500, Hybrid Music 5000 Synthesiser, Hybrid Music 3000 Expander, and Peartree Music 87 Synthesiser. 2020-09-25 11:06:45 +01:00
couriersud
1bb99466bc netlist: code refactoring
* use default move and copy constructors
* various minor edits like adding noexcept
* removed a lot of inline keywords - you can't beat the compiler
2020-09-24 15:22:22 +02:00
Nigel Barnes
70d8b5deb8 bus/bbc/userport: Added the Hybrid Music 4000 Keyboard. 2020-09-22 19:52:14 +01:00
David Haywood
04672777eb
pcp8718 / pcp8728 / bkid218 - make menu controller a shared device (#7270) 2020-09-21 13:17:25 -04:00
arbee
d3138d7dd4 apple2: preliminary support for the Sider SASI card and the Xebec OEM version [R. Belmont] 2020-09-20 22:41:42 -04:00
couriersud
63efcfcb85 netlist: code refactoring.
- rename mat_cr.h to pmatrix_cr.h
- Optimization to the gmres solver.
- Simplifcation of vector operation code
2020-09-20 17:34:54 +02:00
couriersud
0348faf9ae
Merge pull request #7214 from Lord-Nightmare/master
netlist: devices for MCM14524, CD4029, CD4030, CD4042, CD4049, CD4076 [Lord Nightmare]
2020-09-18 18:44:58 +02:00
couriersud
ed6900b990
emscripten: netlist and OpenGL improvements. (#7254)
* Most OpenGL link issues fixed. Two remain from drawogl.cpp.
    This isn't working anyhow.
* "-video accel" now uses WebGL. This allows GL based scaling and
    provides a performance improvement.
* Fixed pong and other games by adding another function to the
    exception whitelist
* Target now is mame.html. This allows emrun to be used for testing.
    mame.js is created as well and thus the current behaviour
    unchanged.
2020-09-18 23:06:48 +10:00
Lord-Nightmare
bff0710c57 Netlist devices for MCM14524, CD4029, CD4030, CD4042, CD4049, CD4076 [Lord Nightmare] 2020-09-17 22:56:49 -04:00
couriersud
c127811083 netlist: Move ICL8038_DIP and NE556_DIP to core.
* Remove code duplication.
2020-09-17 19:44:51 +02:00
Patrick Mackinlay
eb3d3ccb50 machine.lua: revert unwanted addition 2020-09-17 19:09:37 +07:00
Patrick Mackinlay
4b9cef80f2 news_68k: incorporate dmac changes
* NEWS-OS now boots and runs in serial console mode
2020-09-17 19:06:09 +07:00
MetalliC
bd89e921a3 fix build 2020-09-17 12:22:03 +03:00
Erwin Jansen
9a0c63f673
Add MDCR support for P2000t (#7215)
This adds support for the mini digital cassette recorder that can be
found inside a P2000t. This implementation is based on documentation
that can be found in https://github.com/p2000t/documentation.

In memory of NPM Jansen, who taught me all the magic of bits and bytes.
2020-09-17 18:39:48 +10:00
AJR
7e121d68bb kl5c80a12, kl5c80a16: Added emulation of KP63(A) Timer/Counter unit. This improves timings in animalc, haekaka, pyenaget and tdoboon.
* animalc: Pile kludge upon kludge for poorly understood video timing register
* gocowboy, itazuram: Increase frequency of one timer interrupt (and hopper timing in gocowboy)
* kc82, kp69: Modernize state_add syntax
2020-09-14 23:32:58 -04:00
couriersud
48fada3c34 netlist: remove obsolete headers from netlist.lua 2020-09-13 12:20:11 +02:00
cam900
612bf6546f Device-fied PRO-CT0
for protection, aka ALPHA-8921(in Some later 80s alpha denshi PCBs) or SNK-9201
prot_fatfury2.cpp: Convert protection into alpha_8921.cpp device
2020-09-13 18:51:53 +10:00
couriersud
ca31c844cd netlist: move to generated header and link support files files.
* Removed device and macro header files.
* All of those can be generated automatically so going forward there is
no need for these any longer.
* Introduced the modules concept. Modules are netlists for which
automatic lib entries are generated.
* Going forward you just store them in macro/modules and they will be
automatically registered as device elements.
* You need to do a "make generated" is src/lib/netlist/build
* Some_device.cpp still needs to be added to netlist.lua
* Added documentation on how to add devices to netlist.
* Please refer to adding_devices.md for more information.
2020-09-12 23:20:16 +02:00
Nigel Barnes
e5b039078f bus/electron/cart: Added the Pace RS423 Communications cartridge. 2020-09-07 16:58:02 +01:00
Michael Zapf
82b7fb4ece ti99: Added SID Master expansion card. 2020-09-02 00:04:02 +02:00
Rhett Aultman
49466dc4ad
bus/a2bus: Added Uthernet card emulation for Apple IIgs (#7090)
* Ported Cirrus Logic CS8900A Crystal LAN MAC emulation from VICE and hooked it up to Apple II card device.
* Adds Ethernet networking support for Apple IIgs.
2020-08-31 11:22:32 +10:00
Vas Crabb
97a409b2a9 formats/flopimg.cpp: Use appropriate standard exceptions for reporting errors, allowing libemu to be removed from imgtool and floptool. 2020-08-30 17:22:17 +10:00
Nigel Barnes
471781f99a bus/bbc/userport: Added the Sprow LCD Display. 2020-08-27 19:47:53 +01:00
couriersud
0aa5aea84f netlist: Fix various issues around include directories.
* removed include directory src/lib/netlist from various genie files to
avoid potential issues.
* Code using netlist should use #include "netlist/*".
* Updated includes.
* Fixed standalone makefile depend target to properly deal with relative
paths.
2020-08-25 19:41:32 +02:00
Nigel Barnes
2027f49eb3 bus/electron: Added the P.R.E.S. AP1/AP6 and First Byte Printer Interface devices. 2020-08-23 22:15:36 +01:00
Nigel Barnes
fc785cecbc bus/electron: Added the JAFA Mode 7 Display Unit. 2020-08-19 22:59:51 +01:00
arbee
9006bf69c1 apple2: added HAL Labs Gizmo digital joystick adapter [R. Belmont, Golden Child] 2020-08-16 14:59:44 -04:00
Ryan Holtz
e2231ddcd2 -atarittl: Added netlist for Tank. currently runs at about 0.005% of full speed, unsure why. 2020-08-16 20:04:34 +02:00
Nigel Barnes
ea75086da7 bus/bbc/fdc: Added the Kenda Professional DMFS and Microware/UDM DDFS boards. 2020-08-16 16:14:07 +01:00
ajrhacker
90a55f779d
Merge pull request #7063 from belegdol/disable-obsolete-imgui-functions-consistently
Define IMGUI_DISABLE_OBSOLETE_FUNCTIONS consistently
2020-08-12 15:00:54 -04:00
couriersud
87b702b31f netlist: more include untangling.
* nl_base.h now basically only includes files from core.
* all headers in core compile on their own.
2020-08-12 20:17:10 +02:00
Julian Sikorski
65b0df8761
Fix non-x86 build and try to make sure it does not break silently again (#7041)
* Do not build x64 DRC backend when C backend is forced
* New CI target (mametiny + kinst)
* Switch travis to CI target
* Switch appveyor to CI target
2020-08-12 12:54:22 -04:00
Julian Sikorski
1096db17b6 Define IMGUI_DISABLE_OBSOLETE_FUNCTIONS consistently
IMGUI_DISABLE_OBSOLETE_FUNCTIONS was defined in osd/modules.lua but not
in 3rdparty.lua. As a result, two different variants of struct ImGuiIO
were being defined, causing a C++ One Definition Rule violation
2020-08-12 18:22:59 +02:00
hap
138a281c6c odyssey2: add preliminary Videopac+ C7420 Home Computer Module emulation 2020-08-12 14:41:56 +02:00