summaryrefslogtreecommitdiffstatshomepage
path: root/src/tools
Commit message (Collapse)AuthorAgeFilesLines
* Various improvements to image file handling: Vas Crabb2020-10-082-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | Moved MS DIB parser out of ICO file reader and made it available for artwork and layout images. Added more efficient I/O and better error checking for JPEG file loading (MAME will no longer exit immediately on a bad JPEG file). Made caller responsible for opening files for loading images, to avoid decompressing images used in ZIP/7z artwork multiple times. Added support for JPEG and Windows DIB to picture_image_device. Added support for SVG image files in external artwork. Added support for using I/O port value for animation state and masking animation state values. Made bounds elements more flexible in layouts. Reworked headers to reduce dependencies. Updated layout file format documentation.
* Got rid of global_alloc/global_free. Vas Crabb2020-10-032-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | The global_alloc/global_free functions have outlived their usefulness. They don't allow consistently overriding the default memory allocation behaviour because they aren't used consistently, and we don't have standard library allocator wrappers for them that we'd need to use them consistently with all the standard library containers we're using. If you need to change the default allocator behaviour, you can override the new/delete operators, and there are ways to get more fine-grained control that way. We're already doing that to pre-fill memory in debug builds. Code was already starting to depend on global_alloc/global_free wrapping new/delete. For example some parts of the code (including the UI and Windows debugger) was putting the result of global_alloc in a std::unique_ptr wrappers without custom deleters, and the SPU sound device was assuming it could use global_free to release memory allocated with operator new. There was also code misunderstanding the behaviour of global_alloc, for example the GROM port cartridge code was checking for nullptr when a failure will actually throw std::bad_alloc. As well as substituting new/delete, I've made several things use smart pointers to reduce the chance of leaks, and fixed a couple of leaks, too.
* formats/cassimg.cpp: Finish encapsulation of cassette_image class. Vas Crabb2020-10-021-1/+1
|
* -imagedev/cassimg.cpp: Make the interface look something like C++. Vas Crabb2020-10-021-15/+16
| | | | -sound/tiasound.cpp: Use some vaguely C++-like code internally.
* lc58: Add disassembler [O. Galibert] Olivier Galibert2020-09-291-0/+2
|
* Cleaned up bitmap API. Vas Crabb2020-09-275-45/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Made const-qualified pixel accessors (pix, pixt, raw_pixptr) return const-qualified references/pointers to pixesl, and added non-const versions. This makes bitmap more like standard library containers where const protects the content as well as the dimensions. Made the templated pixt accessor protected - having it public makes it too easy to inadvertently get a pointer to the wrong location. Removed the pix(8|16|32|64) accessors from the specific bitmaps. You could only use the "correct" one anyway, and having the "incorrect" ones available prevented explicit instantiations of the class template because the static assertions would fail. You can still see the pixel type in the bitmap class names, and you can't assign the result of &pix(y, x) to the wrong kind of pointer without a cast. Added fill member functions to the specific bitmap template, and added a explicit instantiations. This allows the bitmap size check to be skipped on most bitmap fills, although the clipping check is still there. Also fixed a couple of places that were trying to fill an indexed 16-bit bitmap with rgb_t::black() exposed by this (replaced with zero to get the same net effect). The explicit template instantiations in the .cpp file mean the compiler can inline the function if necessary, but don't need to generate a local out-of-line body if it chooses not to. Extended the size of the fill value parameter in the base bitmap class to 64 bits so it works correctly for 64-bit bitmaps. Fixed places where IE15 and VGM visualiser weren't accounting for row bytes potentially being larger than width. Fixed an off-by-one in an HP-DIO card where it was treating the Topcat cursor right edge as exclusive. Updated everything to work with the API changes, reduced the scope of many variables, added more const, and replaced a few fill/copy loops with stuff from <algorithm>.
* Add MDCR support for P2000t (#7215) Erwin Jansen2020-09-171-0/+2
| | | | | | | This adds support for the mini digital cassette recorder that can be found inside a P2000t. This implementation is based on documentation that can be found in https://github.com/p2000t/documentation. In memory of NPM Jansen, who taught me all the magic of bits and bytes.
* pdp8/unidasm: Consistency AJR2020-09-131-1/+1
|
* pdp1: Clean up callbacks and start encapsulating peripherals AJR2020-09-131-1/+1
| | | | * pdp1, pdp8: Apply word shift to address spaces
* Fixing an Imgtool build issue with LLVM on MSVC npwoods2020-09-101-2/+2
|
* chdman.cpp: GCC 9.3 is actually the cutoff point for legacy MSVC-style long ↵ Vas Crabb2020-08-231-2/+2
| | | | long format flags.
* MDOS disk format support 68bit2020-07-031-1/+5
| | | | Motorola DOS, used on the EXORciser etc.
* New machines marked as NOT_WORKING AJR2020-06-281-0/+2
| | | | | | | | | ---------------------------------- Korg WaveStation EX [DBWBP] Korg WaveStation A/D [DBWBP] Korg WaveStation SR [DBWBP] -Add H16 disassembler and skeleton HD641016 CPU device [AJR]
* srcclean and cleanup (nw) Vas Crabb2020-06-212-9/+9
|
* pic1670: Add a disassembler [O. Galibert] Olivier Galibert2020-06-111-0/+2
|
* Add DS80C320, SAB80(C)515 and RUPI-44 disassemblers AJR2020-06-111-0/+4
|
* New machines marked as NOT_WORKING AJR2020-06-041-0/+3
| | | | | | | | | ---------------------------------- Novation BassStation Rack Analogue Synthesizer Module [DBWBP] Novation Drum Station [DBWBP] Novation Super Bass Station [DBWBP] Add disassembler and skeleton CPU device for Panasonic MN1880 architecture [AJR]
* looks like I64 size qualifier is only needed for MSYS64 GCC 9 and earlier (nw) Vas Crabb2020-06-021-2/+2
|
* New machines marked as NOT_WORKING AJR2020-05-291-0/+2
| | | | | | | ---------------------------------- JoMoX XBase 09 Midi Controlled Analogue Drum Module [DBWBP] Add disassembler for PIC17 family and preliminary PIC17C4X emulation [AJR]
* chdman: support characters outside ASCII in command line arguments Vas Crabb2020-05-291-67/+72
|
* jedutil updates: [keshbach] Kevin Eshbach2020-05-191-404/+470
| | | | | | | | | | | | | | | | | | | * Initial support for viewing the logic equations of the PLS100, 82S100, PLS101 and 82S101. * Initial support for viewing the logic equations of the PLS100, 82S100, PLS101 and 82S101. * Added support to view the the logic equations of the PALCE22V10 device * Improved the documentation on the Magix game and the undumped PAL's (security fuses blown) * Added PAL22V10 as another device that is equivalent to ythe PALCE22V10 device. * Added initial registration test for the PALCE22V10/PAL22V10 devices * Adding PAL22V10 combinatorial regression test data. * Updated jedutil with a new command that will take a jed file and list the devices that the jed file could represent * Initial work on supporting the GAL20V8 device. * Adding an initial regression test for the GAL20V8. * Tweaked the function to print text to handle the end of line character. * Fixed some mis-configurations of the GAL20V8 device. * Added regression tests for the GAL20V8 device. * Fixed the output of the GAL20V8 when viewing a jed in simple mode to properly display outputs as also being inputs for certain pins * Fixed the output of a GAL16V8 device in Simple Mode to mark relevant output pins as providing feedback as documented in the datasheet. * Corrected the output feedback state when in simple mode for the GAL16V8 and GAL20V8 devices.
* Fix compile. (nw) couriersud2020-05-171-1/+1
|
* IMGTOOL: Added Dragon DOS module [tlindner] tim lindner2020-05-176-18/+1278
|
* Fix GCC 10 uninitialized struct warning (nw) arbee2020-05-021-0/+8
|
* Added GAL20V8 support to the jedutil tool (#6603) Kevin Eshbach2020-04-271-3/+397
|
* srcclean and manual cleanup (nw) Vas Crabb2020-04-261-1/+1
|
* fixes for clang 10.0.0 misleading indentation and xor used as a pow warnings ↵ smf-2020-04-231-1/+1
| | | | (nw)
* With permission from Dirk Best, apply 3-clause BSD license to common devices ↵ Vas Crabb2020-04-132-2/+2
| | | | | | and image handling (nw) Note that this does not apply to machine drivers or device implementations for a single machine family (e.g. Amiga chips or VTech expansion bus)
* split was using sha1.h directly - fix that (nw) Vas Crabb2020-04-132-22/+18
|
* nec: 8080 mode [Carl] cracyc2020-04-111-1/+9
|
* Add H8/500 disassembler and skeleton CPU device family AJR2020-04-041-0/+2
| | | | | | alesis_qs.cpp: Document XTALs; replace legacy MCFG in comments (nw) picno.cpp: Replace legacy MCFG in comments (nw)
* upd177x disassembler [O. Galibert] Olivier Galibert2020-04-041-0/+2
|
* cpu/alph8201 can be removed now (nw) hap2020-04-031-2/+0
|
* New device for jedutil and rom name changes (#6490) Kevin Eshbach2020-03-291-7/+250
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Adding dump of PAL from Guzzler (Swimmer Conversion) * Initial support for viewing the logic equations of the PLS100, 82S100, PLS101 and 82S101. * Rename jed file from uppercase to lowercase. * Corrected name and locations for the Rug Rats set. * Fixed jedutil to compile. * Added support to view the the logic equations of the PALCE22V10 device * Improved the documentation on the Magix game and the undumped PAL's (security fuses blown) * Added PAL22V10 as another device that is equivalent to the PALCE22V10 device. * Added initial registration test for the PALCE22V10/PAL22V10 devices * Adding PAL22V10 combinatorial regression test data. * Removed duplicate device entry. * Fix bad merge. * Updated jedutil with a new command that will take a jed file and list the devices that the jed file could represent
* unidasm: Add pic16 generic disassembler with extended instructions [O. Galibert] Olivier Galibert2020-03-281-0/+2
|
* Add TMP90C051 disassembler (only accessible through unidasm for now) AJR2020-03-201-0/+1
|
* ibmxdf_dsk: IBM Extended Disk Format support (nw) Sergey Svishchev2020-03-021-0/+2
|
* Remove src2html tool (nw) Vas Crabb2020-02-291-905/+0
| | | | | | | | | | This tool was previously used to generate HTML-formatted source for the website from releases. It hasn't been used in years, since we rely on the repository browsing features of GitHub/GitLab/SourceForge. It also hasn't been updated to handle C++14, Lua, and other changes to the source. If we do want to publish source code on our own web site in the future, we'd be better off using an off-the-shelf library to handle parsing the source.
* ks0164: First try at a disassembler [David Carne, O. Galibert] Olivier Galibert2020-02-221-0/+2
|
* romp: new device Patrick Mackinlay2020-02-131-0/+2
|
* New machines marked as NOT_WORKING AJR2020-02-121-0/+9
| | | | | | | | | | | | ---------------------------------- Roland D-50 (Ver. 2.xx) [DBWBP, depblue] New NOT_WORKING clones ---------------------- Roland D-50 (Ver. 1.xx) [DBWBP] Roland D-550 [DBWBP] Add disassembler for NEC 78K/III architecture [AJR]
* xavix2: Checkpoint (nw) Olivier Galibert2020-02-111-0/+2
|
* Add disassemblers for NEC 78K/0, 78K/I and 78K/II MCU types AJR2020-02-101-1/+23
| | | | hotd2: Make "Gun Sense" board a separate device
* wd177x_dsk: generalize to allow custom track format variations 68bit2020-02-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a get_track_format() method that can be overridden to supply format variations for any track and head. The code is generalised to account for such variations. The default method returns the passed format, so this change is neutral for existing formats. Simplify the FLEX DSK format code. There are now simply format variation descriptions for the second track that have the sector ID continuing in sequence from the first track, rather than specialized code. Extend the FLEX format to support variations in the sectors ID of the first two sectors. The FLEX 6800 boot sectors have IDs based at zero rather than one. Extend the FLEX format to support variations for which the first track, on both sides, is single density on an otherwise double density disk which was historically a common format. Extend the OS9 disk format to support variations for which the first track, on only the first side, is single density on an otherwise double density disk. OS9 for the SWTPC and Gimix typically used such formats. Extend the OS9 disk format to support variations with a base sector ID of zero in contrast to the existing COCO OS9 format which uses a based sector ID of one. The OS9 format identification code is extended to rely on the optional information stored in the OS9 LSN0 header to identify COCO format disks, and all COCO format disks appear to have this optional information in a regular enough format.
* Revert "Alfaskop improvements" Vas Crabb2020-01-311-12/+2
|
* Merge pull request #6068 from JoakimLarsson/alfaskop_pla Joakim Larsson Edström2020-01-311-2/+12
|\ | | | | Alfaskop improvements
| * pla.cpp, jedparse, jedutil: Added recognition and some support for ↵ Joakim Larsson Edstrom2019-12-181-2/+12
| | | | | | | | alternative PLA binary format DataIO
* | srcclean, manual adjustments (nw) Vas Crabb2020-01-261-1/+1
| |
* | New machines marked as NOT_WORKING AJR2020-01-231-0/+3
| | | | | | | | | | | | | | ---------------------------------- NCD19c [Don Maslin Archive] Add disassemblers for Motorola MC88100 and MC88110 [AJR]
* | Merge pull request #6195 from firewave/includes R. Belmont2020-01-2238-123/+123
|\ \ | | | | | | use C++ library includes (nw)