summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats
Commit message (Collapse)AuthorAgeFilesLines
* srcclean and manual cleanup Vas Crabb4 days1-1/+1
|
* ui: Improved media control experience, cleaned up a lot of bad code. Vas Crabb13 days2-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* rt1715w: floppy -- attach interrupt output and update GAP3 size. (#14879) shattered2026-05-061-1/+1
| | | | | Systems promoted to working --------------------------- Robotron PC-1715W [shattered]
* 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
* {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.
* 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
|
* 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.
* formats/fs_prodos.cpp: Add loading address to metadata AJR2026-01-161-0/+2
|
* -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-137-34/+33
| | | | 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
|
* 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.
* adam_fdc: Enable 320KB format (with appropriate BIOS and drive option); add ↵ AJR2025-10-152-0/+7
| | | | floppy sounds
* fsblk_vec.cpp: Sanity check for debug builds AJR2025-10-081-0/+2
|
* -cpu/drcbex64.cpp: Optimised a couple more cases of GETFLGS, replaced a few ↵ Vas Crabb2025-10-092-138/+126
| | | | | | | | magic numbers with constants. -docs: Bumped version to 0.282 - some features not in 0.281 are documented. -Cleaned up miscellaneous stuff.
* formats/ap2_dsk.cpp: remove the RWTS18 format (#14262) Roman Donchenko2025-10-043-529/+0
| | | | | | | | | | | | It is completely non-functional. The loading code is commented out, and the saving code crashes, because it attempts to access 70 tracks regardless of how many there actually are. The code has been in this state ever since it's been added in 36ea482a, so it seems unlikely that it'll improve. Moreover, its utility seems questionable: I haven't been able to find a single floppy image with an .rti extension (and there are none listed in the software list). OTOH, for every game mentioned in the description, there are WOZ images that can be used instead (except for The Toy Shop, which has DSK images).
* formats/ap2_dsk.cpp: add write support for the D13 format (#14214) Roman Donchenko2025-10-032-249/+382
| | | | | | | | | | | | | | | | | | | | | | | | | | * formats/ap2_dsk.cpp: make a2_{13,16}sect_format inherit from a common base class Also, replace hardcoded sector counts by constants and/or variables. There is not much point in the `m_nsect` variable right now, but it'll become more useful in a future commit. * formats/ap2_dsk.cpp: refactor a2_16sect_format::save * extract fragments that would be different for the 13-sector format into separate functions; * extract repeated expressions into variables; * merge `pos` and `wrap` into a struct; For simplicity of implementation, this makes a minor behavior change: when the current sector is of the wrong DOS version, we now start searching for the next sector at the position after the address postamble, rather than after the data preamble (IOW, we rewind the current position, which we didn't do before). This shouldn't make much difference in practice. * formats/ap2_dsk.cpp: add write support for the D13 format * formats/ap2_dsk.cpp: group methods by class
* formats/ap2_dsk.cpp: remove duplicate lookup table (#14211) Roman Donchenko2025-09-251-14/+2
|
* formats/tzx_cas.cpp: fix code portability (#14206) holub2025-09-241-2/+2
|
* flopimg.cpp: add a default implementation for `supports_save` (#14156) Roman Donchenko2025-09-1854-185/+6
| | | | | | | | Since the default implementation of `save` is a stub that always fails, it makes sense to also add a default implementation of `supports_save` that returns `false`. That way, there's one fewer method that needs to be implemented for read-only image formats. Remove the now-redundant implementations in concrete format classes.
* formats/acorn_dsk.cpp: Downgrade strength of format identification to reduce ↵ AJR2025-09-151-8/+8
| | | | | | the number of false positives. This helps floptool more than MAME, since these formats are largely specific to one group of drivers there.
* fs_prodos.cpp: Recognize more file types AJR2025-09-141-1/+38
|
* formats/zx81_p.cpp: Improved incorrect data detection (MT08951) (#14137) holub2025-09-071-17/+14
|
* formats/zx81_p.cpp: Fixed crash while image data is invalid (MT08950, ↵ holub2025-09-061-4/+18
| | | | MT8951) (#14134)