summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine.cpp
Commit message (Collapse)AuthorAgeFilesLines
* emu/machine.cpp: Get rid of remaining make_unique_clear on 'manager' objects. Vas Crabb2020-09-301-3/+3
|
* emu: correct some file headers (nw) hap2020-06-191-1/+1
|
* recording: fix frame sync regression (nw) hap2020-06-191-1/+1
|
* finally retired the READ8/16/32/64 and WRITE8/16/32/64 macros (nw) Ivan Vangelista2020-06-181-2/+2
|
* dinvram: rename pre write/save to can write/save (nw) hap2020-06-111-1/+1
|
* nvram: don't save 0byte file (nw) hap2020-06-091-4/+7
|
* Debugger - add `-debuglog` option to log debug console output to file Stephen Oberholtzer2020-05-071-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | When this option is specified, all console output is echoed to a log file. Some caveats/limitations: - The file-open process was copied from -log, so it has the same limits - Filename is hard-coded (debug.log) - File is overwritten if it exists - File is opened during emulation initialization - Thus, the file is cleared if you invoke the "Hard Reset" debugger command - Probably some other details I don't know about - Logging works as such: When a string is appended to the scrollback buffer, it is also written to the log file. Some commands forcibly wrap their output (e.g. `help` to 80 columns.) Because this wrapping is done inside the scrollback buffer, the text written to the file is not wrapped. This can be seen with `help execution`.
* Refactoring of AVI/MNG recording code (#6537) npwoods2020-04-221-2/+2
| | | | | | | | | | | | | | * Initial refactor of AVI/MNG movie recording, consolidation of copy and paste code, hiding of AVI/MNG behind interfaces * Extracted recording specific code out of src/emu/video.cpp and put into src/emu/recording.cpp * Took the opportunity to move slightly more logic out of video.cpp into recording.cpp * Bug fix * Consolidated frame counting logic
* fixed some clang-tidy warnings (nw) (#6236) Oliver Stöneberg2020-01-301-1/+1
| | | | | | | | | | | | | | | | * fixed some modernize-redundant-void-arg clang-tidy warnings (nw) * fixed some modernize-use-bool-literals clang-tidy warnings (nw) * fixed some modernize-use-emplace clang-tidy warnings (nw) * fixed some performance-move-const-arg clang-tidy warnings (nw) * fixed some readability-redundant-control-flow clang-tidy warnings (nw) * fixed some readability-redundant-string-cstr clang-tidy warnings (nw) * fixed some performance-unnecessary-value-param clang-tidy warnings (nw)
* fixed some clang-tidy warnings (nw) (#6229) Oliver Stöneberg2020-01-291-2/+2
| | | | | | | | | | | | | | | | * fixed some readability-static-accessed-through-instance clang-tidy warnings (nw) * fixed some readability-redundant-string-cstr clang-tidy warnings (nw) * fixed some readability-redundant-control-flow clang-tidy warnings (nw) * fixed some modernize-use-nullptr clang-tidy warnings (nw) * fixed some performance-faster-string-find clang-tidy warnings (nw) * fixed some performance-for-range-copy clang-tidy warnings (nw) * fixed some performance-unnecessary-value-param clang-tidy warnings (nw)
* Merge pull request #6195 from firewave/includes R. Belmont2020-01-221-1/+1
|\ | | | | use C++ library includes (nw)
| * use C++ library includes (nw) firewave2020-01-221-1/+1
| |
* | fixed some clang-tidy warnings (nw) (#6197) Oliver Stöneberg2020-01-221-2/+2
|/ | | | | | | | | | | | | | * fixed some bugprone-throw-keyword-missing clang-tidy warnings (nw) * fixed some modernize-use-nullptr clang-tidy warnings (nw) * fixed some readability-delete-null-pointer clang-tidy warnings (nw) * fixed some performance-faster-string-find clang-tidy warnings (nw) * fixed some performance-for-range-copy clang-tidy warnings (nw) * fixed some readability-redundant-string-cstr clang-tidy warnings (nw)
* Save states should not be break when changing output. Also get rid of a few ↵ Vas Crabb2019-12-131-2/+2
| | | | | | dozen output().set_value(...) calls in favour of output finders. (nw) This has the detrimental effect that outputs used in layouts will get the default value from the last element in the last view that uses them _after_ devices are started. If drivers/devices set initial output values on start rather than reset this could cause a problem.
* save/restore otuput values in save states Vas Crabb2019-12-131-0/+5
|
* Spring cleaning: Vas Crabb2019-11-011-1/+1
| | | | | | | | | | | | * Changed emu_fatalerror to use util::string_format semantics * Fixed some incorrectly marked up stuff in build scripts * Make internal layout compression type a scoped enum (only zlib is supported still, but at least the values aren't magic numbers now) * Fixed memory leaks in Xbox USB * There can only be one "perfect quantum" device - enforce that only the root machine can set it, as allowing subdevices to will cause weird issues with slot cards overiding it * Allow multiple devices to set maximum quantum and use the most restrictive one (it's maximum quantum, it would be minimum interleave) * Got rid of device_slot_card_interface as it wasn't providing value * Added a helper template to reduce certain kinds of boilerplate in slots/buses * Cleaned up some particularly bad slot code (plenty more of that to do), and made some slots more idiomatic
* Fix AVI framerate feos2019-10-031-0/+9
| | | | | | MAME was setting up AVI before devices have properly launched, so default 60fps was used, which resulted in skipped frames in the video if machine's framerate is above 60 (btoads), and presumably duplicate frames for machines below 60fps (haven't tested). Now every frame that is generated is also present in the video.
* (nw) get rid of the rest of assert_always - it's better to be explicit about ↵ Vas Crabb2019-09-201-5/+8
| | | | what this thing is supposed to do
* Remove tilemap.h from emu.h (nw) AJR2019-08-211-0/+1
|
* Miscellaneous LUA functionality npwoods2019-08-181-0/+1
| | | | | | | - Created emu.register_before_load_settings(), to allow LUA scripts to override default input port values before settings are loaded - New ioport_field methods/props ([set_]default_input_seq(), port)
* Fix build in newer Emscripten versions (nw) Justin Kerk2019-08-081-4/+4
|
* Defaulting to empty search path if null npwoods2019-06-161-1/+1
|
* (nw) Clean up the mess on master Vas Crabb2019-03-261-1/+1
| | | | | | | | | | | | | This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at 598cd5227223c3b04ca31f0dbc1981256d9ea3ff. Before pushing, please check that what you're about to push is sane. Check your local commit log and ensure there isn't anything out-of-place before pushing to mainline. When things like this happen, it wastes everyone's time. I really don't need this in a week when real work™ is busting my balls and I'm behind where I want to be with preparing for MAME release.
* Revert "conflict resolution (nw)" andreasnaive2019-03-251-1/+1
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* Eliminate the default address map member of address_space_config (nw) AJR2019-02-171-1/+1
| | | | | | Since all device address maps are now class methods defined in ordinary C++, default RAM maps can be provided more simply with an explicit has_configured_map check in an internal map definition. A number of default address maps that probably weren't meant to be overridden have also been changed to ordinary internal maps.
* Move ROM loading macros to romentry.h and remove romload.h from emu.h (nw) AJR2018-06-241-0/+1
|
* as if millions of this pointers suddenly cried out in terror, and were ↵ Vas Crabb2018-06-081-1/+1
| | | | | | | suddenly silenced * streamline templates in addrmap.h * get rid of overloads on read/write member names - this will become even more important in the near future
* maps: Finish mame/audio and the lone dummy (nw) Olivier Galibert2018-04-201-3/+4
|
* Eliminate vestigial member that was behind machine().first_screen() (nw) AJR2018-03-211-5/+1
|
* Grammar police (nw) Olivier Galibert2018-02-241-1/+1
|
* Fixes (nw) Olivier Galibert2018-02-131-4/+8
|
* API change: Memory maps are now methods of the owner class [O. Galibert] Olivier Galibert2018-02-121-2/+2
| | | | | Also, a lot more freedom happened, that's going to be more visible soon.
* Enable use of system-wide asio, glm and rapidjson (#3172) Julian Sikorski2018-02-081-2/+2
| | | | | | | | | | | | * 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
* Eliminate machine().firstcpu (nw) AJR2018-01-041-8/+1
|
* Add option to disable saving NVRAM on exit AJR2017-12-261-1/+2
|
* srcclean and manual cleanups (nw) Vas Crabb2017-12-241-1/+1
| | | | | please people, remember to keep source UTF-8 and if you're committing on behalf of others, clean up indents to meet MAME conventions anyone can run srcclean over a submission and see what will get hit
* rewind implementation fixes and improvements vadosnaprimer2017-12-221-8/+8
| | | | | | | | | | | | | - reset scheduler savestate to what it was for years before rewind -- changing saved variables should be done after thorough testing. right now, adding some vars breaks some machines, adding other vars breaks others - switch to megabyte-wise capacity -- savestate size greatly differs between machines, relying on state count is unstable - switch to internal indexing -- no longer depends on inaccurate machine time - rewind accelerator key in debugger (Ctrl+F11) - report capacity hit (once), with some useful info - make error reports saner - mention rewind and rewind_capacity in the docs
* Cause of crash reported on MAMEWorld (nw) AJR2017-12-181-0/+1
|
* Revert "Revert "Merge branch 'master' of https://github.com/mamedev/mame"" Firehawke2017-12-131-0/+39
| | | | This reverts commit 54155441e9ba9941e85d80c4834a66376a11e791.
* Revert "Merge branch 'master' of https://github.com/mamedev/mame" Firehawke2017-12-131-39/+0
| | | | | This reverts commit f537428e5a40ba6dde8ca9bf0fe9ae6b1f189ac4, reversing changes made to 0d70d798107d4e4e8fb9f230410aeb1e888d65c5.
* Rewind feature and RAM savestates. vadosnaprimer2017-12-061-0/+39
| | | | | | | | | | | | | | This starts the work requested in #2398. How RAM states work. Implemented using util::vectorstream. Instead of dumping m_save.m_entry_list to file, it writes them as binary to vectorstream. Compression is not used, as it would slow down the process. The header is written as usual, also in binary. When a state is loaded, the savestate data gets binary-read from vectorstream. How rewind works. Rewind is optional, it can be turned off through MAME GUI while not running. Rewind capacity is available there too. Rewind step hotkey is available from the standard hotkey menu. In the debugger you have the "rewind" command ("rw" shortcut) that works the same as the hotkey. Every time you advance a frame (pause step), rewinder captures a RAM savestate of the frame you were at. It does the same when you do step into/over/out in the debugger. Every time it captures a new state (and when you unpause), it marks as invalid all its states that go after the current machine time, because input might change, so they are not relevant anymore. It keeps their buffers allocated though, for future use. When rewinder runs out of allowed amount of savestates it can have, it invalidates the first state in the list and tosses its unique_ptr to the end of the list, then it uses its buffer to capture a new state. When you hit the rewind step key, or use "rewind" command in the debugger, it loads a state that is immediately before the current machine time. Invalid states between valid ones are not allowed to appear, as that breaks rewinder integrity and causes problems. Rewinder keeps its own set of ram states as a vector of unique_ptr's. All rewinder operations and errors get reported using machine().popmessage().
* Move object finder resolution before device_start - should solve github #2759 Vas Crabb2017-10-281-0/+4
|
* (nw) srcclean - please use UTF-8 for source files, stuff that isn't valid ↵ Vas Crabb2017-09-241-1/+1
| | | | UTF-8 will be nuked, and cleaning it up by hand is annoying
* Revert Z80_R usage in alibaba, added a note about machine().rand(), open to ↵ angelosa2017-09-151-0/+2
| | | | suggestions (nw)
* Export soft_reset, hard_reset, exit, load, and save functions for Emscripten ↵ James Baicoianu2017-07-151-0/+16
| | | | builds
* Fix save/load states in Emscripten build (#2470) James Baicoianu2017-07-151-28/+56
| | | | | | | | | * Fix save/load states in Emscripten build * Simplified Emscripten integration points * Moved standalone JS functions to be static member functions of running_machine * Improved Emscripten main loop * Use convenience functions for cleaner code As an added bonus, this now allows for proper shutdown of the running machine when running in the Emscripten environment - previously, attempts to exit the program were just being ignored.
* Make machine().describe_context() a const function returning a std::string (nw) AJR2017-07-131-5/+3
| | | | As part of this change (because std::string is not printf-compatible), several devices have been updated to use the modern logmacro.h logging system.
* Minor core cleanups (nw) AJR2017-07-131-3/+3
| | | | | - disound.cpp: Make a few more methods const - machine.cpp: c_str() is no longer needed with emu_file::open since it now takes a std::string
* make device_memory_interface slightly less of a special case, use a typedef ↵ Vas Crabb2017-07-101-3/+3
| | | | to avoid nested templates everywhere (nw)
* never hurts to srcclean (nw) Vas Crabb2017-07-091-1/+1
|