32414 Commits

Author SHA1 Message Date
radius
a3b4db2d63 Revert "(Emscripten) Print logs to the browser console"
Doesn't work on firefox or edge

This reverts commit ddccaeed8c1577cbddd300a99473f94a2e05d855.
2016-09-14 22:23:48 -05:00
Andrés Suárez
f28037a68b Merge pull request #3590 from RobLoach/consolelog
(Emscripten) Print logs to the browser console
2016-09-14 17:49:12 -05:00
Rob Loach
ddccaeed8c
(Emscripten) Print logs to the browser console 2016-09-14 18:33:52 -04:00
twinaphex
02e01e0b0a Create menu/widgets/menu_entry 2016-09-15 00:20:43 +02:00
twinaphex
a8f407ac33 Header include cleanups 2016-09-15 00:11:49 +02:00
twinaphex
892c0a6f52 Create menu/widgets/menu_list 2016-09-15 00:10:37 +02:00
twinaphex
1a40ace1ac Cleanup 2016-09-14 23:47:18 +02:00
twinaphex
4c2d754b06 (Zarch) Nits 2016-09-14 23:44:49 +02:00
twinaphex
9ee5931c5e Nits 2016-09-14 23:37:20 +02:00
twinaphex
7d5b9f172a Cleanups 2016-09-14 22:46:29 +02:00
Twinaphex
ad638fe665 Merge pull request #3588 from orbea/dbus
Disable dbus by default
2016-09-14 19:00:36 +02:00
orbea
a5644d61db Disable dbus by default 2016-09-14 09:43:30 -07:00
Twinaphex
9eed1309e7 Merge pull request #3587 from libretro/revert-3586-console
Revert "(Emscripten) Show/Hide the console"
2016-09-14 18:36:05 +02:00
Twinaphex
35f3497033 Revert "(Emscripten) Show/Hide the console" 2016-09-14 18:35:56 +02:00
Andrés Suárez
b380977421 Update proto.js 2016-09-14 10:42:15 -05:00
Twinaphex
83eeb15e4a Merge pull request #3584 from GregorR/netplay-nouveau
Netplay Nouveau
2016-09-14 16:40:39 +02:00
Gregor Richards
9bc78d25a0 Minor stylistic fixes for clarity and consistency with the rest of
RetroArch.
2016-09-14 10:06:57 -04:00
Gregor Richards
b1a2e096e5 Use consistent quotes in Netplay README. 2016-09-14 10:03:26 -04:00
twinaphex
1b46f3c344 Nits 2016-09-14 15:58:53 +02:00
twinaphex
f87dbe7946 Style nits/cleanups 2016-09-14 15:58:03 +02:00
twinaphex
ca673b4fc8 C89_BUILD fixes etc. 2016-09-14 15:56:14 +02:00
Twinaphex
09ccef1684 Merge pull request #3547 from nguillaumin/wip-screensaver-dbus
WIP: Fixes #2026 Screensaver suspend on Linux via Dbus
2016-09-14 15:48:43 +02:00
Twinaphex
18c52dac39 (iOS) Buildfix 2016-09-14 15:42:40 +02:00
twinaphex
37ddbc10da Buildfix 2016-09-14 14:11:19 +02:00
twinaphex
1b9a067bcc Move code to apple_compat.h 2016-09-14 14:10:39 +02:00
Twinaphex
88b29c930f Merge pull request #3582 from Ezio-PS/master
Update Italian translation
2016-09-14 10:15:24 +02:00
Ezio-PS
cf86aa1f1a Add other translated strings 2016-09-14 09:18:47 +02:00
radius
f855e80933 (emscripten) use standard frontend assets dir 2016-09-13 23:41:53 -05:00
Andrés Suárez
f9e7308a56 Merge pull request #3586 from RobLoach/console
(Emscripten) Show/Hide the console
2016-09-13 21:50:30 -05:00
Rob Loach
0ae05ef394
Add a toggle console 2016-09-13 22:31:16 -04:00
Gregor Richards
12bf3e4824 Rather than repeating the same sample for every frame while stalled,
just pause the sound while stalled. Both options are annoying, but this
option is less annoying.
2016-09-13 21:45:06 -04:00
Gregor Richards
ea0bb6f812 Just in case some systems don't have TCP_NODElAY, put that in an ifdef. 2016-09-13 21:39:10 -04:00
Gregor Richards
d4e074dbed Moved the advance of self_ptr to the same place as the advance of
self_frame_count, which is much clearer.
2016-09-13 21:32:57 -04:00
Gregor Richards
99b5ed92ed other should always be <= both real AND self. Before this fix, it was
possible (albeit unlikely) for the remote to get so far ahead of us that
they actually overwrote our own current data :)
2016-09-13 21:32:57 -04:00
Gregor Richards
1267e5e867 A few clarifications regarding the buffer's have_remote and used_real
data. simulation shouldn't touch 'em.
2016-09-13 21:32:57 -04:00
Gregor Richards
a0cfdb8a9c naks now cause disconnection. 2016-09-13 21:32:57 -04:00
Gregor Richards
b140b16b5d Removed Netplay positive acknowledgement messages: They didn't document
their corresponding sent message, and so couldn't be used for
acknowledgement anyway. Negative acknowledgement is sufficient.
2016-09-13 21:32:57 -04:00
Gregor Richards
6829b80c6b Reimplemented disconnection based on stalls. If we stall for 10 seconds,
disconnect.
2016-09-13 21:32:57 -04:00
Gregor Richards
8aa48cd3f9 Reinstituted "standard" timeout-based disconnection, which only works
for stall_frames==0 due to the fixes to not stall the UI.
2016-09-13 21:32:57 -04:00
Gregor Richards
0ccc39769d Adding my copyright lines to files I've touched. 2016-09-13 21:32:57 -04:00
Gregor Richards
ae8e695644 Fixing indentation to align with the rest of RetroArch. 2016-09-13 21:32:57 -04:00
Gregor Richards
f9f4e15d33 Removing commented-out code (mostly old UDP stuff) 2016-09-13 21:32:57 -04:00
Gregor Richards
c5fe0ec6be Updating the Netplay README to be true of the current implementation. 2016-09-13 21:32:57 -04:00
Gregor Richards
147d739197 Fixed stall_frames=0 mode to only block if frames are actually needed.
Rather than counting on the complexicon of used_real calculations, set
used_real when... real is used. (Problem: If the core doesn't read input
at all, used_real won't be set; todo: test with handhelds.) Minor
resilience fixes.
2016-09-13 21:32:57 -04:00
Gregor Richards
c7d0bf90f6 Bugfixes to bring Netplay Nouveau from "kinda working" to "stably
working":

(1) Fixups to the stall logic to make sure it always receives frames
while stalling :)

