summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib
Commit message (Collapse)AuthorAgeFilesLines
* Redoing offs_t to 64-bits expansion. MooglyGuy2026-05-011-1/+1
|
* formats/d88_dsk.cpp: override number of tracks for .1dd format angelosa2026-04-231-0/+6
| | | | * fix booting in most if not all hash/smc777.xml FDC failures
* netlist: Check for mismatched number of parameters passed to device macros ↵ FlykeSpice2026-04-206-832/+961
| | | | | | at compile time. (#15224) * netlist/nl_setup.cpp: Use C++20 __VA_OPT__ to simplify device registration code. * netlist/build/create_devinc.py: Generate check for correct number of arguments.
* Revert "netlist: Remove redundant usages of fatal logger (#15218)" Vas Crabb2026-04-149-1/+53
| | | | | | | | | | This reverts commit 7689ad57e746a33dfeae9299821992e15dd63ea9. The nl_exception doesn't inherently log anything, and whatever catches it may send its log output to a different place to the netlist devices' loggers if it end up logging the message. All the error conditions are supposed to be sent to the netlist devices' own loggers to ensure you have visibility.
* netlist: Remove redundant usages of fatal logger (#15218) FlykeSpice2026-04-139-53/+1
| | | | | * netlist: Remove redundant usages of fatal logger * nl_factory.h: Fix Wunused compiling error
* util/delegate.h: Got rid of MAME_DELEGATE_DIFFERENT_MEMBER_ABI hack. Vas Crabb2026-04-031-15/+3
| | | | | | | This was supposed to allow calling i686 "thiscall" member functions via a free function pointer. It had been disabled for years as it stopped working in GCC. Simply having the code present breaks compiling with clang 22.1 even when it isn't enabled.
* Eliminated many temporary std::string objects. Vas Crabb2026-04-033-69/+96
| | | | | | | 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-022-54/+101
| | | | | | | | | | | (#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.
* {flopimg,esq16_dsk}.cpp: Allow specifying explicit start and end sectors ↵ Christian Brunschen2026-03-283-5/+11
| | | | | | | | | | | | | | | | when getting PC MFM track data. (#15165) Ensoniq VFX and EPS family floppies use 10 sectors per track, starting at sector 0 rather than the more common sector 1. The code in `esq16_dsk.cpp` handles this when loading floppy images, but not when saving them. This attempts to fix this in a way that is not only specific to Ensoniq's floppy images, but to possibly other future ones as well. In `flopimg.cpp`, allow specifying explicit start and end sectors when getting PC MFM track data. In `esq16_dsk.cpp`, use this to explicitly specifying sectors 0 to 9 when getting the track data to save.
* Fixed things C++20 doesn't allow: Vas Crabb2026-03-291-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* sord/m5.cpp: Modernised driver (#14491) dlabi2026-03-283-3/+78
| | | | | | | | | | | | - Added FD-5 floppies (emulation works but only with ROM hack) - Updated Sord m5 www links - Added fd5 utility disk to software list - not original dump, made from program listings - Added support of optional SRAM in Basic-F and Basic-G cartridges. Works only if shortname(softlist) is used - Marked 32/64KB RAM expansions EM-5, 64KBI, 64KBF, 64KRX as supported in software list - Reenabled and refactored memory banking - Added support of E and F block types for cassettes - m5p_brno: Switched to ROM including basic-i - m5p_brno: Reenabled and fixed memory banking - Repaired all not working ROMs except one and all cassettes
* formats/wavfile.cpp: Use helper functions from multibyte.h AJR2026-03-081-55/+22
|
* Add support for cassette images in AIFF format [AJR] AJR2026-03-083-1/+187
|
* apricot: Add support for plain sector format disk images Dirk Best2026-03-053-0/+90
|
* -cpu/e132xs: Log analysed instructions in UML log when using recompiler. Vas Crabb2026-03-052-15/+13
| | | | | | | | | | | | -cpu/powerpc: Modernised recompiler front-end code, improved instruction analysis logging. -cpu/sh: Cleaned up instruction analysis logging a little -util/client_ws.hpp, util/server_ws_impl.hpp, capcom/cps2comm.cpp: Updated some use of deprecation ASIO APIs. -nakajima/nakajies.cpp: Use range-based loops.
* Tidy some things. Vas Crabb2026-02-251-1/+1
|
* formats/mz_cas.cpp: Fixed gross copy/pasta. Vas Crabb2026-02-251-376/+181
| | | | | | The new function was just the old function copy/pasted with the comments stripped out and some constants changed. That just causes duplicate maintenance.
* formats/mz_cas.cpp: Convert constants to constexpr. [R. Belmont] arbee2026-02-211-19/+19
|
* formats/mz_cas.cpp: Fix MZ-80B cassette loading/multi-block load hang ↵ GameTorchDev2026-02-213-2/+284
| | | | | | | | | | | | | | | (format + motor-gate) (#14976) * Fix MZ-80B cassette loading: add 6000 Hz format for 1800 baud MZ-80B uses 1800 baud Sharp PWM (Logic 0=332.75µs, Logic 1=667µs), not 1200 baud. Adds mz80b_cassette_formats with 6000 Hz sample rate. Restores mz700 to 4400 Hz. MZ-2000 also uses 1800 baud. * mz80b: Fix cassette loader hang on multi-block loads * mz_cas.cpp: Add MZ-80B-specific format (fill_wave_mz80b) with 48 kHz, LGAP 10000, SGAP 5000, 16/32 sample pulses * mz2000.cpp: Gate PPI port B tape data bit (6) with motor state. When motor stops, force Low to simulate signal decay. Fixes loader 'wait for silence' loop at \ hanging on frozen High waveform.
* emu/romentry.h: constexpr at namespace scope implies static for variables ↵ Vas Crabb2026-02-041-12/+12
| | | | and inline for functions; util/palette.h: Don't use reserved _Names.
* bus/nscsi/tape.cpp, util/ioprocs.cpp: Fixed last remaining tautological ↵ Vas Crabb2026-01-261-1/+10
| | | | compare warnings for clang/arm64.
* LUA: Ensuring that `entry:default_value()` returns the correct type (#14825) npwoods2026-01-192-0/+35
| | | | | | | | | | `entry:default_value()` was always returning string. A consequence of this problem is that the following LUA commands would error ``` manager.options.entries['beam_dot_size']:value(manager.options.entries['beam_dot_size']:default_value()) manager.options.entries['frameskip']:value(manager.options.entries['frameskip']:default_value()) ``` With this change, `default_value()` will return objects of the correct type
* formats/fs_prodos.cpp: Add loading address to metadata AJR2026-01-161-0/+2
|
* -util/options.cpp: Shuffled numeric option conversions: Vas Crabb2026-01-132-23/+64
| | | | | | | | | * Moved float/integer conversions into the option entries themselves. * Fixed another bug where float values would be converted to strings with the global local, but converted from strings using the "classic" locale. * frontend/mame/luaengine.cpp: Got rid of duplicated numeric options conversion code.
* frontend/mame/luaengine.cpp: Better handling of options: Vas Crabb2026-01-131-2/+2
| | | | | | * Use "classic" locale for numeric conversions. * Don't use capturing lambdas. * Put integer overload of value() before float overload.
* -scripts: Cleaned up devices build scripts a bit: Vas Crabb2026-01-082-16/+12
| | | | | | | | | | | | | | | | * Lua considers anything other than null or false to be "truthy". The tests against "null" were comparing to a non-existent global called "null" that evaluated to nil. * Got bus.lua back in alphabetical order and got at least most of the trigger variables aligned with paths. * At least don't put random stuff in the middle of the Acorn devices in machine.lua. -cpu/adsp2100: Corrected some tabulaton that had rotted. -cpu/tms32032: Got rid of some superfluous parentheses. -apple/lisa*.cpp: Added ATTR_COLD on stuff.
* commodore/pet: Floppy code cleanup. [Curt Coder] Curt Coder2026-01-072-2/+2
|
* lisa: Massive updates Olivier Galibert2026-01-074-34/+60
| | | | | | | | core: Better support for external mmus Note: I didn't expect to push that one right now, it's missing documentation among other things, but since some people seems to be interested to work on that driver I don't want to hold them.
* formats/csw_cas.cpp: Fix confusion between 16-bit and 32-bit values AJR2026-01-021-2/+2
|
* formats/ap_dsk35.cpp: Recognize .po extension for 400K/800K raw sector images AJR2025-12-281-1/+1
|
* emu/save.cpp, util/png.cpp, various disk and cassette formats: Use ↵ AJR2025-12-138-86/+76
| | | | multibyte.h helpers instead of playing fast and loose with alignments
* fs_coco_os9.cpp: Remove incorrectly copy-pasted validator AJR2025-12-131-1/+1
|
* fs_cbmdos.cpp: Add disk_id and os_version to volume metadata AJR2025-12-134-1/+11
| | | | * fs_coco_os9.cpp: Add disk_id to volume metadata
* floptool: Add flopblocks and hdblocks commands to enumerate blocks used by ↵ AJR2025-12-1212-14/+452
| | | | every file or directory on the specified volume
* formats/fsblk.cpp: Add error code for when a circular reference is countered ↵ AJR2025-12-103-12/+20
| | | | and use it in one filesystem
* formats/fs_vtech.cpp: Properly recognize end of directory; fix block overrun ↵ AJR2025-12-051-14/+17
| | | | in file_create; use std::min
* formats/fs_prodos.cpp: Insert NUL padding when reading sparse files, rather ↵ AJR2025-12-051-2/+9
| | | | than copies of the boot sector
* att6300p.cpp: Add support for 1.2MB drive (525hd) (#14577) donohoe002025-12-011-1/+1
| | | | | | | | | * att6300p.cpp: Add support for 1.2MB drive (525hd) * att6300p_fdc.cpp: Move FDC support into device-specific files. * att6300p.cpp: Fix enabling/disabling of A20-A23 address lines. * att6300p.cpp: Add comment explaining default drive densities.
* formats/fsblk.cpp: Internal API change AJR2025-11-3014-221/+288
| | | | | - Raw pointer accessors (data, rodata) are no longer provided for fsblk_t::block_t. Other accessors used to be based on these methods, but now require their own internal overrides. This entails more copying of data in many cases, but will allow more flexible subclassing opportunities in the future. - To compensate for the removal of raw pointer accessors, add methods to fsblk_t::block_t for checking whether a portion of a block is equal to a memory range or a string (eqmem, eqstr). The resulting changed behavior in formats/fs_oric_jasmin.cpp actually fixes a bug in the directory search routine.
* pc/pc_t1t.h: Missing change corresponding to previous commit. Also srcclean. Vas Crabb2025-11-232-14/+14
|
* util/zippath.cpp: Handle "." directory and going up to or up from it. This ↵ AJR2025-11-131-8/+22
| | | | improves directory navigation in the MAME UI file manager.
* as_dsk.cpp: Fix size of FLUX chunk in MOOF files (#14499) Thomas2025-11-091-1/+1
| | | | | | | | | | The previous code allocated 512 bytes to accomodate a FLUX chunk if the resulting file has flux tracks, but the actual size of a FLUX chunk is 168 bytes (8 bytes header + 160 bytes chunk). When MAME allocated 512 bytes, this left 344 zero-bytes padding in the file that other tools would interpret as invalid chunks. See file format reference: https://applesaucefdc.com/moof-reference/
* flopimg: add support for bad address field crc in basic fm and mfm images cracyc2025-11-0828-36/+73
|
* formats/all.cpp: Add 'wren' floppy format AJR2025-11-071-0/+9
|
* New working systems Nigel Barnes2025-11-072-0/+77
| | | | | ------------------- Wren Executive [Nigel Barnes]
* Fixed up various broken stuff: Vas Crabb2025-10-302-6/+6
| | | | | | | | | | * bus/bk: Expose correct public interface for card devices. * bus/qbus/terak_v.cpp: Fixed save state support, restrict drawing to clipping rectangle. * apple/apple2e.cpp: Try to actually show the value that would be read in the debugger for C000 I/O. * Got rid of pointless duplicate layout.
* adamnet/fdc.cpp: Add compatibility matrix for convenient reference AJR2025-10-271-0/+1
|
* Coleco Adam floppy disk emulation improvements AJR2025-10-262-58/+339
| | | | | | - Completely reimplement Adam .dsk floppy format, permuting sectors of 720KB and 1.44MB 3.5" formats into (and out of) the correct native interleave - Split adam_fdc device into several sets, some now properly supporting 720KB and/or 1.44MB formats - Remove the "Doug Slopsema" BIOS for the 320KB FDC variant upon determining it to be a copy of the 320ta BIOS with slight bitrot
* terak: de-skeletonize -- add video boards. (#14383) shattered2025-10-222-0/+56
|
* floptool: New filesystem-based commands [AJR] AJR2025-10-171-3/+3
| | | | | - Add flophashes and hdhashes commands to compute CRC-32 and SHA-1 hashes for each file on a floppy or hard disk image. - Add flopchmeta command to change the metadata for a file, directory or volume on a floppy image.