Commit Graph

55420 Commits

Author SHA1 Message Date
vadosnaprimer
a66cb36cc7 Rewind feature and RAM savestates.
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().
2017-12-06 19:31:10 +03:00
smf-
51c06e670f fix compiling with latest build tools (nw)
Compiling src/devices/cpu/hd61700/hd61700.cpp...
../../../../../src/devices/cpu/e132xs/e132xs.cpp: In member function 'void hyperstone_device::set_global_register(uint8_t, uint32_t)':
../../../../../src/devices/cpu/e132xs/e132xs.cpp:619:4: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
    if ((m_global_regs[code] ^ val) & 0x00800000)
    ^~
../../../../../src/devices/cpu/e132xs/e132xs.cpp:621:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
     m_global_regs[code] = val;
     ^~~~~~~~~~~~~
2017-12-02 09:49:28 +00:00
RobertoFresca
61a02c8bd2 Aristocrat MK5: Removed Margarita Magic set 2 [marmagicub].
The set is no longer needed since it's a corrupted dump
 identical to the redumped and verified good set.
2017-12-02 06:32:21 -03:00
theheroGAC
07c83eb986 Update strings.po (#2875)
Translations added or modified
------------------------------
Italian
2017-12-02 19:25:07 +11:00
Vas Crabb
4995201684 fix sentence building by concatenation, and at the same time collapse two translatable strings to one (nw) 2017-12-02 19:09:25 +11:00
MetalliC
58942fce28 pgm2: make RTC ticking, removed orleg2 patch, its not needed anymore 2017-12-02 10:08:28 +02:00
AJR
f569046520 sdk86: Misc. corrections and additions (nw) 2017-12-02 01:38:27 -05:00
arbee
0fe9e1defe twinkle: many fixes to waveram banking + DMA. Most sets are semi-playable now. [R. Belmont, Sarah Purohit] 2017-12-02 00:46:05 -05:00
mooglyguy
bd7c954a3a e132xs: implemented mov op in drc, nw 2017-12-02 04:53:21 +01:00
mooglyguy
2e79c87e26 merge fix, nw 2017-12-02 04:02:37 +01:00
mooglyguy
604636eaff e132xs: minor prep for checkin, nw 2017-12-02 04:02:37 +01:00
mooglyguy
28185ffbe6 e132xs: drc version of ldxx1 and frame ops, nw 2017-12-02 04:02:37 +01:00
mooglyguy
ad5172a47d e132xs: Added mask, sum, cmpi, movi, and ori, nw 2017-12-02 04:02:37 +01:00
mooglyguy
bccc962b69 e132xs: initial work on drc, nw 2017-12-02 04:02:37 +01:00
mooglyguy
495df45315 e132xs: initial drc work, and templated conditional db/b, nw 2017-12-02 04:02:37 +01:00
AJR
3ebbbedaa3 milwaukee.cpp: Unit confusion (nw) 2017-12-01 21:55:10 -05:00
AJR
cf79c7b3f6 milwaukee.cpp: Add XTAL and PIT clocks from barely legible schematics (nw) 2017-12-01 21:42:31 -05:00
hap
e1771185d2 hh_tms1k: xl25 WIP (nw) 2017-12-02 03:25:56 +01:00
R. Belmont
71af16c785
Merge pull request #2873 from rzero9/patch-2
fmtowns: better horizontal scrolling
2017-12-01 20:26:57 -05:00
r09
af1dc2b4a4
fmtowns: better horizontal scrolling 2017-12-01 23:39:06 +01:00
AJR
112fbd83ab Clones promoted to working
--------------------------
SWTPC 6800 Computer System (with MIKBUG) [AJR]
2017-12-01 16:57:15 -05:00
AJR
e3f1973246 ss50/mps: Add jumpers (nw) 2017-12-01 12:47:10 -05:00
AJR
81cee86b35 Fix -listdevices' misplacement of subdevices in some configurations 2017-12-01 12:01:47 -05:00
AJR
f676e76508 thomson.cpp: Use input_merger_device for IRQ & FIRQ (nw) 2017-12-01 11:44:28 -05:00
AJR
3279407157 acia6850: Create standard read/write handlers (nw) 2017-12-01 10:32:57 -05:00
Dirk Best
7eb9126d61 remove leftover from previous commit (nw) 2017-12-01 15:14:58 +01:00
Dirk Best
4214e59f55 micro3d: Hook up terminal to the vgb board 2017-12-01 15:10:35 +01:00
Vas Crabb
f88769555b constexpr implies inline, generalise iabs, work around lack of C++14 constexpr in VS2015 (nw) 2017-12-01 23:45:11 +11:00
Miodrag Milanovic
3917627494 Updated GENie, BGFX, BX, added BIMG since it is separated now, updated all shader binaries and MAME part of code to support new interfaces [Miodrag Milanovic] 2017-12-01 13:22:27 +01:00
Sergey Svishchev
6829ecb3b0 mc1502: add BIOS 7.2 and todo list 2017-12-01 22:24:11 +11:00
Vas Crabb
7d09c0e817 turn a bit more of fmopl into something resembling C++ (nw) 2017-12-01 18:27:56 +11:00
Ivan Vangelista
d8a3eb07c2 new working software list addition
----------------------------------------------
lynx: Ponx [anonymous]
2017-12-01 07:25:09 +01:00
AJR
bc6c34e784 swtpc09: Much saner implementation of DAT banking (nw) 2017-11-30 23:50:38 -05:00
AJR
dcba5a1edc swtpc09: Memory banking modernization (nw) 2017-11-30 22:17:14 -05:00
AJR
0a22db8f2b swtpc09: Change baud clock to MC14411; clean up some shared code (nw) 2017-11-30 20:49:46 -05:00
AJR
fc87d24cf6 swtpc: Preliminary SS-50 I/O bus 2017-11-30 19:37:07 -05:00
AJR
45f27ffaab validity.cpp: Prevent insane recursion when multiple slot devices have the same tag (nw) 2017-11-30 19:34:03 -05:00
Robbbert
c00efe9e95 (nw) debugcmd : exiting isn't an error 2017-12-01 10:25:54 +11:00
Olivier Galibert
08e2b24551 Reset m_dasm on source switch (nw) 2017-11-30 20:08:18 +01:00
Olivier Galibert
585460619b Fix non-initialized member of debugcpu (nw) 2017-11-30 19:40:41 +01:00
Vas Crabb
199f92a2b0 (nw) misc cleanup: start replacing auto_alloc_* with smart pointers, get
rid of reference constants in the debugger in favour of capturing the
value in the bind/lambda (less ugly casting)
2017-12-01 05:34:53 +11:00
AJR
19addd3df5 poly88.cpp: Update notes (nw) 2017-11-30 11:29:42 -05:00
Dirk Best
02ba6e2b99 micro3d: Add terminal to the DrMath board 2017-11-30 16:58:31 +01:00
Vas Crabb
4f7e8703c8 MCS-40 is paged (nw) 2017-12-01 02:42:59 +11:00
Robbbert
0ade7803cb (nw) hg_frd : added devices 2017-12-01 02:04:05 +11:00
MetalliC
bc34e45957 typo (nw) 2017-11-30 15:50:05 +02:00
Vas Crabb
87da3c3b5e Better layout views for et3400 including display labels and clickable keypad (github #2862) 2017-11-30 22:31:56 +11:00
Olivier Galibert
7c8a1fa409 Pet peeving with extreme prejudice (nw) 2017-11-30 12:29:32 +01:00
MetalliC
29825789a8 ymz774: assume each sequencer have its own current bank (nw) 2017-11-30 12:51:59 +02:00
MetalliC
f24f509165 ymz774: add sequencer, blind work based on KOF98UM rom data, not tested at all (nw) 2017-11-30 12:24:41 +02:00