Commit Graph

167 Commits

Author SHA1 Message Date
Angelo Salese
f5b2fd9ee6
Major refactoring of VRender0 SoC device [Angelo Salese] (#5527)
*    Improved encapsulation between video and machine SoC periperals;
*    Split up HWs in individual files where they don't belong to Crystal System HW, makes future development easier;
*    Untangled reads/writes to draw/display bankswitches from screen_update, now they can be unthrottled safely;
*    Added CRTC screen raw parameters;
*    Add DMA hold feature and clear irq on mask writes, specific for P's Attack;
*    Improved Cross Puzzle flash loading, currently failing at POST for a SPU error;

nexus3d.cpp: add some preliminary work, currently does some VRender3d pipeline fill with a debug trick [Angelo Salese]

(out of whatsnew)
Some stuff definitely needs fine graining, like removing the few lines that are still necessary to configure the VRender0 from driver files, which I'm gonna do in my next feature branch.
2019-08-24 11:33:39 +02:00
AJR
de57ef7b97 atronic.cpp: Add more onboard devices, including new PCF8584 skeleton (nw) 2019-08-17 22:40:15 -04:00
AJR
83e63dacf4 Add device emulation for DS17x85 series of MC146818-compatible RTCs with additional features 2019-08-14 09:12:12 -04:00
arbee
f6e204b4ae Add still-frame PNG image device for use by digitizers/cameras/etc. [R. Belmont]
Other formats can be added, we already have libjpeg in 3rdparty/.
2019-08-09 19:57:10 -04:00
David Haywood
d193b2f3ad steps towards some spectrum expansions - attempt 2 (resynced to AJRs changes) (nw) (#5417)
* steps towards some spectrum expansions - attempt 2 (nw)

* (nw)

* (nw)
2019-07-31 18:08:48 -04:00
AJR
b218528e1f microdrv: Change image type to magtape; default clock; move to imagedev (nw) 2019-07-30 21:04:38 -04:00
Patrick Mackinlay
1f9fd834af wtl3132: new device 2019-07-15 22:28:19 +07:00
AJR
60d4805d55 Move modern SCSI CD/HD devices into src/devices/bus/nscsi (nw) 2019-07-11 14:20:32 -04:00
Patrick Mackinlay
4b70016e83 new device seeq8003 2019-06-26 20:21:15 +07:00
hap
e73cf96fbd added sensorboard with piece recognition (nw) 2019-06-23 00:58:37 +02:00
MooglyGuy
1af85e45ca -74381: Added untested 74S381 ALU / Function Generator device. [Ryan Holtz]
-dpb_brushproc: Added PROM signal lookups, nw

-am25s55x: Fixed some incorrect comments, nw
2019-06-18 14:37:14 +02:00
MooglyGuy
56af5d0d26 -dpb_brushproc: Added skeleton device for DPB-7000 Brush Processor Card. [Ryan Holtz]
-am25s55x: Initial device implementation for Am25S557 and 25S558 Combinatorial Multiplier chips. [Ryan Holtz]

-dpb_combiner: Fixed validation, nw

-dpb7000: Added devices for new Brush Processor Card skeleton, nw
2019-06-18 01:50:20 +02:00
mooglyguy
ccc03cab08 -tdc1008: Fixed latching of RND, TC, ACC, and SUB signals. [Ryan Holtz]
-tmc208k: Added device for TRW TMC208K/TMC28KU 8x8-bit Parallel Multiplier. [Ryan Holtz]

-dpb7000: Added placeholder devices for TMC multipliers on the Combiner Card, nw
2019-06-17 02:13:09 +02:00
mooglyguy
68d9445979 -tdc1008: Initial untested implementation of the TRW TDC1008 Multiplier-Accumulator. [Ryan Holtz]
-dpb7000: Added TDC1008 devices for the Filter Card, albeit not hooked up yet, nw
2019-06-16 23:46:22 +02:00
AJR
e49e75c122 Add device emulation for MM5307 Baud Rate Generator 2019-06-14 00:32:55 -04:00
mooglyguy
8689ada5a3 -am2910: Added prelminary, largely-untested Am2910 Microprogram Controller device emulation. [Ryan Holtz]
-dpb7000: Initial pass at Disk Sequencer Card emulation. Needs debugging. [Ryan Holtz, Mark Nias]
2019-06-05 04:41:21 +02:00
hap
0a213f860c chessmachine: device was in wrong folder and forgot to update compile script (nw) 2019-06-01 14:53:14 +02:00
Dirk Best
244b03bb52 New device: UPD7004 ADC 2019-05-28 09:48:59 +02:00
grullosgo
aff42a9969 Add DS1994 device (#5054)
Add DS1994 device
amaticmg driver: added ds1994 device, modified prom load, added ds1994 to romload
2019-05-14 16:07:02 -04:00
David Haywood
de235f4623 allow smartfp to show.. something (nw) (#5030)
* smartfp generate an interrupt, add a palette (nw)

* video registers look a lot like the spg220 hw here (nw)

* getting ready to split into video (nw)

* code shuffle (nw)

* shuffle (nw)

* (nw)

* (nw)

* (nw)
2019-05-10 20:23:34 -04:00
AJR
d3132cc13b Add AIC-565 device 2019-05-06 00:24:11 -04:00
AJR
adeeb00143 machine.lua: Fix copy/paste mistake (nw) 2019-04-21 01:17:29 -04:00
AJR
9b3a449790 Add very preliminary Intel 82355 BMIC device 2019-04-21 00:35:59 -04:00
Vas Crabb
112062f7bb Add AMD/Plessey 2812 FIFO device (for WIP Star Rider driver) 2019-04-21 13:43:52 +10:00
AJR
cdd6766fe4 scc68070: Merge CPU device with on-chip peripheral emulation
- Add internal clock divider
- Add a few crude hacks to force status bits in unemulated UART and I2C
2019-04-17 15:41:23 -04:00
DavidHaywood
a816cffe18 pull SunPlus GCM394 titles out of vii.cpp
- it's a newer SoC (with a lot more capabilities, eg rotate, zoom, twice the sound channels)
- it uses an updated unSP core (with some extra opcodes)

also made the modifications needed to allow for extension of the unSP + disassembler once we've worked out what the extra opcodes are.
2019-04-14 00:06:28 +01:00
David Haywood
9873d6afaa spg110: tweaks for jak_capb, improves rendering, identifies several things (#4816)
* spg110: jak_capb misc guesses (nw)

* misc priority stuff (nw)

* tweaks (nw)

* more tweaks (nw)

* small spg2xx refactor (nw)

* some spg2xx refactoring (nw)

* (nw)

* tidy (nw)

* these have all been moved out into modules (nw)

* sprite work in progress (nw)

* (nw)

* spg110: shift some stuff around and split into files here too

* (nw)

* (nw)

* (nw)

* sprite improvements
2019-03-27 22:40:35 -04:00
Vas Crabb
97b6717027 (nw) Clean up the mess on master
This effectively reverts b380514764 and
c24473ddff, restoring the state at
598cd52272.

Before pushing, please check that what you're about to push is sane.
Check your local commit log and ensure there isn't anything out-of-place
before pushing to mainline.  When things like this happen, it wastes
everyone's time.  I really don't need this in a week when real work™ is
busting my balls and I'm behind where I want to be with preparing for
MAME release.
2019-03-26 11:13:37 +11:00
andreasnaive
b380514764 Revert "conflict resolution (nw)"
This reverts commit c24473ddff, reversing
changes made to 009cba4fb8.
2019-03-25 23:13:40 +01:00
DavidHaywood
a500ebecb1 refactoring checkpoint (nw) 2019-03-25 16:31:10 +00:00
David Haywood
cb60e245dc SPG2XX - Make audio emulation a subdevice (#4757)
* SPG2XX - Make audio emulation a subdevice

(I need to reuse some of it for SPG110)

* these will end up in different places on spg110 so split the handler (nw)

* refactor a little for cleaner use later (nw)

* realign logging with function names (nw)

* (nw)

* (nw)

* recent change in audio_beat_tick appears to break "icanpian jjs" seems unintentional? (MG please verify)
also documented an existing suspicious use of 'channel' in code.

* use channel_bit here instead, seems more logical (nw)

* reorganize code here a bit too (nw)
2019-03-14 22:35:19 +11:00
Dirk Best
093d7cbf18 New device: Western Digital WD1010-05 2019-02-23 20:41:50 +01:00
Patrick Mackinlay
455195eecf xc1700e: new device 2019-02-20 13:25:12 +07:00
Patrick Mackinlay
a035eafdfe jazz: wip checkpoint (nw)
At this point, jazz can start Windows NT 4.0 from cdrom, but crashes launching the session manager just prior to running setup.
2019-02-12 18:09:47 +07:00
Vas Crabb
76323eb770 srcclean and cleanup (nw) 2019-01-27 14:22:20 +11:00
Olivier Galibert
9ef08696cc wd33c9x: Convert the remaining drivers, kill the old driver [O. Galibert] 2019-01-22 22:20:54 +01:00
David Haywood
884a2fd070 new NOT WORKING --- Classic Arcade Pinball (JAKKS Pacific TV Game) [Sean Riddle, David Haywood] (#4502)
* new NOT WORKING --- Classic Arcade Pinball (JAKKS Pacific TV Game) [Sean Riddle, David Haywood]

* move to new driver instead (nw)

* minor note updates (nw)

* map inputs in matelcs (currently needs a hack to boot, so won't show anything yet) also removed a pointless bitswapping in a read function for some other stuff in the driver, and just correct the ports instead

* fix a typo (nw)

* note (nw)
2019-01-13 11:19:06 -05:00
Patrick Mackinlay
a6f8b885da wd33c9x: somebody dropped this (nw) 2019-01-01 09:17:02 +07:00
arbee
b242f119b6 Added a skeleton for the DEC DC7085 (aka "DZ") quad UART. [R. Belmont] 2018-12-30 00:25:32 -05:00
mooglyguy
1b08996e2b -dp8573.cpp: Added DP8573 Real-Time Clock emulation. [Ryan Holtz]
-indigo.cpp: Hooked up new DP8573 implementation. [Ryan Holtz]
2018-11-12 02:42:19 +01:00
Patrick Mackinlay
a3244603db aic6250: new device (nw)
Very WIP status and some obvious issues, but working well enough to load RISC/os.
2018-10-31 18:19:24 +07:00
Brandon Munger
fbcc6c1b37 r9751: Implement proper SMIOC emulation through new uart emulation (#4188)
* [R9751] (Squashed) Early work on SMIOC emulation

commit 9b587be762abfd576e92792c612cd205c570924d
Author: Stephen Stair <sgstair@akkit.org>
Date:   Tue Apr 10 19:41:55 2018 -0700

    Connected SMIOC DMA to 68k

    * SMIOC now reading bytes for serial from the 68k memory space successfully.

commit 0f801a05a3fa5b78768a1a2bcb9981466e8f2b0e
Author: Stephen Stair <sgstair@akkit.org>
Date:   Tue Mar 27 18:31:32 2018 -0700

    68k now running in lockstep with SMIOC for serial

    * 68k now uses actual SMIOC as source of SMIOC status, so it waits for the SMIOC to complete commands before continuing.
    * SMIOC DMA controllers now being asked to move bytes around
    * "write character" (4100) commands to SMIOC are now completing and resulting in correct status being written and sent back to the 68k
    * Every now and then the SMIOC stalls for a bit, it seems to be due to spending some time trying to communicate with the 8051 CPU (used to communicate with another cpu on the serial breakout box) that is not currently present in the emulated device.

    Next Steps:
    * We're going to move the terminal from the r9751 into the SMIOC, and hook it up to the DMA controllers as a hacky temporary solution.
    * We need to emulate the 5xxxx memory range in SMIOC to proxy data to/from the 68k memory
    * Then we'll start work on emulating the octal uart properly and hooking it up to RS232 channels.

commit ca91614fca3f43d87755d0c3439521276d7bfafb
Author: Stephen Stair <sgstair@akkit.org>
Date:   Wed Mar 14 19:52:04 2018 -0700

    Tinkering to get SMIOC further along

    1) Enable 188 cpu to advance DMA immediatley if DRQ is held high when source synchronous DMA is started (It's not clear whether the DMA actually works this way yet)
    2) Retrigger the DMA DRQ when a memory access is made to the DMA window (future work needed to proxy the reads/writes to the 68k's main memory) This is needed to support multibyte DMA reads/writes to the 68k window.
    3) Reverse the bytes in the status register (based on current incomplete understanding of how this is encoded)
    4) Connect the status register back to the r9751 on SMIOC status read
    Current state: SMIOC's main board DMA state machine now completes the DMA transfer from the main board (With incorrect data), but we are still getting stuck.
    Next steps: SMIOC is now hanging waiting on DMA to UART to complete, we need to implement some emulation of the UART and its connections to the surrounding 16 dma channels in order to make progress.

commit 62c1455c97a53ed970622e08cb03a225625914fd
Author: Stephen Stair <sgstair@akkit.org>
Date:   Sun Mar 4 20:13:32 2018 -0800

    Progress on emulating SMIOC

commit daee8498c5840417aee3ed9def0acfba5476335a
Author: Stephen Stair <sgstair@akkit.org>
Date:   Sun Feb 25 20:02:32 2018 -0800

    Working on bringing up SMIOC

    Trying to get emulated SMIOC in lockstep with the main 68k.

commit 5a929fde90307040a0544682888f2f21a914b900
Author: Stephen Stair <sgstair@akkit.org>
Date:   Wed Feb 21 20:06:27 2018 -0800

    re-enable SMIOC, Logging improvements, first steps towards emulating on-board hardware.

commit f0c7a1665a18c99df5527ae45994f39f95223814
Author: Stephen Stair <sgstair@akkit.org>
Date:   Sun Feb 11 16:26:31 2018 -0800

    Emulation fix - Terminal now responds to input

commit ecff4035f3fdaa0329df46f99ccd516aa23ec8af
Author: Stephen Stair <sgstair@akkit.org>
Date:   Tue Feb 6 19:00:35 2018 -0800

    Hacky emulation of SMIOC

    now successfully receiving serial characters!

commit 376bca90dff311d24e1f5014d8d6f0dc297bf671
Author: Stephen Stair <sgstair@akkit.org>
Date:   Sun Jan 28 18:31:38 2018 -0800

    Experimenting with SMIOC emulation

* Partial fixes for line state issues with persistent line values

When the AM9517 DMA controller mode is updated to change the polarity of DACK/DREQ, it doesn't update the DACK line values / request values (respectively).
This fixes this issue for one of the emulated devices in the file, but the other device has the same problem.

* Add skeleton of SCC2698B UART device

* Early progress on emulating SCC2698B Octal UART

Core structure for IO lines and writing registers is in place.

* Update address maps to new format.

* SCC2698b: Add tx/rx, baud rate generation

* Emulation improvements for scc2698b device

* MPP output pins emulated
* Improved logging for baud rate changes
* Channel configuration emulated
* Support for TX/RX Enable
* Started integrating new features into SMIOC

* Minor progress on the path to enabling new UART for SMIOC

* Resolved code issues related to upstream changes
* Working around an apparent problem with callbacks on sub-device devices
* Terminal added for serial port attached to SCC2698B UART.
* Things compile and seem to work.

* SMIOC: Serial is now outputting correctly through emulated SMIOC

Some glitches to work out, but this is nearly ready.

* AM9517a should not forget about input line status on master reset.

* Disable tracing

* SMIOC: Improving diagnostics and making some progress on the emulation

* Revised tracing in SMIOC and SCC2698B
* Improved tracing approach in r9751
* Minor progress towards working SMIOC emulation.

* [R9751] Update drivers  to new code patterns after rebase

Rebased on latest mame, Fixed a few issues and updated the callback code patterns based on recent changes in devcb

* [R9751] Improve logging, fix interrupt race

Serial no longer drops output characters

* [R9751] Working on SMIOC emulation

Improved SMIOC emulation accuracy, Made some progress in getting through the disktool initialization sequence, but we are still hitting a problem - It looks like disktool should be resetting the SMIOC board when it starts, but the mechanism for this has not been found.

* [R9751] Improve tracing for system board registers

* [R9751] Improve SMIOC emulation

Still having some trouble with SMIOC but this seems to be an improvement.
SMIOC is now waiting for a status to be read before applying a new status, and mandatory parameter read logic is in place.

* [R9751] Incremental emulation improvements

the SMIOC failure was understood and fixed, and a new approach to getting the hardware to bootstrap correctly was implemented - Still having some problems with it though.

* [R9751] Fixed emulation issues

* Disktool now boots to the console
* UART receive only partly working, I don't think it's fully connected yet.

* [R9751] Further progress on SMIOC emulation

* Figured out the missing command parameter interface to the SMIOC board
* Still blocked because the SMIOC interface to the breakout board through an onboard 8051 is not emulated and the disktool software depends on properties coming from it.

* [R9751] Terminal is fully working for disktool

* Improved the emulation of the 80188 to 451 connection in order to reliably set a status bit disktool depends on.

* [R9751] Fix build after rebase

* [R9751] Cleanup, tracing improvements

* Remove second emulated terminal - SMIOC is now stable enough to run the terminal.
* Remove older and unnecessary emulation/tracing code

* r9751: Fix compile error and modify copyright holders
2018-10-24 20:16:35 -04:00
Patrick Mackinlay
cea5bbace4 z8038: new device (nw)
Zilog Z8038 FIO (FIFO Input/Output Interface Unit). Used to drive the parallel/printer port on the MIPS Rx2030. Passes basic diagnostic tests, but further work depends on progress in the mips.cpp driver.
2018-10-18 18:00:02 +07:00
AJR
c6900b12fd New machines marked as NOT_WORKING
----------------------------------
Scientific Instruments Model 5500 Temperature Controller [ClawGrip]
2018-10-12 22:45:15 -04:00
Sven Schnelle
395d6a93b1 mb87030: add new SCSI controller (nw) 2018-10-07 15:37:23 +02:00
mooglyguy
b159118e22 vii: Device-ified the SPG2xx SoC. [Ryan Holtz] 2018-10-06 20:45:03 +02:00
mooglyguy
27ee4f3915 -sun4: Added a sun4c MMU device. Currently wraps the functionality of S4-buffer, S4-cache, and S4-MMU, will eventually be split. [Ryan Holtz]
-sun4: Significant optimization, from 150% -> 330% unthrottled on an i7-5930K. [Ryan Holtz]
2018-09-22 19:41:10 +02:00
Patrick Mackinlay
895ffe0763 jazz: new skeleton driver (nw)
A skeleton for the Microsoft Jazz architecture, which was implemented in the MIPS Magnum 4000, Olivetti M700-10 and was the base/origin of several other MIPS ARC systems.
* added skeleton Inmos G300/G332/G364 device
* added skeleton NatSemi DP83932C SONIC device
* added skeleton MCT-ADR device
2018-09-20 18:08:59 +07:00
mooglyguy
a24d9ab6ae -am79c90: Added rudimentary AMD 79C90 LANCE ethernet controller support, enough to make sun4 happy. [Ryan Holtz] 2018-09-08 18:03:15 +02:00
Tomasz Slanina
403196c318 New Working Game
-------------------------------
Nightmare [Tomasz Slanina, Roberto Fresca, Jordi Beltran, Paco Ortiz, Recreativas.org]
2018-08-22 10:19:16 +02:00