summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu
Commit message (Collapse)AuthorAgeFilesLines
* Revert "ioport: set disable_side_effects on internal frame update (eg. if ↵ Vas Crabb8 days1-1/+0
| | | | | | | | | | | | reading an input port triggers an irq, MAME's frame update shouldn't affect it)" This reverts commit f695e757c57f29ab4a220ff03a4b847e0f9c9530. I/O ports are for reporting the state of a set of input lines. If a custom input member has side effects, it's broken. Use a read callback of some kind (read handler, delegate, devcb, etc.) instead. Allowing or encouraging I/O ports with read side effects breaks too many assumptions.
* ioport: set disable_side_effects on internal frame update (eg. if reading an ↵ hap8 days1-0/+1
| | | | input port triggers an irq, MAME's frame update shouldn't affect it)
* ui: Improved media control experience, cleaned up a lot of bad code. Vas Crabb13 days4-48/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* dvmemory: redo 47377bfe7a49cf301957cc90f6ac5f08a59c503c hap2026-05-033-12/+4
|
* ui: Added options to pause when showing menus and to open menus in active ↵ Vas Crabb2026-05-034-48/+49
| | | | | | | | | | | | | window. * ui/ui.cpp: Dim all windows when paused. * ui/ui.cpp, menu/menu.cpp, ui/viewgfx.cpp: Broke assumption that UI elements will be drawn in the first window. * menu/menu.cpp: Allow menus to migrate between windows on activation. * ui/ui.cpp, ui/moptions.cpp, ui/submenu.cpp: Added an option to automatically pause when a menu is displayed. * Added an option to open menus in the most recently active window (alos affcts the profiler, speed display and popup messages).
* namcos21: tweak video timing and some other clocks hap2026-04-301-1/+2
|
* (emu.h) dimemory: add remove_addrmap hap2026-04-291-0/+1
|
* emu/debug/dvmemory.cpp: Recomputing memory view based on evaluated start ↵ holub2026-04-262-1/+9
| | | | address value. (#15251)
* emu/disound.cpp: Improved calculation of sound_requested_outputs_mask. (#15260) m1macrophage2026-04-261-2/+3
| | | Ensures m_sound_requested_outputs_mask is updated even if a device's add_route(output_index, ...) calls don't happen in the order of output_index.
* screen: fix possible issue with update_partial hap2026-04-241-3/+3
|
* screen: correction to update_partial(scanline) logic after prev commit hap2026-04-231-4/+10
|
* screen: add support for update_partial(vpos,hpos) hap2026-04-233-34/+37
|
* sound: fix a convergence problem when a rate-adaptive stream is not connected Olivier Galibert2026-04-071-2/+2
|
* Cleaned up unsupportable legacy stuff: Vas Crabb2026-04-062-240/+1
| | | | | | | | | | | | | | | | | | | | 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).
* Fix up more stuff for upgraded tools, etc. Vas Crabb2026-04-041-16/+16
| | | | | | | | | | | docs: It's no longer possible to get a working Qt 5 setup with MSYS2, and there's no 32-bit Qt 6 package. Updated docs to reflect this. Use Qt 6 on Windows, use qmake to find moc. Fixed linking on Windows with static SDL3. input/input_dinput.cpp: Support SDL3.
* Various cleanups: Vas Crabb2026-04-045-42/+32
| | | | | | | | | | * 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.
* scripts/genie.lua: updated clangcl build settings to c++20 Patrick Mackinlay2026-04-031-2/+0
| | | | emu/sound.h: removed unused function declarations
* Eliminated many temporary std::string objects. Vas Crabb2026-04-0315-61/+60
| | | | | | | Also updated compiling documentation. Mentioned the possibility to use the x86-64 clang/libc++/ucrt environment with MSYS2 on Windows. Removed link to tools at mamedev.org - it's trivially easy to get an up-to-date MSYS2 environment by following the instructions.
* Switched language standard to C++20, bumped compiler requirement to GCC 11. ↵ Vas Crabb2026-04-023-9/+15
| | | | | | | | | | | (#15182) * Hackery to allow UTF-8 strings as well as plain strings: - emu/ioport.h: Allow char8_t for names in field configuration helper. - emu/device.h, emu/gamedrv.h: Allow char8_t for descriptions and manufacturers. - util/language.h: Allow char8_t message input. * util/strformat.h: Allow char8_t format and string arguments with char output. * ui/videoopt.cpp: Deal with UTF-8 strings as a distinct type. * osd/windows: Assume Windows 8 or later.
* emu/gamedrv.h, emu/device.h: Allow source and manufacturer strings to be ↵ Vas Crabb2026-03-292-31/+45
| | | | | | | | deduplicated. This increases coupling between the "traits" classes generated for driver/device definitions and the device type implementation class, but it noticeably reduces static data size for MAME as a whole.
* jaminator, beena, tvochken: Fix slot option name clash AJR2026-03-251-0/+8
| | | | * emu/dislot.cpp: Add special validity check for driver-level slots to prevent image and slot names from colliding
* Fixed various things that C++20 doesn't allow: Vas Crabb2026-03-251-190/+346
| | | | | | | | * 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.
* -emu/dislot.cpp: Cleaned up interface. Vas Crabb2026-03-2211-180/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added a helper for the common operation of replacing all options, setting default, and setting whether the slot is fixed (reduced boilerplate in slot devices a bit). * Fixed a bug where slot options copied the supplied name but also required the string to remain valid for their lifetime. * Use std::string_view for strings that should never be null. * Reduced some duplication. -dynax/ddenlovr.cpp: Allow a mahjong panel to be connected for all hanafuda games with slotted control panels. This is how the games were operated most of the time, and all mahjong controls are displayed in input tests. Also cleaned up some DIP switch settings. -emu/inpttype.h: Got rid of IPT_GAMBLE_SERVICE. -bus/bk/parallel.h: Fixed a bug where the supplied options and default weren't actually used. -emu/debug/debugcmd.cpp: Use C++ file stream for dumping address maps. -frontend/mame/clifront.cpp: Use osd_printf_info output for interactive verbs. -jaleco/ms32.cpp: Simplified mahjong panel column permutation. -capcom/cps1bl_5205.cpp, mattel/juicebox.cpp, sun/sun2.cpp, sun/sun3.cpp: Cleaned up logging. -emu/xtal.cpp: Reduced temporary objects and duplicated code.
* -dynax/ddenlovr.cpp: Use slotted control panels. Vas Crabb2026-03-201-5/+39
| | | | | | | | | | | | | * This is most useful for the games that can support several panel types, especially when the hanaroku panel is supported. * Added preliminary support for Hanafuda Hana Gokou joystick controls, improved some DIP switch settings a little. * emu/inpttype.ipp: Added 3P and 4P hanafuda controls, moved some gambling controls to the "other" group. * shared/mahjong.cpp: Added a simple slot system for standard mahjong and hanafuda matrix panels (up to 6*6). -konami/kontest.cpp: Only loop over 8*8 blocks that need to be drawn.
* tilemap: set all scroll rows/cols on single param scrollx/y hap2026-03-191-2/+3
|
* misc: normalize blue palette hap2026-03-162-5/+5
|
* z80,6502,i86: no need for that m_reset_time local variable hap2026-03-151-3/+3
|
* screen: fix configure issue if main-mcfg doesn't use set_raw and sub-mcfg does hap2026-03-131-0/+1
|
* sound: forward audio latency setting to abuffer hap2026-03-111-10/+10
|
* sound abuffer: after overflow, reduce buffers to 1 instead of clear hap2026-03-111-1/+1
|
* sound: change abuffer resync to more abrupt hap2026-03-111-8/+6
|
* ui: include fastforward in unthrottle_mute, hap2026-03-111-30/+21
| | | | sound: don't send sound to osd if mute reason is ui related
* emu/diimage.cpp: Notify on changing preset images. Vas Crabb2026-02-271-5/+13
| | | | ui/filemngr.cpp, ui/prscntrl.cpp: Fixed some cosmetic issues.
* misc/statriv2.cpp: got rid of tag lookups, made use of derived classes and ↵ Ivan Vangelista2026-02-241-0/+1
| | | | other small cleanups
* srcclean and tidy Vas Crabb2026-02-221-1/+1
|
* Miscellaneous fixes: Vas Crabb2026-02-211-2/+6
| | | | | | | | | * cpu/drcbec.cpp: Work around older clang that doesn't support the floating point environment access pragma. * machine/i8251.cpp, emu/audio_effects/reverb.cpp: Fixed uninitialised data accesses. * sega/model2.cpp: Use 8251 ready output line status rather than pretending to be able to read the status register asynchronously.
* emumem_mview: remove extra negative check after prev commit hap2026-02-161-5/+2
|
* emumem_mview: on switch, do nothing if selected slot is same as before hap2026-02-161-11/+18
|
* cpu/sharc: Improved memory access code: Vas Crabb2026-02-111-5/+8
| | | | | | | | | | | | | | | | | | | | | | cpu/sharc/sharcdrc.cpp: Exploit data memory layout to bypass the memory system for both 32-bit and 16-bit SRAM accesses. cpu/sharc/sharcdrc.cpp: Exploit the way the SHARC toolchain lays out executable code and data in SRAM to greatly reduce unnecessary cache flushes. cpu/sharc/sharcdrc.cpp: Implemented Rn = NOT Rx (used by Sega Model 2B games). cpu/sharc/sharcdrc.cpp: Align 32-bit program memory accesses with the most significant bit of the bus (corresponds to interpreter change in 0f368c268c1eabc176af8e5cdf780b5d60e8d9a0 from GitHub #13770). emu/debug/points.cpp: Fixed hang when a watchpoint is hit on a 64-bit wide address space with word addressing. sega/model2.cpp: Enabled SHARC recompiler for Model 2B (can be disabled again before release if too many things are broken).
* inpttype: add p4 analog direction control defaults hap2026-02-081-14/+14
|
* emu/debug: Allowed device_state_interface to participate in global symtable ↵ holub2026-02-063-27/+34
| | | | state (#14898)
* sound: alternate method for checking if machine is not yet running hap2026-02-041-2/+2
|
* emu/romentry.h: constexpr at namespace scope implies static for variables ↵ Vas Crabb2026-02-041-52/+52
| | | | and inline for functions; util/palette.h: Don't use reserved _Names.
* romload.h: Fix typo in e6bc966bed649c05a03755ca5f2848d9cef7d1f1 AJR2026-02-031-1/+1
|
* romentry.h: Replace various macros with constexprs and inline functions; ↵ AJR2026-02-032-67/+71
| | | | mark ROM_OPTIONAL as deprecated
* (emu.h) inpttype: remove barely used IPT_TILT1/2/3/4, combine ↵ hap2026-02-033-29/+6
| | | | IPT_GAMBLE_DOOR with IPT_INTERLOCK and rename to generic IPT_DOOR
* Revert "Miniforce and CPU1 (#14873)" Vas Crabb2026-02-011-113/+0
| | | | | | | | | | | | This reverts commit 6cb0ec64ac8608c4bcf864807495f91c55db3653. This seems to have been done with a lack of understanding of how things work. A fake output based on tag string comparisons is definitely not a good way to do things. Views with hard-coded screen tags for a single slot device aren't a great idea either, given MAME provides a variety of emulated terminals. The whole thing is just misguided.
* Merge commit '24658d27e85' into HEAD Vas Crabb2026-01-3012-88/+175
|\ | | | | | | | | Merging MAME 0.285 release branch with workarounds reverted into mainline master.
| * emu/romentry.cpp: Found another thing that needs to use the "classic" locale. Vas Crabb2026-01-271-4/+6
| |
| * emu/debug: Use "classic" locale for debug console. Vas Crabb2026-01-2711-84/+169
| |