summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu
Commit message (Collapse)AuthorAgeFilesLines
* srcclean and manual cleanup Vas Crabb3 days2-20/+18
|
* sonix16: Add ALU overflow test AJR4 days2-30/+24
|
* upd7810: fix SET_Z on OFFI/ONI instructions (#15343) goldnchild6 days1-80/+80
|
* sonix16: Fix order of calculations for carry flag in ALU operations; improve ↵ AJR7 days2-13/+38
| | | | flags display
* sonix16: Add preliminary execution core AJR7 days3-33/+745
|
* i86/i86.cpp: Emulate undocumented DIV/IDIV behavior for the 80(1)8x as ↵ arbee8 days1-6/+23
| | | | relied on by mpc60. [R. Belmont]
* nec/v5x.cpp: Correctly clock the V50/V53 DMAU based on the input clock. [R. ↵ arbee12 days1-1/+1
| | | | Belmont]
* ui: Improved media control experience, cleaned up a lot of bad code. Vas Crabb13 days4-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ui/imgcntrl, ui/floppycntrl.cpp: Completely reworked logic - backtracking through menus is more intuitive, and more context is retained when encountering an error (it should be a bit easier to follow the code as well). ui/floppycntrl.cpp: Don't show the initial content selection menu when opening an image to read from while writing to a separate file. ui/filecreate.cpp: Moved the logic to enumerate floppy formats into the menu, use headings and separators, use callbacks to notify when an item is selected, don't pop menus when an item is selected, avoid actual work in destructors. ui/midiinout.cpp: Fixed infinite growth when repopulating the menu, don't pop the menu when a port is chosen, use a callback to notify that a port is chosen, use headings and separators, and in informative placeholder if no ports are available. ui/filesel.cpp: Don't show the option to write to a floppy diff (it still isn't implemented, it can be re-added if it's ever implemented), don't pop the menus when selecting an item, avoid actual work in destructors. ui/filemngr.cpp: Show more detail in the info box below the menu for software items and presets, substantially simplified the code for walking media devices. ui/info.cpp: Got rid of the media information menu, added media information to the system information menu. ui/menu.cpp: Allow immediately adjusting the hovered item with pen/mouse, saving a click. emu/ioport: Fixed incorrect strings displayed for 4C_5C, 3C_4C, 2C_3C and 3C_5C. The array absolutely must stay in order. Also added an assertion to catch these errors early. emu/ioport.cpp: Use a much less gross method of handling default strings (apparently someone forgot about function overloading). emu/ioport.cpp: Retired the crosshair mapper member macros - they don't serve much purpose. util/zippath.cpp: Actually report a failure to open a plain file rather than looking for files inside non-existent archives, making every error turn into "file not found". formats/flopimg.cpp: Allow matching extensions on string object names, rather than requiring a NUL-terminated string.
* mcs51: Fix regression with sfr_map in derived classes AJR2026-05-081-1/+1
|
* looping: small cleanup to interrupts hap2026-05-061-1/+1
|
* hexa,brixian: increase ay clock (matches pcb videos) hap2026-05-061-1/+1
|
* ui/ui.cpp: Fixed variable name auto-complete gone wrong. Vas Crabb2026-05-041-1/+2
| | | | Also cleaned up a bunch of recent changes.
* src: fix a few non-canonical task tags angelosa2026-05-021-2/+4
|
* i8087: fix fprem1 cracyc2026-05-011-4/+12
|
* Current Plug & Play PR (1 working system, 1 nw system, 2 nw clones, 1 ↵ mamehaze2026-04-293-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | working softlist entry, 2 nw softlist) (#15282) New working systems ------------------- 50 in 1 Arcade Joystick [Team Europe] New working software list items ------------------------------- jakks_gamekey_wp.xml: Winnie the Pooh - Piglet's Special Day (3 Bonus Games) [Team Europe] New software list items marked not working ------------------------------------------ telestory_cart.xml: Winnie the Pooh - Salta, Tigro, Salta! / Winnie the Pooh - l'orsetto goloso (Italy) [Team Europe] Il Re Leone / Il Re Leone II - Il Regno Di Simba (Italy) [Team Europe] New systems marked not working ------------------------------ 2 en 1 Multi'Pilote (France) [Team Europe] New clones marked not working ----------------------------- My First Dance Dance Revolution (Japan) [Team Europe, David Haywood] Genius TV Progress (VTech, France) [Team Europe] - disabled some logging by default in unsp core [David Haywood] - added SPI FIFO support to GPCE4 [David Haywood] - added some missing timers to GPCE4 [David Haywood] - more properly factory defaulted digicolr data [David Haywood] - rewrote generic_spi_flash HLE code (used for transparently byte addressed SPI flash) ensuring it still works for Monon Color [David Haywood] - hooked up new code to st2302u_bbl_spi.cpp, removing local implementation and allowing retro150, retro150a, pg118, table108, ppg118, dphh8633, dphh8661 to show correct graphics [David Haywood] - hooked up new code to generalplus_gpce4 allowing mapacman to correctly check the device on startup rather than bypassing it [David Haywood] - added display on/off and sleep on/off to st7735_lcdc so that the screen will blank when requested [David Haywood] - added another 'inline attribute' XaviX video mode used by multiplt [David Haywood]
* Fix mem-mem MOV on i8089 (#15286) bytex642026-04-291-0/+2
| | | | | | The base register for memory operations was being fixed up to handle the PP register. But memory-to-memory MOVs act like two instructions, and the second half was being decoded ad-hoc without that fixup. This adds that fixup to the second half.
* 3rdparty: Retired softfloat2. (#15270) Patrick Mackinlay2026-04-286-643/+599
| | | cpu/i386, machine/i8087.cpp: Migrated to SoftFloat 3.
* m3745x: port arrays were the wrong size hap2026-04-244-15/+15
|
* upd7801: fix port C direction bits (#15232) Devin Acker2026-04-181-4/+8
|
* 3rdparty/asmjit: Sync with upstream version 1.21. (#15205) Patrick Mackinlay2026-04-092-2/+2
| | | From asmjit/asmjit@0bd5787b54b575ed94bf32ac452153b34385c514
* z8: Fix disassembly of opcode D7 (LD x(r2), r1 - indexed register write) ↵ Hannes Janetzek2026-04-071-1/+1
| | | | | | | | | | | (#15199) The register nibble roles were swapped and the operand order showed it as a read instead of a write. Both C7 and D7 encode byte 1 the same way (high nibble = r1, low nibble = r2). The only difference is operand order: C7 reads from indexed, D7 writes to indexed. Before: D7 DC 01 disassembles as "LD R12, 01h(R13)" After: D7 DC 01 disassembles as "LD 01h(R12), R13"
* Cleaned up unsupportable legacy stuff: Vas Crabb2026-04-063-7755/+2
| | | | | | | | | | | | | | | | | | | | cpu/drcbex86.cpp: Removed i686 recompiler back-end. Without a practical way to make Windows i686 builds, it's just going to rot. Also, x86-64 is now older than Pac-Man was when MAME was initially created. It's dead on the desktop tools: Removed aueffectutil - it's no longer useful. emu/video/rgbutil.cpp: Removed Altivec/VMX bilinear filtering implementation. PowerPC on desktop is dead. file/posixptty.cpp, sdl, sdl3, scripts: Removed support for SysV operating systems. They’re dead on the desktop. scripts: Removed outdated Lua compatibility macros. They weren't doing anything sice we updated to Lua 5.4 (the compatibility options changed, but we just left the old macros in place, which no longer had any effect).
* h8_sci: correct m_ssr_read logic hap2026-04-051-1/+5
|
* h8_sci: add todo note hap2026-04-0517-59/+51
|
* sinclair/specnext.cpp: Refactored NMI handling. (#15086) holub2026-04-052-10/+0
|
* Various cleanups: Vas Crabb2026-04-045-151/+169
| | | | | | | | | | * emu/device.cpp: Take std::string_view tag in constructor. * emu/save.cpp: Cleaned up interface for reporting error messages. * docs: Cleaned up stuff that's no longer relevant. * machine/s3c44b0.cpp: Overhauled logging. * osd/modules/lib/osdobj_common.cpp: Removed CoreAudio options that no longer do anything. * Cleaned up some more stuff to prepare for 64-bit offs_t.
* cpu/powerpc: Fix several errors in the 601 legacy POWER instructions [R. ↵ arbee2026-04-021-14/+10
| | | | | | | | | | Belmont] - DOZI: the immediate value needed to be sign-extended, an unsigned comparison was used where signed is correct, and the operation is a subtract, not an add - DOZ: same errors as DOZI minus the sign extension since there's no immediate involved - ABS/NABS: fix the condition register update - MASKIR: flag update was trashing the result register and CR0 wasn't updated - Also fixed a typo in a comment for DIVWx (code was correct)
* m680x0: only allow one fault per instruction at a time (#15175) Patrick Mackinlay2026-03-311-0/+4
|
* cpu/tlcs900/tmp94c241_serial.cpp: Let's not break encapsulation and add ↵ Vas Crabb2026-03-304-67/+118
| | | | | | gratuitous circular dependencies. Also cleaned up some other stuff.
* bus/centronics: Add NEC PC-6022 plotter [Devin Acker] (#15162) Devin Acker2026-03-284-118/+146
|
* Fixed things C++20 doesn't allow: Vas Crabb2026-03-296-73/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ui/info.cpp, imagedev/cassette.cpp: Deal with UTF-8 strings as a distint type. ui/inputmap.cpp, debugger/qt/dasmwindow.cpp, debugger/qt/mainwindow.cpp, sound/coreaudio_sound.cpp, cpu/drcbec.cpp, mit/tx0_v.cpp, konami/3dom2.cpp: machine/mc68328.cpp, cpu/mips/mips1.cpp, cpu/mips/r4000.cpp, cpu/romp, machine/cammu.cpp, machine/ns32081.cpp: Avoid arithmetic between different enum types. dec/pdp1.cpp, konami/firebeat.cpp, mit/tx0.cpp, sound/lc7535.cpp, sound/spkrdev.cpp: Avoid arithmetic between enum and floating point. gaelco/gaelco3d_m.cpp: Fixed deprecated uses of volatile variables. sound/discrete.h: Avoid comparing enum to floatint point. ui/toolbar.ipp: Don't use UTF-8 qualifier on pure ASCII strings, just assume char is ASCII-like. cpu/unsp: Use default constructor for compiler_state. sgi/pm2_mmu.cpp: Avoid conflict between file static access and identically named function in unistd.h. osd/interface/audio.h: Provide an explicit constructor. util/server_http_impl.hpp: Fixed uninitialised class member warning.
* mcs51: Change address space names to resemble those used by Intel's tools AJR2026-03-274-100/+93
|
* bus/pci/sis6326.cpp: add shifter behaviour on High/True Color depths angelosa2026-03-251-1/+1
|
* Fixed various things that C++20 doesn't allow: Vas Crabb2026-03-251-8/+6
| | | | | | | | * cpu/i386/i386dasm.cpp, frontend/mame/infoxml.cpp, dec/pdp1_v.cpp: Avoid arithmetic between different enum types. * frontend/mame/cheat.cpp: Default-construct XML parser options. * emu/validity.cpp: Avoid use of volatile assignement result as value. * ui/devopt.cpp: UTF-8 strings will use a distinct character type.
* cpu/i386/i386.cpp: add CPUID brand ID for Pentium 3 and 4 angelosa2026-03-233-0/+5
|
* Ran srcclean across the source. Vas Crabb2026-03-223-6/+6
|
* m6502: route core fetch/data/write paths through interruptible accesses (#15121) Stuart Inglis2026-03-2015-110/+128
| | | | | | | * m6502: route core fetch/data/write paths through interruptible accesses * m6502: add interruptible access regression test * m6502: narrow interruptible access follow-up
* m68008: Update SR only after popping both stack bytes on RTE. (#11288) ↵ Curt Coder2026-03-195-23977/+23965
| | | | [Olivier Galibert, Curt Coder]
* w65c02, w65c02s, etc.: De-virtualize SBC implementation AJR2026-03-187-31/+37
|
* m6502: small refactor to do_sbc_d to make it easier to see the difference ↵ hap2026-03-182-3/+7
| | | | between nmos/cmos
* cpu/m6502: Modify SBC decimal adjust algorithm for 65C02, which differs from ↵ AJR2026-03-183-1/+22
| | | | NMOS 6502 in edge cases. Allows 6502test.ssd (from mungre/beeb6502test repository) to pass test BCD-FC on bbcm.
* tmp94c241: Add serial port sub-device with I/O interface mode (#15015) Felipe Corrêa da Silva Sanches2026-03-174-136/+522
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tmp94c241: Add serial port sub-device with I/O interface mode Replace the inline serial stubs (which just instantly set TX-complete) with a proper sub-device implementation supporting: - I/O interface mode (mode 0): Synchronous clocked serial using SCLK pin. Supports both internal (baud rate generator) and external (IOC=1) clock sources. TX double buffering with auto-load from buffer to shift register. Pre-outputs bit 0 on TXD before first clock edge so receiver can sample it on the rising edge. - Baud rate generator: Configurable via BRxCR register with divisor and clock source selection. Timer drives SCLK at the configured rate. Clock frequency derived from CPU clock. - TX/RX data callbacks: txd(), rxd(), sclk_out(), sclk_in() for connecting external devices to the serial ports. - tx_start callback: Signals the start of each byte transmission with the current PFFC pin function state, allowing connected devices to distinguish real transmissions from phantom ones. The serial registers (SC0BUF/SC1BUF, SC0CR/SC1CR, SC0MOD/SC1MOD, BR0CR/BR1CR) are now delegated to the sub-devices in the internal memory map. TX-complete flags (INTES0/INTES1 bit 7) are set at device_reset to indicate empty TX buffers at power-on. UART modes (7/8/9-bit) are recognized but not yet implemented. Also moves interrupt register indices from a file-scope enum to public static constexpr members of tmp94c241_device. * tmp94c241: move irq vector map to static const class member Per galibert's review suggestion: defining the IRQ vector table as a static const member of tmp94c241_device and providing the out-of-class definition in class scope allows the INTE* constants to be referenced without tmp94c241_device:: qualifiers in the initializer. The nested struct is named irq_vector_entry. NUM_MASKABLE_IRQS is replaced by std::size(irq_vector_map) directly at each use site inside member functions. * tmp94c241: use enum for public interrupt index constants * tmp94c241: use required_device for serial sub-device parent access Replace dynamic_cast with required_device<tmp94c241_device> using DEVICE_SELF_OWNER to access the parent CPU from the serial sub-device. This provides automatic type checking during MAME's -valid pass. Break the circular header dependency by replacing the #include of tmp94c241_serial.h in tmp94c241.h with a forward declaration, and having tmp94c241_serial.h include tmp94c241.h instead. The .cpp files include what they need directly. Addresses review feedback from galibert on PR #15015.
* Some prep work for extending offs_t to 64 bits. [Vas Crabb, Ryan Holtz] Vas Crabb2026-03-1819-123/+153
| | | | | | | | | | | This covers some of stuff highlighted in #14689 where the approach to apply is reasonably obvious and the changes are harmless when offs_t doesn't change size. Most of this is being more strict with offs_t vs uint32_t and switching to type-safe formatting functions. Also renamed gaelco/gaelcof3.cpp to gaelco/futbol3.cpp since the company name is in the project name anyway.
* z80,6502,i86: no need for that m_reset_time local variable hap2026-03-156-15/+5
|
* fix(sh7604): fix three register access bugs (#15101) JOTEGO2026-03-141-3/+3
| | | | | | | - vcrd_w: read m_vcrd instead of m_vcrc for FOV interrupt vector - dmaor_w: use (old & data & 6) so AE/NMIF flags can actually be cleared - vcrb_r: mask reserved bits 15 and 7 with 0x7f7f, matching vcra/vcrc/vcrwdt Co-authored-by: Jose Tejada <jose.tejada@analog.com>
* sh/sh7709s.cpp: Fix LRU cache replacement updates (#15098) Jesus Ramos2026-03-141-2/+2
| | | Only update LRU values greater than the current LRU value on cache hit
* z80,6502,i86: don't accept nmi at reset time hap2026-03-146-32/+39
|
* cpu/sharc/compute.hxx: More detailed floating point mulitply and add/sub ↵ Vas Crabb2026-03-133-151/+161
| | | | | | | | | emulation for interpreter. Set MV, MU and MI flags and corresponding sticky flags for multiplication. Flush denormals to zero and set AV flag (and corresponding sticky flag) for dual add/subtract. More detailed NaN handling for both.
* sh/sh7709s.cpp: Update bank conflict precharge penalty timing (#15087) Jesus Ramos2026-03-122-12/+28
| | | | | | | | Handle the precharge of the last active bank in the background and only pay the penalty on a bank conflict and only pay the remainder of the wait cycles that haven't elapsed since the last access Update the read->write wait penalty time for dirty writeback eviction since wcr1 should contain that value
* g65816: XBA always takes 3 cycles (#15088) arekkusu422026-03-121-1/+1
|