(2) Disused the used_real field. It was misconfigured and would
frequently claim to be using real data when real data hadn't been
used... this means more replays for now, but used_real will be readded.
(TODO)

(3) Stall duration is now related to sync frames, and thus configurable.

(4) Delta frames were having the good ol' initialization problem, as
frame==0 was indistinguishable from unused. Quickfixed by adding a
"used" field, but maybe there's a better way.

(5) If serialization fails, switch immediately to blocking mode
(stall_frames = 0). Blocking mode barely works, but if serialization
fails, no mode will work!

(6) I'm not sure which bug my replaying-from-previous-frame was trying
to fix, but the correct behavior is to replay from the last frame we had
vital information, not the frame prior. Notionally this should just be
an efficiency thing, but unsigned arithmetic at 0 made this a "just
ignore all input from now on" thing.
2016-09-13 21:32:57 -04:00
Gregor Richards
07e869ccae is_simulated was confusing and poorly named. Using have_remote in its
place, which is simply true if we've received remote data. Could also
just use read_frame_crount instead, but this keeps the info frame-local.
2016-09-13 21:32:57 -04:00
Gregor Richards
4f16a19f5e Rather than stalling by blocking and becoming unresponsive, stall by
replaying the same frame. TODO: Maybe mute the audio?
2016-09-13 21:32:57 -04:00
Gregor Richards
5edfbeafb0 Switched Netplay over to TCP. A lot of the stalling logic had to change
for this, and in particular, it now sometimes stalls in a way that makes
it very difficult to actually input anything (whoops :) ). Simply
setting the sync frames higher avoids that. With supported cores, this
is incredibly risilient, but when it fails, it mostly fails to freezing,
which is less than ideal.

TODO: Stall frames should be configurable. All the UDP code is still
there but commented out, should be gutted. The original fast-forward
code is now commented out, but really both fast-forward and stalling
should be options; the only complication is that it needs to send
simulated self-input for fast-forward.
2016-09-13 21:32:57 -04:00
Gregor Richards
9a80a1bd7e Adding a bit of Netplay documentation. 2016-09-13 21:32:57 -04:00
Gregor Richards
69b7dc0d08 Multitudinous fixes and updates to Netplay. Had to be one commit since
they're mostly related:

(1) Renamed frame_count to self_frame_count to be consistent with all
other names.

(2) Previously, it was possible to overwrite data in the ring buffer
that hadn't yet been used. Now that's not possible, but that just
changes one breakage for another: It's now possible to miss the NEW
data. The final resolution for this will probably be requesting stalls.
This is accomplished simply by storing frame numbers in the ring buffer
and checking them against the 'other' head.

(3) In TCP packets, separated cmd_size from cmd. It was beyond pointless
for these to be combined, and restricted cmd_size to 16 bits, which
will probably fail when/if state loading is supported.

(4) Readahead is now allowed. In the past, if the peer got ahead of us,
we would simply ignore their data. Thus, if they got too far ahead of
us, we'd stop reading their data altogether. Fabulous. Now, we're happy
to read future input.

(5) If the peer gets too far ahead of us (currently an unconfigurable 10
frames), fast forward to catch up. This should prevent desync due to
clock drift or stutter.

(6) Used frame_count in a few places where ptr was used. Doing a
comparison of pointers on a ring buffer is a far more dangerous way to
assure we're done with a task than simply using the count, since the
ring buffer is... well, a ring.

(7) Renamed tmp_{ptr,frame_count} to replay_{ptr,frame_count} for
clarity.

(8) Slightly changed the protocol version hash, just to assure that
other clients wouldn't think they were compatible with this one.

(9) There was an off-by-one error which, under some circumstances, could
allow the replay engine to run a complete round through the ring buffer,
replaying stale data. Fixed.
2016-09-13 21:32:57 -04:00