summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
Commit message (Collapse)AuthorAgeFilesLines
* z80/z80make.py: Revisited z80 code generator (#13573) holub14 days6-113/+221
| | | | | * z80/z80make.py: Revisited z80 code generator * cpu/z80/t6a84.cpp: isolate device specific callbacks
* sound/dac76.cpp: Emulating multiplying capability. (#13577) m1macrophage14 days2-4/+91
| | | | | | * Added support for reference current (multiplying capability). * Added support for voltage output. * Added support for streaming reference current. * Used those capabilities in oberheim/dmx.cpp and linn/linndrum.cpp.
* Fix cases where specific segment register settings could cause the ↵ Lord-Nightmare2025-04-091-4/+4
| | | | i80186/188 peripherals to fail to be properly mapped into memory space. [crazyc, Lord Nightmare]
* cpu/drcbex86.cpp: Fixed flags for 64-bit multiply instructions. Vas Crabb2025-04-101-24/+22
|
* cpu/drcbearm64.cpp: Don't clear carry for ROLC/RORC with zero shift count. Vas Crabb2025-04-101-10/+14
|
* Still more recompiler fixes: Vas Crabb2025-04-104-322/+199
| | | | | | | | | | | | | * cpu/uml.cpp: Fixed some cases where simplifying multiplication instructons incorrectly changed output flags. * cpu/drcbex64.cpp: Fixed some cases where a ROLC/RORC with zero shift count could incorrectly clear the carry flag. * cpu/drcbex86.cpp: Made 64-bit ROLC/RORC with zero bit count preserve the carry flag. * cpu/drcbec.cpp: Fixed FSMOV/FDMOV turning things that look like signalling NaNs into quiet NaNs on i686. * cpu/drcbex64.cpp: Greatly reduced copy/paste in the code generation for multiply instructions.
* cpu/uml.cpp: Fixed assertion failures when simplification reduces operand count. Vas Crabb2025-04-093-146/+48
| | | | | | * Also added a few more simplifications. * cpu/drcbearm64.cpp, cpu/drcbex64.cpp: Removed more speical cases for things the simplifier deals with.
* machine/dp83932c.cpp: Advance CRBA on packet RX (#13571) Brice Onken2025-04-091-2/+8
|
* -A few recompiler adjustments: Vas Crabb2025-04-094-75/+33
| | | | | | | | | | | * cpu/drcbec.cpp: Don't clear carry flag on a zero-bit rotate through carry. * cpu/drcbex86.cpp: Don't clear carry flag on a word-sized zero-bit rotate through carry (64-bit case is more involved). * cpu/drcbex64.cpp: Removed code for another special case of ROLAND that the simplifier deals with. -konami/ksys573.cpp, bus/pccard/linflash.cpp: Corrected "Gacha Gachamp".
* sound/va_eg.cpp: Fixing subtle bugs. (#13570) m1macrophage2025-04-092-20/+30
| | | | * Actually take a voltage snapshot when R or C change. This was being attempted, but didn't work because set_target_v would exit early if the target V was not changing. Made the snapshoting more explicit. * Consider the EG done based on elapsed time, instead of proximity to target value. Some low volume DMX sounds were affected by this.
* stern/mazerbla.cpp, video/mb_vcu.cpp: Updates/Cleanups: (#13569) cam9002025-04-092-272/+246
| | | | | | | | | | | | | | * video/mb_vcu.cpp: - Implement device_palette_interface for palette functionality. - Use an address space finder to access the host address space. - Use logmacro.h helpers for configurable logging. - Added a VRAM addressing helper. - Suppress side effects for debugger reads. - Cleanup 2bpp graphics drawing and screen update function. * stern/mazerbla.cpp: - Reduced run-time tag lookups and preprocessor macros. - Reduced duplication and unnecessary trampolines. - Updated comments.
* video/ppu2c0x*.cpp: Implemented device_palette_interface and cleaned up ↵ cam9002025-04-096-361/+321
| | | | | | | | code: (#13491) * Implement device_palette_interface for color palette functionality. * Added some missing members to save states, and use fixed-size integer types for members that need to be saved. * Moved many internal functions into protected: and private: sections. * Use more appropriate integer types, made many local variables const.
* ussr/dvk_kcgd.cpp: Corrected CPU type to K1801VP065 and removed serial speed ↵ shattered2025-04-091-7/+7
| | | | | | workarounnd for MS7004 keyboard. (#13564) * machine/ie15_kbd.cpp: Reassigned keys on the IE15 keyboard to match the layout of a VT52 keypad. * ussr/ms0515.cpp, ussr/dvk_ksm.cpp: Removed keyboard serial speed workaround.
* -emu/schedule.cpp: Restore timers expiring at the same time in the order ↵ Vas Crabb2025-04-094-79/+85
| | | | | | | | | | they were scheduled when loading a saved state. -emu/diexec.cpp: If a shorter input line pulse overlaps a longer pulse, don't shorten the pulse. -cpu/e132xs: Added named input line number constants. -video/sprite.cpp: Got rid of simple_list and fixed_allocator.
* i8085 core: Readded the TODO item about the DSUB H flag verification. Roberto Fresca2025-04-081-0/+1
|
* diexec: remove duplicate getter hap2025-04-084-4/+4
|
* cpu/powerpc: Fixed issues in POWER div (signed divide) instruction causing ↵ Vas Crabb2025-04-081-5/+10
| | | | | | | | | | GitHub #13329. This was "working" on x86-64 due to the backend treating shift/rotate instructions with zero immediate bit count as a no-op even if the source and destination registaer aren't the same. Fixing the bug in the back-end caused it to break the same way on x86-64 as it does on the other three back-ends that didn't have this bug.
* -cpu/uml.cpp: Rewrote the UML simplification code. Vas Crabb2025-04-085-615/+957
| | | | | | | | | | | | | | | | | | | * Fixed many cases that could cause the upper bits of a register not to cleared following a 32-bit operation. * Added more simplifications. * Allow many simplifications when flag updates are requested. * Fixed various bits of unreachable code. * cpu/drcbearm64.cpp, cpu/drcbex64.cpp: Removed code for special-casing some situations the simplifier can now take care of consistently. -cpu/drcbex64.cpp: Fixed a bug causing some shifts to be treated as a no-op when the destination and source are not the same. -cpu/drcbearm64.cpp, cpu/drcbex64.cpp: Added a special case for comparing something to itself. -cpu/e132xs: Use the CARRY instruction rather than a right shift to set up carry in.
* i8085: remove myself from copyright holders, does not match my criteria hap2025-04-072-3/+3
|
* i8085 core: Take out from the TODO list the item related to Roberto Fresca2025-04-071-2/+1
| | | | the undocumented DSUB H flag verification.
* i8085: small cleanup hap2025-04-071-62/+62
|
* i8085: no need for a diagram on how a rotate opcode works hap2025-04-071-17/+12
|
* Paracaidista driver and i8085 core improvements: [Roberto Fresca, Grull Osgo] Roberto Fresca2025-04-071-15/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | - Working RAM through PPI 8155 internal RAM and handlers. - Extended the PPI 8166 to support the 14bit timer + 2bit control. - Hooked the i8257 DMA controller. - Demuxed the digital inputs. - Adjusted screen visible area. - Worked the DMA support to get registers in the correct addressing. - Hooked the analogic inputs. - Added inputs for two players. - Added DIP switches for coinage, difficulty, and lives. - Added and demuxed spinner controls. - Added NVRAM support. - Sound support. - Adjusted the spinners parameters to general purpose. - Sound level control circuitry. - Wired players lamps. - Added technical notes. - Rewrote the enhanced no documented i8085 RDEL & DSUB instructions and their own flags. Systems promoted to working --------------------------- Paracaidista [Roberto Fresca, Grull Osgo]
* Fixed a few issues and cleaned up code in Hudson Soft PC Engine component ↵ cam9002025-04-077-504/+495
| | | | | | | | devices: (#13493) * sound/c6280.cpp: Improved accuracy of volume control and LFO. * video/huc6260.cpp: Suppress side effects for debugger reads, fixed save state issues. * video/huc6270.cpp: Suppress side effects for debugger reads. * Chose better types for member variables, made more local variables const, reformatted code.
* video/gba_lcd.cpp: Implement device_palette_interface rather than ↵ cam9002025-04-072-6/+10
| | | | instantiating a separate palette device. (#13481)
* konami.lst: correction to prev commit with shift count hap2025-04-061-10/+10
|
* -cpu/e132xs: Use word addressing for I/O. Vas Crabb2025-04-076-62/+64
| | | | | | | | | | * There are no byte enable or write strobe signals for I/O, and there's only a single operand size, so word addresses make more sense. * Also changed STBS/STWS to allow any valid signed or unsigned value of the applicable size. This allows vamphalf attract mode to work as well as the storage test. -misc/limenko.cpp: Better input types for spotty.
* konami cpu: shift amount for the extra shift opcodes is 4-bit [Jim Westfall] hap2025-04-061-5/+5
|
* konami cpu dasm: be consistent with uppercase data and reg names, renamed ↵ hap2025-04-062-107/+107
| | | | some opcodes
* cpu/e132xs: Changed STBS and STHS to do an unsigned range check. Vas Crabb2025-04-063-28/+43
| | | | | * Fixes vamphalf storage test. * Also fixed IO3 wake from power down.
* -cpu/e132xs: Fixed I/O for models with 16-bit external bus. Vas Crabb2025-04-066-197/+453
| | | | | | | | | | | | | | | * Only a single I/O access is generated for an I/O word read/write. The upper half just disappears if the pins aren't present. This fixes "phantom" I/O accesses, allowing address maps to be cleaned up a bit. * Reduced I/O address width for models with 16-bit external bus to match hardware. * Made addressing consistent between interpreter and recompiler for I/O double-word accesses. * Implemented power down via internal I/O write for E1-X and later cores (none of the games I tested actually use it). -misc/pasha2.cpp: Enabled the recompiler for Zooty Drum - it gets just as far as the interpreter now.
* cpu/z80: Improved z80 code generation (#13558) holub2025-04-0510-34/+25
|
* cpu/e132xs: Improved comment about model differences. Vas Crabb2025-04-051-21/+40
|
* cpu/e132xs: It's rather important to initialise DRC handle pointers. Vas Crabb2025-04-051-0/+1
|
* cpu/e132xs: Untangled device types. Vas Crabb2025-04-055-299/+608
| | | | | | | | | | | | | | * Got package option (T, N or B suffix) out of device type. * Enabled 4x PLL clock multiplier for GMS30C2216/GMS30C2232. * Implemented entering power down mode via MCR for E1 and E1-X cores. * Marginally better code generation for a few instructions. * Log available bus/memory configuration options for different cores. * Added post load handler for E1-XS and E1-XSR cores to install SDRAM mode/configuration handlers if necessary. * Improved comment about different Hynix and Hyperstone CPU models. -cpu/drcbearm64.cpp: Don't update flags that aren't requested in a few places.
* pc_vga: only set the ramdac color when all three values are written cracyc2025-04-043-23/+16
| | | | ega: the mask only applies to the latch not the vram
* cpu/z180/z180.cpp: Fix filename in comment (#13555) cam9002025-04-031-1/+1
|
* konami cpu: set EXG/TFR reg A high byte to 0x10 hap2025-04-032-12/+4
|
* -cpu/e132xs: Got rid of "Mission Craft flags" compile time option. Vas Crabb2025-04-046-729/+681
| | | | | | | | | | | | | | | | | | | | | | | * Assume ROL sets the V and C flags the same way as SHL and MOVI clears the V flag. -cpu/drcbex64.cpp: Optimise SUB x,0,y to a NEG instruction (gets down to one instruction from two or three a lot of the time). This had been a TODO comment for ages. -cpu/drcbex86.cpp: Got rid of unnecessary std::function use. This substantially reduces the code size and reduces allocations during code generation. -cpu/drcbearm64.cpp, cpu/drcbex64.cpp, cpu/drcbex86.cpp: Got rid of the intermediate tables in favour of bit switch statements. This improves startup time, reduces code size, and gives the compiler more optimisation opportunities. -cpu/drcbearm64.cpp, cpu/drcbex64.cpp, cpu/drcbex86.cpp: Got rid of asmjit namespace qualifiers left over from when the class declarations were in headers and hence outside the scope of the using namespace statements.
* cpu/drcbearm64.cpp: orr immediate needs a mask immediate. Vas Crabb2025-04-032-2/+2
|
* konami cpu: corrections to EXG/TFR opcode [hap, Jim Westfall] hap2025-04-023-46/+58
|
* cpu/drcbearm64.cpp: Fixed build after previous commit. Vas Crabb2025-04-031-1/+1
| | | | Sorry, I'm too tired and didn't git add this. My bad.
* -cpu/e132xs: Miscellaneous fixes/optimisation: Vas Crabb2025-04-036-295/+411
| | | | | | | | | | | | | | | | | | | | | * Fixed behaviour of delayed branches, trace exceptions, and saved PC calculation for error exceptions in delay slots for the interpreter. All instructions in delay slots, branching instructions that can raise exceptions and tracing shoud now (mis)behave properly for the interpreter, including things the manual says you shouldn't do. * Fixed and optimised flag updates for left shifts for the recompiler. * Optimised ROL instruction for the recompiler and made flag calculation equivalent to the interpreter both with and without the "Missioncraft flags" compile-time option. * Only block interrupts for one instruction following a delayed branch. * Optimised the SOFTWARE instruction a little for the recompiler. * Added more SDRAM configuration logging and cleaned up code a bit. -cpu/drcbearm64.cpp: Apply the change from 7efe37938f9dd6a366e to OR and XOR instructions as well, and fix some cases where a 32-bit logical operation would fail to clear the upper bits of a register. -cpu/drcbex64.cpp: Avoid more conditional branches on conditional MOV.
* Add a skeleton for an Oldsmobile Driver Information System (#13525) Devin Acker2025-04-023-1/+27
| | | | | | * New NOT_WORKING machine ---------- Oldsmobile Driver Information System (version 2.2 CH) [Devin Acker]
* bus/mmc5.cpp: Fix IRQ (#13547) cam9002025-04-021-1/+1
|
* Implemented VA EG (Envelope Generator) and VCA (Voltage Controlled ↵ m1macrophage2025-04-024-0/+320
| | | | | | | | | | | | | | | | Amplifier) sound devices. (#13545) * sound/va_eg.cpp, sound/va_vca.cpp: Envelope generator and voltage-controlled amplifier. Implemented RC-based envelope generator and voltage-controlled amplifier devices. Replaced custom implementations in paia/fatman, linn/linndrum and oberheim/dmx. * Fixing comments. * More comment fixes. * Adding comments based on feedback. * Fixed typo.
* x68k: add CZ-7BS1 dma glue logic Patrick Mackinlay2025-04-024-6/+63
|
* hd63450: add primitive /own and /dtack support Patrick Mackinlay2025-04-022-6/+24
| | | | * also improve auto-request mode logic
* - consistent logging order for status (#13546) Adam Billyard2025-04-021-4/+4
| | | Co-authored-by: Adam <adam@light-up.co.uk>
* mb86233: add /3 clock divider hap2025-04-013-6/+7
|