Commit Graph

1949 Commits

Author SHA1 Message Date
AmatCoder
745e8c0f0f
tzx_cass.cpp: 1ms pause is always required
Not only when pause from block is greater than zero .
Otherwise the last pulse is not terminated properly in some cases.
2018-09-16 07:20:34 +02:00
arbee
9dea8bbd37 chdcd: also accept .toast as a synonym for ISO images (nw) 2018-09-12 23:48:51 -04:00
mooglyguy
bb32d72c7e Fixed pmd85 regression, nw. Also replaced a fail-safe in src/lib/util/palette.cpp with an assert. Expect regressions, so better to get it out of the way now. nw 2018-08-30 23:40:37 +02:00
ajrhacker
d916d00911
Merge pull request #3795 from felipesanches/gtrak10_2018-jul-27
A large portion of the Atari Gran Trak 10 schematics (1974) implemented on MAME using the netlist subsystem.
2018-08-24 11:13:27 -04:00
balr0g
3f1b9ba8e9 imgtool: fix off by one error with leap years (nw) 2018-08-13 00:39:57 -04:00
AJR
ce99fccdb4 ti99_dsk.cpp: Change crc type to uint16_t here, too (nw) 2018-08-04 12:51:32 -04:00
AJR
7907b5afee ti99_dsk.cpp: More appropriate variable type which will hopefully make MSVC happy (nw) 2018-08-04 12:49:29 -04:00
Robbbert
9027827820 (nw) Fixed the build. 2018-08-04 09:02:37 +10:00
Michael Zapf
801935badb ti99: Fixed long-standing TDF bug; added support for 16-sector formats 2018-08-03 22:01:39 +02:00
Peter Ferrie
50830efb2a Merge branch 'master' of https://github.com/mamedev/mame 2018-07-29 21:54:08 -07:00
Peter Ferrie
83c4aa9f1e ap2_dsk.cpp: avoid one type of .woz corruption (nw) 2018-07-29 21:52:11 -07:00
Felipe Corrêa da Silva Sanches
e88ec6a7a5 A large portion of the Atari Gran Trak 10 schematics (1974)
implemented on MAME using the netlist subsystem.
2018-07-28 11:37:12 -03:00
AJR
c5a244d32c flopimg.h: Add debug asserts to help catch geometry errors (nw) 2018-07-28 00:54:54 -04:00
AJR
952bdf962a imd_dsk.cpp: Add some sanity checking on geometry 2018-07-27 23:43:03 -04:00
Vas Crabb
2968620098 make rectangle work better with constexpr, change many things to use designated getters/setters (nw) 2018-07-28 02:27:53 +10:00
Vas Crabb
9db24aa2e9 Better support for screen orientation/geometry:
* Eliminates the need for the horizontal/vertical/LCD/SVG layout files
* Screens can now have orientation and physical aspect ratio specified
* RASTER/VECTOR defaults to 4:3, LCD/SVG defaults to square pixels at config time
* System orientation is applied on top of screen orientation

Automatically generated single-screen views and orientation flags in XML
output now work correctly for systems with multiple screens in different
geometries/orientations, e.g. housemnq, rocnms, stepstag, or netmerc.

The "core rotation options" only interact with system orientation.
Allowing multi-screen systems to work well with one monitor per emulated
screen is a complex topic.  System orientation also affects the GFX
viewer while screen orientation doesn't.  The orientation displayed in
the system selection menu is from the system orientation.

Let me know if I've broken any systems or use cases.

Also, add save state support for std::array/C array nested to any depth.
2018-07-26 23:11:02 +10:00
Vas Crabb
dce955c68d rendlay: allow user variables and repetition in layouts, also add a few more predefined variables 2018-07-22 03:22:31 +10:00
Nigel Barnes
6ab094b76b camplynx_cas: Added support for multiple files (concatenated) in TAP file. 2018-07-16 21:19:55 +01:00
Nigel Barnes
e7da0b3a4b New machines marked as NOT_WORKING
----------------------------------
CMS 6502 Development System
2018-07-10 11:34:37 +01:00
Frank Palazzolo
ebc3f6947f Bug fix for multi-channel reads in cassette_get_samples(). (#3725)
* Bug fix for multi-channel reads in cassette_get_samples().
Use the unused "sample_bytes" arg the same way as cassette_put_samples()
Can be used with multi-channel files now!

* Rename sample_bytes to more descriptive sample_spacing
Add some comments about sample functions and sample_spacing variable
2018-07-09 05:28:18 +10:00
smf-
b747b711bb fix building with clang 6.0.1 (nw) 2018-07-07 11:28:01 +01:00
Olivier Galibert
a704ed7b1b emumem: Backend modernization [O. Galibert] 2018-06-29 20:04:28 +02:00
hap
2ce57abcf9 tzx_cas: no other copyright holders. initial version here:
5a0a43eb8f (diff-26e48bc5e5a1dc7272914d9f9cd3249d)
2018-06-26 13:08:29 +02:00
Vas Crabb
90d7b40e62 srcclean and other cleanup (nw) 2018-06-24 19:04:53 +10:00
Olivier Galibert
2b54bc0e04 Oops (nw) 2018-05-26 23:09:56 +02:00
Olivier Galibert
83a3b78fb3 Forgot the comment (nw) 2018-05-26 22:39:50 +02:00
Olivier Galibert
de919271fe Floppy robustification, better bitstream handling [John Keoni Morris, Peter Ferrie, Olivier Galibert] 2018-05-26 22:06:40 +02:00
Vas Crabb
c15531dddc srcclean (nw) 2018-05-27 04:48:13 +10:00
AJR
1fe4b36065 Fix error in debug build with SMS card options (nw) 2018-05-21 03:01:39 -04:00
balr0g
ea646ca403 Add Schmitt trigger device to standalone netlist Makefile (nw) 2018-05-11 12:06:50 -04:00
Michael Zapf
7a60dec53c Added logmacros to upd765, increased track buffer for hfe format (nw) 2018-05-10 21:01:47 +02:00
Michael Zapf
48dad9990e Fixed bitrate autodetect (nw) 2018-05-09 23:19:27 +02:00
Sergey Svishchev
23045014ac CPC DSK format: also check status bits in SR2 (nw) (#3546) 2018-05-10 01:21:42 +09:00
Michael Zapf
5a8ec54a1e ti99: Fixed disk creation via OSD 2018-05-04 21:59:16 +02:00
arbee
9adf583c47 Final GCC 8 batch for tonight (nw) 2018-05-01 22:52:25 -04:00
arbee
45977d9baa More GCC 8 (nw) 2018-05-01 22:04:06 -04:00
Olivier Galibert
d43d8bcecf apple2: Add WOZ format [O. Galibert] 2018-04-24 20:41:54 +02:00
arbee
b4ff6c970c apple2: recognize another form of DOS 3.3 in ProDOS order [R. Belmont, Peter Ferrie] 2018-04-23 19:53:57 -04:00
Vas Crabb
ac79c90607 srcclean (nw) 2018-04-22 09:24:13 +10:00
Vas Crabb
2c340f490e move some not-directly-emulation-related helpers to lib/util, further extricate emu.h from tools (nw) 2018-04-01 19:10:26 +10:00
Stefano
c959d88ec5 Minimal improvements on the disk handling (#3395)
* Keeping the 35 tracks drive as an option

* Reducing the crashes a bit more.

This helps matching the form_factor and the parameters found in the TeleDisk images, thus exiting before a serious crash.
It is NOT enough to improve the 8" disk image handling, nor it solves all the stability problems, but it is a tiny step forwards.
2018-03-27 10:20:08 +11:00
Vas Crabb
08dde5eb0a srcclean and regenerate localisations (nw) 2018-03-25 02:03:24 +11:00
Nigel Barnes
7ad824c85b New machines marked as NOT_WORKING
----------------------------------
Poly Proteus (Standalone) [Nigel Barnes, Andrew Trotman]
2018-03-21 20:53:11 +00:00
Sergey Svishchev
8b8931fb49 ms0515: unbreak memory maps; update floppy format definition to match one used by OS (nw) 2018-03-16 03:16:33 +03:00
Nigel Barnes
39b9cb0207 jvc_dsk: Added notes (nw) 2018-03-06 17:41:45 +00:00
Justin Kerk
0e77f9c540 Fixed issue causing drivers using netlists to fail on the Emscripten target. [Justin Kerk] 2018-03-06 03:12:21 +00:00
Vas Crabb
8dad4881f6 srcclean (nw) 2018-02-25 01:34:04 +11:00
Julian Sikorski
8cc758355d Enable use of system-wide asio, glm and rapidjson (#3172)
* Fixed building using system utf8proc

* Fixed building using system portaudio

* Allow using system-wide asio headers (1.11.0 or higher required).

* Allow using system-wide glm headers

* Allow using system-wide rapidjson headers
2018-02-08 16:06:25 -05:00
cracyc
649c169c2f i386/i286: fix default cs flags (nw)
d88_dsk: support bad crc (nw)
recreate columns copy protection (nw)
2018-02-02 23:01:40 -06:00
smf-
80ee327f08 disable netlist statistic logging on shutdown, because it triggers a use after free in void device_debug::errorlog_write_line(const char *line) & fixed the copy & pasted comment. (nw) 2018-01-31 11:11:16 +00:00
smf-
e78d6ac9dc thanks hap (nw) 2018-01-29 15:13:07 +00:00
smf-
6f377beb87 fix is_set() when generic_function is an int array (nw) 2018-01-29 12:07:47 +00:00
smf-
6fb696211b fix assertion when debugging in visual studio (nw) 2018-01-29 12:07:46 +00:00
Dirk Best
648af3b4d9 d88_dsk: Add some safety checks to avoid reading beyond the end of file 2018-01-28 01:54:49 +01:00
AJR
57bd62a1fb Eliminate core_strdup (nw) 2018-01-24 21:06:25 -05:00
Oliver Stöneberg
4e64f95721 Fixes for Coverity "Resource leak" warnings (#3089)
* lib/util/chdcd.cpp: fixed Coverity "Resource Leak" warning (nw)

* src/lib/util/chdcd.cpp: fixed more Coverity "Resource Leak" warnings (nw)

* tools/imgtool/modules/mac.cpp: fixed Coverity "Resource Leak" warnings (nw)

* devices/bus/ti99/gromport/cartridges.cpp: fixed Coverity "Resource Leak" warning (nw)
2018-01-21 15:24:51 +11:00
ajrhacker
68af4962e1
Merge pull request #3038 from firewave/ccvf
fixed MT06831 (bogus casting in ccvf_format::file_formats) (nw)
2018-01-10 15:18:06 -05:00
firewave
f2fedf0c8c fixed MT06831 (bogus casting in ccvf_format::file_formats) (nw) 2018-01-10 20:41:35 +01:00
Vas Crabb
d697e8a992 Convert zippath directory to a C++ interface 2018-01-10 18:25:26 +11:00
arbee
4cc0c47387 chdcd: recognize ISO images with 2336 byte sectors. [R. Belmont, Kale] 2018-01-08 09:18:57 -05:00
Jonathan Holt
c25b98226d Updates "2017" strings to "2018" where relevant. 2018-01-06 00:48:05 +11:00
Vas Crabb
bc9d99d58b use C locale for int/float in XML files 2018-01-05 17:12:01 +11:00
Firehawke
9ece34eb21 Revert "Revert "Merge branch 'master' of https://github.com/mamedev/mame""
This reverts commit 54155441e9.
2017-12-13 21:31:27 -07:00
Firehawke
54155441e9 Revert "Merge branch 'master' of https://github.com/mamedev/mame"
This reverts commit f537428e5a, reversing
changes made to 0d70d79810.
2017-12-13 21:01:10 -07:00
Sergey Svishchev
00c9b62a24 agat7: 840KB floppy HLE; minor fixes -> mark WORKING (#2912)
* agat7: add port_char definitions to allow access from Lua, &c (nw)

* agat7: adapt "apple2: Break up handlers for C000-C07F range" (nw)

* agat7: timer and vblank interrupts (nw)

* agat7: HLE of 840KB floppy controller, read-only (nw)

* agat7: memory expansion wip (nw)

* agat7: update todo list, mark partially WORKING
2017-12-08 18:46:23 -05:00
Dirk Best
5676444d8c jvc_dsk: Fix MT #06779 2017-11-29 10:19:03 +01:00
Olivier Galibert
6caef2579a dvdisasm: Overhaul [O. Galibert]
Disassemblers are now independant classes.  Not only the code is
cleaner, but unidasm has access to all the cpu cores again.  The
interface to the disassembly method has changed from byte buffers to
objects that give a result to read methods.  This also adds support
for lfsr and/or paged PCs.
2017-11-26 17:41:27 +01:00
Justin Kerk
b503e9c8c2 pc_dsk: Support images with 41 tracks (Kryoflux dtc produces these for some nominally 40-track disks) (fixes bivouac from ibm5150_flop.xml) (nw) 2017-11-15 20:25:12 -08:00
Dirk Best
b4e8282023 dsk_dsk: Don't segfault on empty tracks (fixes einstein 4game) 2017-10-25 13:13:54 +02:00
Vas Crabb
4c29419cab srcclean (nw) 2017-10-22 12:34:30 +11:00
AJR
ff6a9334e3 Appease MSVC (nw) 2017-10-19 12:29:33 -04:00
npwoods
86f50b0d65 Created a more flexible imgtool::datetime structure for use within Imgtool (#2263)
* Created a more flexible imgtool::datetime structure for use within Imgtool

This is intended to replace most usage of time_t

* Changing the granularity of imgtool_clock from 1ms to 100ns, as per Vas' suggestion

* Created arbitrary_datetime in timeconv.h to facilitate interpretation of datetime info

I concluded that invoking std::mktime on manually assembled std::tm is bad, because it is indeterminate how the std::tm members may be "dominant".  This required that I go further in imgtool, and update a number of drivers and eliminate the parameter of imgtool::datetime that takes std::tm.
2017-10-17 21:18:57 +02:00
Justin Kerk
a55d88393e Fix crash loading 80-track .mfm dumps of 40-track disks on 40-track drives. [Justin Kerk] 2017-10-11 19:13:59 -07:00
Nigel Barnes
72ec5336d0 acorn_dsk: Removed CPN format, now handled with SSD/DSD. 2017-10-11 12:03:01 +01:00
Nigel Barnes
1e1fb0902a acorn_dsk: Improve identifying SSD/DSD by comparing image size with sector counts.
- Fixed DDCPM format to handle correct image of Double Density CP/M.

bbc_flop_z80.xml: Replaced Double Density CP/M with good dump (nw)
2017-10-11 12:03:01 +01:00
Ted Green
7d17b6a569 voodoo: Use table lookup for RGB565 conversion. (nw) 2017-10-01 15:39:53 -06:00
smf-
bcb4be3a5d fix for clang 5 unused lambda capture errors (nw) 2017-09-24 17:49:35 +01:00
Vas Crabb
75fefade26 unzip: defer decoding DOS timestamps (nw) 2017-09-11 10:16:16 +10:00
Vas Crabb
70279ab5a2 that doesn't require an instance (nw) 2017-09-03 12:51:21 +10:00
hap
23d9d21250 png: make verify_header public (nw) 2017-09-02 22:46:14 +02:00
npwoods
d217e1fbec Returning a reference from various corestr.cpp calls to avoid unnecessary string copies (#2613) 2017-09-02 23:09:00 +10:00
Vas Crabb
ec3caa98bd srcclean (nw) 2017-08-27 11:07:21 +10:00
MetalliC
1d4f72b5fe needed for external work (nw) 2017-08-26 05:11:08 +03:00
Nigel Barnes
70b91571ce acorn_dsk: Added OPUS_DDCPM_FORMAT
- Removed ACORN_CPM_FORMAT, same geometry as ACORN_SSD_FORMAT/ACORN_DSD_FORMAT
- Improved find_size/identify for SSD/DSD formats
- ACORN_DOS_FORMAT 640K now handled as ACORN_ADFS_OLD_FORMAT
- Fixed geometry for ACORN_DOS_FORMAT 800K

bbc_acorn8271: Added Amcom DFS A7874

bbc_opus8272: New Opus 8272 FDC device with DDOS 3.00, not yet working.

wd177x_dsk: Apply sector_count and gaps to track description.
2017-08-25 20:03:44 +01:00
fulivi
ac90b9c2ef hp85: fixed a bug in tape gap detection 2017-08-23 19:33:27 +10:00
fulivi
480f865bcf hp9845: re-factored handling of HTI images into a dedicated format module 2017-08-16 10:38:22 +02:00
Vas Crabb
1c4c96a0cf add a not BIOS machine filter (useful in composite filters), support RGB PNG with transparent pen because why not 2017-08-15 18:19:18 +10:00
Vas Crabb
4e7f7f5265 fix indexed transparency (nw) 2017-08-14 14:30:19 +10:00
Vas Crabb
3a258ecf9b PNG: support greyscale with transparent pen, encode/decode text chunks as UTF-8, don't crash on trying to write back a text chunk read from a PNG file, enforce restrictions on keywords 2017-08-14 14:23:08 +10:00
Vas Crabb
61983736e8 png: make it not leak memory by default, and look a but more like C++ 2017-08-13 18:12:54 +10:00
Vas Crabb
44bc3ffa43 png: support 16-bit samples 2017-08-13 15:53:36 +10:00
Vas Crabb
da18b88ba9 PNG: fix unfiltering 2017-08-12 17:53:23 +10:00
Vas Crabb
c179a4e0e9 ui: save/restore images/info selection in right panel 2017-08-12 16:02:52 +10:00
Vas Crabb
71c7cfe525 More PNG handling overhaul:
* Unify code for copying PNG data into bitmap for MAME and pngcmp
* Fix upsampling of monochrome PNGs (need to splat across byte)
* Add support for greyscale+alpha
* Detect more unsupported conditions rather than just behaving badly
2017-08-12 15:38:14 +10:00
Vas Crabb
a7b15fc928 add minimal support for reading Adam7 interlaced PNG
(nw) This is the path of least resistance, and I plan to fix it up
later, I just wanted to get it to actually work first.  Decompression
and unfiltering is fully supported, at least for all the pixel formats
that previously worked.  Expanding 1/2/4bpp to 8bpp should work
properly, too.  Bitmap mapping for Adam7 is only implemented in
rendutil.cpp which is whate everything in MAME uses.  The function in
png.cpp (used by pngcmp) has not been updated.  At some point I'll unify
at least one of the functions in rendutil.cpp with the one in png.cpp
and we can go from three functions that need to do the mapping down to
two at the most.
2017-08-12 02:43:53 +10:00
Nathan Woods
df8bb7f18c Adding #include <cctype> 2017-08-09 07:40:15 -04:00
Christian Brunschen
336a636aed Refactor server_{ws,http}.hpp into separate interface and implementation. (#2548)
Refactor server_{ws,http}.hpp into separate interface and implementation headers.
When shutting down the HTTP server, also explicitly stop the asio::io_context.
2017-08-06 21:25:55 +10:00
Dirk Best
c10471e7ec jvc_dsk: Improve support for headerless OS-9 images 2017-08-03 16:05:08 +02:00
Dirk Best
224cfaeb6a jvc_dsk: Autodetect double sided floppy images without header, fixes #2405 2017-08-03 13:09:52 +02:00
npwoods
aca90520de Imgtool: Merged normalize_filename() into cannonicalize_path(), C++-ification (#2527) 2017-07-30 15:16:45 +10:00
Vas Crabb
ba3d0a88d6 srcclean (nw) 2017-07-23 13:29:00 +10:00
Vas Crabb
d7984c7d0c Add a method for copying part of an XML tree into another tree and use it to fix Cocoa debugger fatal error 2017-07-21 13:03:44 +10:00
Vas Crabb
05e84dccc0 * Make XML file a class of its own managed with smart poitners
* Save/restore a little more of Cocoa debugger state
2017-07-21 11:47:41 +10:00
rfka01
9bff063d9d Corrected ITT3030 70 track drive type and added 35 drive type and format definition. [helwie44 and rfka01] 2017-07-11 00:15:06 +02:00
Vas Crabb
d18aa3e097 never hurts to srcclean (nw) 2017-07-09 03:21:32 +10:00
Christian Brunschen
0206314395 Add an external panel for the Ensoniq VFX family of keyboards, with a websocket interface and an HTML/Javascript implementation that can be served over HTTP. 2017-07-05 17:27:34 +01:00
Olivier Galibert
cbbbd07484 dimemory: Lift the cap on the number of address spaces per device [O. Galibert] 2017-07-03 08:03:57 +02:00
Olivier Galibert
df1b7770ef options: Set the value when setting the default as before [O. Galibert] 2017-06-25 16:50:02 +02:00
Vas Crabb
fb61e98cc5 more srcclean (nw) 2017-06-25 15:21:44 +10:00
Vas Crabb
41e1555242 Merge branch 'release0187'
Conflicts:
	src/mame/drivers/accomm.cpp
2017-06-25 15:19:30 +10:00
Vas Crabb
f31e735053 srcclean (nw) 2017-06-25 15:18:14 +10:00
npwoods
b193e05cd7 Overhaul to how MAME handles options, take two (#2341) 2017-06-25 12:48:56 +10:00
npwoods
2af3233101 Changed a few 'const char *' ==> 'const std::string &' in the MAME debugger (#2170) 2017-06-24 09:46:58 +10:00
Nigel Barnes
fc292683f9 afs_dsk: corrected density (nw) 2017-06-15 18:43:33 +01:00
tim lindner
78614368bf Fixed JVC disk format to correctly recognize 2 sided disks. (#2357) 2017-06-03 17:59:15 +02:00
tim lindner
2c2458bbac Added read support for the disk format SDF used in the CoCoSDC (#2345) 2017-05-31 16:23:49 +10:00
couriersud
7e8a7aeea9 Add Zaccaria to mamenl build. (nw) 2017-05-28 11:10:54 +02:00
couriersud
e9a5e08b41 Fix state saving for pfunction lfsr. (nw) 2017-05-28 09:03:29 +02:00
Vas Crabb
e892661905 srcclean (nw) 2017-05-28 13:40:48 +10:00
couriersud
0a2d4a256d Fix issues identified by Vas and LordKale4:
- made local netlists in Cheeky Mouse static
- replace stdlib rand by 16 bit galois lfsr

(nw)
2017-05-27 22:17:35 +02:00
couriersud
994263eaf9 Add rand() function to pfunction expression parser. Use this to simulate
E-B noise in Cheeky Mouse and fix the "cheese" choose. [Couriersud]
2017-05-27 14:28:53 +02:00
Vas Crabb
2d4ba2471d netlist: add a crude TTL schmitt trigger model and hook up in 1B11142
sound board, completing the tromba circuit

(nw) I'm not sure whether the model works properly or not, but in the
circuit where it's used, I don't think it can work properly with the
current TTL output model.  A capacitor is charged by the Q output of a
74LS74 flipflop (U3A) until the voltage passes the Schmitt trigger's
threshold, causing it to reset the flipflop.  However, the positive
trigger voltage of the Schmitt trigger is 1.6V, but our TTL output model
has a high output voltage of 1.0V (see nl_base.cpp:89).  I realise the
simplified model of TTL logic with high impedance inputs and outputs
behaving as though thery're loaded is convenient and fast to simulate,
but it's not detailed enough for applications like this where
7400-series chips are used in analog circuitry.  This is what held me up
last time I tried adding a netlist for this sound board.
2017-05-27 18:44:23 +10:00
couriersud
6d9da523e3 Fix DEBUG build. (nw) 2017-05-27 00:11:16 +02:00
couriersud
6fd40f98a6 Various code alignments across solvers. (nw) 2017-05-27 00:11:16 +02:00
couriersud
6dfe04c620 Cleanup of solver code. (nw) 2017-05-27 00:11:15 +02:00
couriersud
a27f10c4a7 Reordered members to be more cache friendly. (nw) 2017-05-27 00:11:15 +02:00
couriersud
bc29593982 Netlist refactoring:
- OPENMP refactored. All OPENMP operations are now templatized in pomp.h
- We don't need thread-safe priority queue. Event code updating analog
outputs now runs outside the parallel code. 
(nw)
2017-05-27 00:11:14 +02:00
couriersud
01f8ace296 Changed Solver.PARALLEL parameter logic:
0: Parallel processing of solvers disabled
1: One processor parallel processing. Can be used to measure OPENMP
overhead
>1: Solve n analog subnets in parallel.

Previously, all available processors were used which caused performance
to degrade on hyperthreading. 
[Couriersud]
2017-05-27 00:11:14 +02:00
Vas Crabb
2b7d87317b Preliminary netlist sound for the Zaccaria 1B11142 board
* Tromba (trumpet) sound is not working - requires Schmitt trigger device
* Connecting cassa (bass drum) swamps other instruments so it's disconnected for now
* Mixing melody sound with speech/SFX is not done in netlist (should be)
* Relative levels of melody/speech/SFX are probably still wrong

(nw) A good test case for this is the Money Money driver (monymony).
There's a bit of buzzing on this one as well.  The problem with the
cassa could be caused by running into non-ideal characteristics of opams
again (the LM3900 seems to ignore the V+ value supplied to it).  When
the netlist library gets Schmitt trigger support, the tromba can be
completed.  Unfortunately, the tromba is a key part of the
characteristic sound of these boards, so you really notice when it's
lacking.
2017-05-27 03:57:50 +10:00
hap
2d5bb2dc20 New working clone added
----------
Speak & Spell (Spanish, prototype) [hap, Sean Riddle, David Viens]
2017-05-26 17:35:04 +02:00
Vas Crabb
308c2bb72d cheekyms: add preliminary netlist sound based on schematics provided by Sam Grech
(nw) It doesn't work quite right yet.  The "Hammer" and "Pest" sounds
are generated by free-running 555/556 timers and gated with LM324
applifiers.  For whatever reason, the netlist system produces a kind of
buzzing from the "Hammer" circuit when it's supposed to be suppressed,
and it doesn't think the pest sound should be suppressed completely so
you can always hear it at a low level in the background.  The "Cheese"
circuit is a bit weird - either they're using the base-emitter junction
of a 2SC945 as a signal diode, or there's an error in the schematic
(collector is shown unconnected).  Connecting this part of the circuit
causes the netlist system to hang, so R2/R3/C8/Q2 are not connected for
now.
2017-05-26 16:43:29 +10:00
Vas Crabb
75dfd32e71 Support -listroms for devices (e.g. mpu401 or m68705p3)
* Also ~67% improvement of device walk in -verifyroms
2017-05-18 19:34:28 +10:00
smf-
442eddbfed fix MSVC build (nw) 2017-05-16 13:56:52 +01:00
fulivi
e2b9e11da0 Hp9845: Support for HPI floppy format (#2310)
hp9845: Support for HPI floppy format [F. Ulivi, A.Kückes]
2017-05-16 09:52:31 +02:00
Miodrag Milanovic
a4c5e29c2f Forgot this one for GCC 7.1 (nw) 2017-05-15 19:27:56 +02:00
smf-
f7f4b2126e Revert "reordering the #include lets you build this file with latest mingw headers (nw)"
This reverts commit c3b10caf4e.
2017-05-14 16:49:49 +01:00
smf-
c3b10caf4e reordering the #include lets you build this file with latest mingw headers (nw) 2017-05-14 16:09:24 +01:00
Vas Crabb
0f0d39ef81 Move static data out of devices into the device types. This is a significant change, so please pay attention.
The core changes are:
* Short name, full name and source file are no longer members of device_t, they are part of the device type
* MACHINE_COFIG_START no longer needs a driver class
* MACHINE_CONFIG_DERIVED_CLASS is no longer necessary
* Specify the state class you want in the GAME/COMP/CONS line
* The compiler will work out the base class where the driver init member is declared
* There is one static device type object per driver rather than one per machine configuration

Use DECLARE_DEVICE_TYPE or DECLARE_DEVICE_TYPE_NS to declare device type.
* DECLARE_DEVICE_TYPE forward-declares teh device type and class, and declares extern object finders.
* DECLARE_DEVICE_TYPE_NS is for devices classes in namespaces - it doesn't forward-declare the device type.

Use  DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_NS to define device types.
* These macros declare storage for the static data, and instantiate the device type and device finder templates.

The rest of the changes are mostly just moving stuff out of headers that shouldn't be there, renaming stuff for consistency, and scoping stuff down where appropriate.

Things I've actually messed with substantially:
* More descriptive names for a lot of devices
* Untangled the fantasy sound from the driver state, which necessitates breaking up sound/flip writes
* Changed DECO BSMT2000 ready callback into a device delegate
* Untangled Microprose 3D noise from driver state
* Used object finders for CoCo multipak, KC85 D002, and Irem sound subdevices
* Started to get TI-99 stuff out of the TI-990 directory and arrange bus devices properly
* Started to break out common parts of Samsung ARM SoC devices
* Turned some of FM, SID, SCSP DSP, EPIC12 and Voodoo cores into something resmbling C++
* Tried to make Z180 table allocation/setup a bit safer
* Converted generic keyboard/terminal to not use WRITE8 - space/offset aren't relevant
* Dynamically allocate generic terminal buffer so derived devices (e.g. teleprinter) can specify size
* Imporved encapsulation of Z80DART channels
* Refactored the SPC7110 bit table generator loop to make it more readable
* Added wrappers for SNES PPU operations so members can be made protected
* Factored out some boilerplate for YM chips with PSG
* toaplan2 gfx
* stic/intv resolution
* Video System video
* Out Run/Y-board sprite alignment
* GIC video hookup
* Amstrad CPC ROM box members
* IQ151 ROM cart region
* MSX cart IRQ callback resolution time
* SMS passthrough control devices starting subslots

I've smoke-tested several drivers, but I've probably missed something.  Things I've missed will likely blow up spectacularly with failure to bind errors and the like.  Let me know if there's more subtle breakage (could have happened in FM or Voodoo).

And can everyone please, please try to keep stuff clean.  In particular, please stop polluting the global namespace.  Keep things out of headers that don't need to be there, and use things that can be scoped down rather than macros.
It feels like an uphill battle trying to get this stuff under control while more of it's added.
2017-05-14 21:44:11 +10:00
npwoods
baa7178053 Bug fix to -romident and aux verb cleanup (take two) (#2299)
* Resurrected auxverb_cleanup_and_romident_bugfix

* Changed usage for -romident and minor cleanups

* Supporting auxverbs in any order

The previous patch was supporting 'mame64 -listsource pacman' but not 'mame64 pacman -listsource'
2017-05-13 00:53:46 +10:00
Vas Crabb
e88b5e4f9d Revert "Bug fix to -romident and aux verb cleanup (#2288)"
This reverts commit 78bf804192.
2017-05-12 17:24:56 +10:00
npwoods
78bf804192 Bug fix to -romident and aux verb cleanup (#2288)
* Bug fix to -romident and aux verb cleanup

Made the following changes:
 1.  Fixed a bug where resolved slot/image options would choke -romident (reproducible in MAME 0.185 with 'mame64 -romident coco.zip')
 2.  'mame64 -romident' no longer crashes (though it doesn't do anything useful)
 3.  Changed the aux verb functions to take 'const std::string &'

* Further cleanups to auxillary verb code, as per Vas

Specifically:
 1.  The commands themselves now take 'const std::vector<std::string> &' for their argument lists
 2.  util::core_options now collects command arguments into a separate vector rather than treating them as unadorned arguments

* Vas Crabb feedback

* Now only using trim_spaces_and_quotes() when parsing INIs

Vas pointed out that it is inappropriate to trim spaces and quotes when parsing command line options
2017-05-12 09:18:20 +10:00
Nathan Woods
9d4b370354 Changed 'int ignore_warnings' parameter on core_options::parse_ini_file() to be 'bool ignore_unknown_options' 2017-05-10 09:53:15 +10:00
Vas Crabb
a400c011a9 Revert "Overhaul to how MAME handles options (#2260)"
This reverts commit 536990e77b.

Conflicts:
	src/frontend/mame/mame.cpp

Sorry, but this change was half-baked.  It breaks a lot of existing
functionality and clearly hasn't been tested in more than a tiny subset
of use cases.  Please play this work back onto your own branch, and test
it before submitting another PR.
2017-05-07 14:40:12 +10:00
npwoods
536990e77b Overhaul to how MAME handles options (#2260)
This is an overhaul to how MAME handles options to provide a better foundation for what MAME is already doing in practice. Previously, core_options was designed to provide an input/output facility for reading options from the command line and INI files. However, the current needs (image/slot/get_default_card_software calculus and MewUI) go way beyond that.

Broadly, this PR makes the following changes:
* core_options now has an extensibility mechanism, so one can register options that behave dramatically differently
* With that foundation, emu_options now encapsulates all of the funky image/slot/get_default_card_software calculus that were previously handled by static methods in mameopts.cpp. Changes to emu_options should not automatically cascade in such a way so that it stays in a consistent state
* emu_options no longer provides direct access to the slot_options/image_options maps; there are simpler API functions that control these capabilities
* Many core_options functions that expose internal data structures (e.g. - priority) that were only really needed because of previous (now obsolete) techniques have been removed.
* core_options is now exception based (rather than dumping text to an std::string). The burden is on the caller to catch these, and discern between warnings and errors as needed.

Obviously this is a risky change; that's why this is being submitted at the start of the dev cycle.
2017-05-05 16:17:49 +10:00
Vas Crabb
69d47f3841 Fix off-by-one error (nw)
The +1 was previously needed becasue std::string::assign(char *) expects
the string to be NUL-terminated.  The final NUL is not part of the
result.  It's not needed when adjusting the length of the string
directly.  Can people please be careful when refactoring, and alo when
reviewing pull requests?  This stood out immediately.
2017-05-05 01:12:33 +10:00
Nathan Woods
eb8e8426dd Minor improvement to CHD metadata loading
Writing into an std::string is now legal with C++11
2017-05-04 07:58:27 -04:00
Vas Crabb
d6cd22c5e3 stupid MSVC (nw) 2017-04-24 00:04:20 +10:00
Vas Crabb
dac6dc4f62 srcclean (nw) 2017-04-23 12:27:42 +10:00
Nigel Barnes
29a7778ae7 atom: Added csw cassette format
csw_cas: Fixed Coverity CID 136200 Logically dead code (nw)
2017-04-17 18:49:42 +01:00
Nigel Barnes
79e60cfae2 jfd_dsk: Fix Coverity CID 161175 Uninitialized scalar variable (nw) 2017-04-17 18:49:42 +01:00
Nathan Woods
85b0d8bb04 Pruned out some cruft in src/lib/util/options.[cpp|h] 2017-04-17 08:17:04 -04:00
Nathan Woods
c108986639 More options refactoring
This should address outstanding concerns with PR#2231.  I'm trying to turn emu_options into a self contained structure that encapsulates behaviors related to options, including the gymnastics pertaining to image/slot loading and interactions with get_default_card_software() and "just works".

When the MAME 0.186 development cycle starts up, I hope to take this further.  I want to make core_options::entry an abstract base class so that the entries associated with image options and slot options can derive from it.  This will eliminate the current need for emu_options to directly expose maps for image and slot options.

For now, I'm in stabilization mode, and I hope to get things working for a stable 0.185 release.
2017-04-16 13:08:57 -04:00
npwoods
02ea4fd43c Fixes issues specifying image/slot options fron INI files (reported by Robbbert) (#2231)
This fix really doesn't go far enough.  I added hooks so that options specified at the command line can also be responded to when parsed from INI files, but in the long run much of the logic that is currently in mame_options should go into emu_options so that when an option is specified, all of the wacko logic around slot/image specification "just works" because it is encapsulated within emu_options.

We have a release 11 days away; I want to be in stabilization mode.
2017-04-15 22:32:12 +02:00
Antoine Miné
fee8cc7135 [thomson] fix regressions to (legacy) floppy support (#2224)
* [thomson] fix legacy floppy support

* [thomson] more (legacy) floppy fixes
2017-04-13 10:38:28 +10:00
cracyc
7c9b346ade cdrom: translate from 2336 to 2048 (nw) 2017-04-10 13:59:26 -05:00
couriersud
41b915c712 Minor optimization. (nw) 2017-04-09 23:00:03 +02:00
couriersud
f011567c77 Parametrized device activation in truthtables. (nw) 2017-04-09 23:00:02 +02:00
couriersud
a55419d485 Fix VS2015 build. (nw) 2017-04-09 04:25:49 +02:00
couriersud
5a24cab445 More work on 9316. (nw) 2017-04-09 04:25:09 +02:00
couriersud
6e9637196d Refactored 74715 to one device layout. Removed subdevice. (nw) 2017-04-09 02:42:38 +02:00
couriersud
49d50c3045 Netlist code refactoring:
- more use of c++ features
- some CRTP in pfmtlog
- demangled code for truthtables
- use more constexpr
- rewrite main loop
- use default constructors and assignment operators were applicable.
- optimized 7448 and 9316

All of this has decreased startup time by approx. 25% to 30%. Complex
netlists like pong or kidniki are parsed, analyzed and constructed in
around 15 ms. Run performance has increased by about 5%.

All in all not to bad. A game like pong uses a clock of 7 MHz (after
division by 2). Thats 14 MHz clock invocations. Running at over 200%, 28
MHz. On a 3.9 GHz Machine about 140 cycles/clock change.

[Couriersud]
2017-04-09 00:04:10 +02:00
npwoods
f809f0e08d Introduced an 'util::arbitrary_clock' template class, to represent a clock that "knows" when the epoch starts (#2010)
* Introduced an 'util::arbitrary_clock' template class, to represent a clock that "knows" when the epoch starts

Also:
  - Converted the NTFS filetime code to use util::arbitrary_clock
  - Converted the Mac datetime code to use util::atribrary_clock

This is in preparation for a bigger change to Imgtool where I eliminate usage of time_t
2017-04-06 11:39:00 +10:00
couriersud
58aa97913f pstring, pdynlib, pfmtlog refactoring :
pstring:
- added support for UTF16LE to pstring. 
- renamed size() to mem_t_size()
- renmaed len() to length()
- added size() == length()
- added empty()
- added simple compare()

pfmtlog:
- Simplified pfmtlog, added more c++

pdynlib:
- add a dynproc type to dynlib to wrap dynamic library calls. 

various:
- fix two coverty scan issue.
- various clang warnings fixed.

(nw)
2017-04-04 02:02:56 +02:00
Nathan Woods
44c04cd97a Fixed issue that could cause bogus arguments to be reported incorrectly
Examples:  'mame -whatever nes' would previously be reported as "Unrecognized argument: nes"
2017-04-02 19:41:40 -04:00
couriersud
0c1b6430d0 Fix pedantic clang warnings. (nw) 2017-03-30 23:24:48 +02:00
couriersud
aacee827fe Use char32_t were appropriate. (nw) 2017-03-30 23:17:11 +02:00
couriersud
ac13946ffb Change pstring to use std::string as storage container.
This removes all allocation code from pstring. const_iterator is
consequently now based on pstring::const_iterator. 
Removed pstring_buffer. This was class wasn't a good idea.

Vas was right: This change did not impact runtime performance. Startup
performance (string intensive) increased. (nw)
2017-03-30 22:06:03 +02:00
Vas Crabb
5e8fefbb12 Turn psring iterator into a real forward iterator that works with standard algorithms.
There are a few changes to achieve this:
* Rename to const_iterator since it's immutable
* Typedef iterator to const_iterator for now as there's no mutable iterator
* Add default constrcutor and operator-> required by concept, const-qualify operators
* Remove operator+ and operator+= since it's not a random-access iterator (use std::next and std::advance instead)
* Return reference/pointer to a proxy rather than a code_t value from opertator*/operator->

The final change is required to meet the requirement that operator* for
two equivalent forward iterators return an equivalent reference.  The
pstring doesn't actually contain a sequence of code_t, so there's no way
to return a reference to code_t directly.  Instead, a reference to a
proxy object aliased on the string storage is returned.  The proxy is
implicitly convertible to code_t.  The most noticeable side effect is
that auto c = *s.begin() or for (auto c : s) won't work.  You need to do
for (auto &c : s) or for (code_t c : s) instead.
2017-03-30 15:51:14 +11:00
Vas Crabb
6cb38b0771 srcclean (nw) 2017-03-26 12:57:49 +11:00
Nigel Barnes
f224898523 archimedes: Added JFD floppy format as used by JASPP (Archimedes Software Preservation Project) 2017-03-23 20:47:26 +00:00
Nigel Barnes
d0d342d76c apd_dsk: added notes (nw) 2017-03-23 20:47:26 +00:00
couriersud
6e8b88136d Fix openmp compile. (nw) 2017-03-20 18:42:11 +01:00
Miodrag Milanovic
ad2bedf06b Refactored HTTP handling to be easier to extend and use (nw) 2017-03-19 18:35:05 +01:00
Sergey Svishchev
7d4d6382e7 hp_ipc: de-skeletonize. 2017-03-16 22:26:49 +03:00
R. Belmont
77155c2657 Merge pull request #2138 from shattered/_47be08c
eurocom2, waveterm: new skeleton drivers (Eltec EurocomII SBC, PPG Wa…
2017-03-14 20:56:26 -04:00
Justin Kerk
8b0fae308e New working software list additions
-----------------------------------
ibm5150: EDITEXTE, Label Magic, Multitexte, PrintMaster Plus, Bivouac, Chuck Yeager's Advanced Flight Trainer,
  Double Dragon (5.25", older), Indianapolis 500: The Simulation (3.5", newer), Licence to Kill, Pick'n Pile, Prehistorik,
  Rockford, Skweek [breiztiger]

New NOT_WORKING software list additions
---------------------------------------
ibm5150: Ikari Warriors (alt), First Samurai, JetFighter I: The Adventure, Turbo Driver [breiztiger]
2017-03-12 13:40:02 -07:00
Sergey Svishchev
8fd315da7e eurocom2, waveterm: new skeleton drivers (Eltec EurocomII SBC, PPG Waveterm A) 2017-03-12 17:17:06 +03:00
Sergey Svishchev
58f2def862 formats/cbm_tap: fix CID: 138003 "Dereference before null check" 2017-03-11 02:21:54 +03:00
couriersud
d23cecc86b Fix clang warnings in netlist code.
Fixed -Winconsistent-missing-destructor-override warnings. Made
some constructors of template classes and classes with virtual .. = 0
methods protected. Fixed src/lib/netlist/build/makefile (nw)
2017-03-05 21:59:52 +01:00
Couriersud
3c49610274 More cppcheck fixes. (nw) 2017-03-05 16:19:59 +01:00
Couriersud
c933d239f5 Fix some cppcheck warnings. (nw) 2017-03-05 16:19:58 +01:00
Vas Crabb
28596c7161 fix crash on excessive command-line options, clean up some tabulation, remove long-dead option 2017-03-03 14:18:58 +11:00
Sergey Svishchev
7fb8176ac6 apply clang-format, remove obsolete comments. no code changes. 2017-03-02 01:24:43 +11:00
Nathan Woods
239dcd4449 Fixed regression pertaining to specification of empty strings as slot names
e.g. - 'next -scsibus:1 "" -listdevices'
2017-02-27 01:14:11 +11:00
couriersud
1a2f928403 Netlist refactoring
- align timed_queue closer to std::priority_queue
- use uint8_t in extended clock for better memory usage.
- minor changes to nl_breakout.cpp (nw)
2017-02-25 10:44:04 +01:00
couriersud
454938dad4 Fix clang-5.0 warning .. Maximum of unsigned X and 0 is always X. (nw) 2017-02-24 14:58:34 +01:00
couriersud
7c1ba76f3b Fix netlist stats collection. Code refactoring:
Small improvement for 7493.
Convert 9316 from subdevice to delegate.
Convert 74107 from subdevice style to delegate. 
Also refactored inconsistencies in other parts of the code. (nw)
2017-02-24 14:55:45 +01:00
couriersud
acd0382d90 Added a heap priority queue to the netlist source.
This is currently not used since performance drops by about 40%. The
typical use case would be circuits a lot more complex than those we
currently emulate where the 2*log(n) advantage really applies. (nw)
2017-02-24 14:49:12 +01:00
Vas Crabb
759933ded7 Fixed an issue where device options (e.g. -cart) were reported as unknown when they actually worked (#2081)
Conflicts:
	src/frontend/mame/clifront.cpp
2017-02-24 09:34:15 +11:00
Nathan Woods
41c2350266 Vas feedback 2017-02-23 09:23:41 -05:00
Nathan Woods
8c53c1438e Fixed an issue where device options (e.g. -cart) were reported as unknown when they actually worked
This change also changes around how command line arguments are passed around; specifically I changed argc/argv to be std::vector<std::string>

Note this is not passed around 'const', the reason being that the command line processing will now "eat" the vector
2017-02-22 23:13:41 -05:00
npwoods
709c330a1f Softlist cleanup (#2075)
* Eliminates the need for emu_options::update_cached_options() by providing a hook for when option values change

* This is a preliminary fix to the issue identified in PR#2065

* More softlist related refactoring:
  - We now only parse the command line (with core_options::parse_command_line()) once
  - Options that are set up during slot and image setup go through a 'value_specifier' function
  - Eliminated the command line postprocessing
2017-02-22 23:16:23 +11:00
couriersud
85d915f5cd Fix VS2015 compile. (nw) 2017-02-22 02:04:02 +01:00
couriersud
a82ca2d244 Improve readability. Add more c++11 noexcept and swap semantics.
Also fixed clang-5 warnings. (nw)
2017-02-22 02:04:02 +01:00
couriersud
5c4b7cfef8 Clean up net_t interface and increase readability. (nw) 2017-02-22 02:04:01 +01:00
couriersud
0bdffa7e97 Slightly improve event timing if state changes.
Also introduce a push_force call to reschedule already pending events if
the state will not change. (nw)
2017-02-19 16:55:30 +01:00
Vas Crabb
8f15315a52 srcclean (nw) 2017-02-19 11:40:55 +11:00
couriersud
2acad1f854 Add prodigy to mamenl build. Fix clang5 warnings. (nw) 2017-02-19 01:00:48 +01:00
couriersud
65806114b0 More truthtable rework and clean up. (nw) 2017-02-19 01:00:48 +01:00
couriersud
2ade578dc0 Fix nltool logging. (nw) 2017-02-19 00:59:31 +01:00