Introducing ODROID-GO Advance Multiplayer Preview

Game ROMs compatibility, performance and new cores
crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

(Updated 200923)

Introducing ODROID-GO Advance Multiplayer Preview

The Multiplayer Preview brings support for two players on two devices to ODROID-GO Advance (OGA). This allows one player to host a game on an OGA while another player joins in using a second OGA. The video and audio of the host is compressed in real-time using H264 and Opus codecs before being sent over the network to the second player. Matching emulators and/or ROM sets between players are not required using this method. This is the same method used for "cloud" gaming services but Internet is not required.

The following systems are supported:
* Atari 2600
* Atari 5200
* Sega Master System
* Sega Megadrive/Genesis
* Sega CD
* Nintendo Entertainment System
* Super Nintendo
* Turbografx 16
* Turbografx 16 CD
* MAME2000
* MAME2003 Plus
* PlayStation
* Dreamcast
* Nintendo 64

The goal of the Multiplayer Preview is to provide a platform for community testing and feedback. Not all planned features are currently implemented and many issues still exist. Multiplayer support for additional systems will follow at a later date.


To START a multiplayer game:
1) In EmulationStation, chose a game from one of the multiplayer enabled systems listed above.
2) Press the "X" button (instead of "A") to start the game.
3) The screen will display a two player image indicating it is ready for another player to join.
4) Use "F1" to exit a multiplayer game.

To JOIN a multiplayer game:
1) In EmulationStation, chose the "CONFIGURATION" menu option (the picture of the gear).
2) Select "PLAYERTOO" from the list and press the "A" button to launch.
3) Select the host device from the list.
4) Use "F1" to exit a multiplayer game. Use "F2" to reconnect to the same IP address if disconnected.


Notes:
* Encryption is NOT implemented. All data is sent in the clear and may be intercepted/viewed by others.
* Only a few systems and games have been tested. Many issues may be encountered.
* Since video and audio are streamed, the quality of the experience depends greatly on the WIFI environment. Noisy environments will lose a lot of network packets and disrupt game play. Different WIFI AP channels may have less noise.
* For best results, use a USB Ethernet adapter instead of WIFI.
* When using a WIFI AP, the GO-Advance devices should not be too close to each other or the WIFI AP. This improves the signal quality of the WIFI connection. A distance of 6 to 10 feet is recommended based on testing.


200923 Changes:
* N64 multiplayer - Note that multiplayer does not wait for player 2 to connect like the other emulators do. This is due to technical issues with mupen64plus.
* GB/GBC/GBA bug fixes. (Generate SRAM / Enable VSYNC / Hold F1 at start to reset game)
* RetroRun bug fixes. (Fix F1 at start causes program to exit.)
* Update build system for ARM64 native environment (ODROID-N2+)

200818 Changes:
* The aspect ratio on the client (second player) now matches the host.
* Host is now selected from a list.
* WIFI Hotspot support allows two devices to connect directly to each other. A WIFI AP is no longer required.


Download link:
https://dn.odroid.com/RK3326/ODROID-GO- ... 923.img.xz

Wiki:
https://wiki.odroid.com/odroid_go_advan ... er_preview

[200818 Updated video]


Last edited by crashoverride on Fri Sep 25, 2020 2:59 pm, edited 4 times in total.
These users thanked the author crashoverride for the post (total 11):
kamots (Wed Aug 12, 2020 8:15 am) • joy (Wed Aug 12, 2020 8:45 am) • joshua.yang (Wed Aug 12, 2020 2:13 pm) • odroid (Wed Aug 12, 2020 3:35 pm) • shanti (Fri Aug 14, 2020 2:48 pm) • MagTheRose (Sat Aug 15, 2020 5:06 am) • dr.robert (Sun Aug 16, 2020 3:33 am) • escalade (Sun Aug 16, 2020 9:30 am) • apd (Thu Aug 20, 2020 7:04 pm) • TheRuck (Wed Aug 26, 2020 12:09 am) and one more user

User avatar
rooted
Posts: 8550
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 742 times
Been thanked: 345 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by rooted »

Wow, this is going to be amazing. Thank you for taking this on @crashoverride and getting it done so quickly.

*edit*
I just watched the second video from kamots, streaming the games even when not installed on the second device....Holy s*** that is more than we could have asked for!

I hate to say this but I almost hope you keep this closed source for a while to keep the cloners from getting it.

But I'm super curious to see how the encoding works, would be a cool to have the ability to record our gaming sessions and apparently you have figured out hardware encoding.
These users thanked the author rooted for the post:
shanti (Fri Aug 14, 2020 2:48 pm)

kamots
Posts: 90
Joined: Sun Jul 01, 2018 6:05 am
languages_spoken: english
ODROIDs: ODROID-GO, C1+, ODROID-GO Advance
Has thanked: 19 times
Been thanked: 22 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by kamots »

rooted wrote:
Wed Aug 12, 2020 7:32 am
Wow, this is going to be amazing. Thank you for taking this on @crashoverride and getting it done so quickly.

*edit*
I just watched the second video from kamots, streaming the games even when not installed on the second device....Holy s*** that is more than we could have asked for!

I hate to say this but I almost hope you keep this closed source for a while to keep the cloners from getting it.

But I'm super curious to see how the encoding works, would be a cool to have the ability to record our gaming sessions and apparently you have figured out hardware encoding.
Yep it is crazy awesome! My wife and I like playing Battletoads on SNES but we got stick of dragging out the Raspberry Pi every time. Now we don't need to!

Also I agree with you, I hope Crash holds back the code for a while. More and more lately I see other people taking credit for other people's work and it really sucks.

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

First post updated with download link.

User avatar
mad_ady
Posts: 9469
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 604 times
Been thanked: 678 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by mad_ady »

Great job! I thought you were bringing network support to the emulators, not doing a streaming service... But I was right about the split screen action...

Regarding security - as long as you're using WPA-PSK for wifi, traffic should be encrypted at the wifi layer and should not be accessible to somebody that doesn't know the wifi key (I recommend using long random wifi passwords). If you have a bad actor in your LAN already, then yes, they could do ARP spoofing to get the traffic (or wifi capture), so make sure you're not entering your banking information...

Regarding connecting to a host - here's an idea of improving typing in data. You could have the "host" use multicast DNS (avahi) and broadcast the multiplayer gaming service. The client would listen to these broadcasts and could render a list of hosts in the menu so the user can select the desired host. IP/port information is sent via mDNS, but it's more user friendly.

Regarding sending keys from them client to the server - are you sending the raw key codes and mapping them on the host based on the emulator running?

One interesting feature I can forsee is having the client "read-only" - only for viewing what the host is doing. This would be most useful when the older kid is playing and the younger brother wants to play too. They can have a working game where they mash the buttons and it gives them the feeling they are playing. Should keep them occupied for a full 5 minutes before they realize the trick... :D

User avatar
Jlm70
Posts: 18
Joined: Wed May 28, 2014 3:05 pm
languages_spoken: english, italian
ODROIDs: Odroid Go Advance
Odroid U3 / 64emmc with PiCade
Has thanked: 5 times
Been thanked: 0
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Jlm70 »

I believe this streaming method might be of use for some purposes, yet it includes an inevitable lag and other drawbacks (required GPU power stolen from games,...). IMHO it would be better to implement a feature, on two OGAs, to easily share a ROM and than run it natively on each device in a working NetPlay mode (similarly to first PSPs direct connection).
At now, on my two equal/cloned Batocera OGAs, Netplay is not working (same OS, same games, different userIDs and ports, and it's a pity (trying both with a central classical NATted router and in hotspot mode).

kamots
Posts: 90
Joined: Sun Jul 01, 2018 6:05 am
languages_spoken: english
ODROIDs: ODROID-GO, C1+, ODROID-GO Advance
Has thanked: 19 times
Been thanked: 22 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by kamots »

You can see in my video there is no perceivable lag even when using wifi on both devices. Using wired networking will ensure zero lag. As for resources used by the game streaming, I'll be looking in to that but it is clearly not a problem so far since PS1 is in the list.

This method is going to be far easier for developers to adapt emulators to then trying to figure out whatever custom netplay crap is required per emulator. Also this design could allow streaming from a more powerful device.

The biggest advantage is you only need to setup ROMs, BIOS files, etc on one device, the other one is just a client and can have a much smaller SD card. Or if you have a friend come over you don't need to take the time to setup additional stuff on their device, just start playing including loading a save state where you guys last left off. Oh and the audio is perfectly in sync on both devices which may not be the case if they are both running an emulator.

Josh86
Posts: 93
Joined: Fri Jan 17, 2020 4:24 am
languages_spoken: english
Has thanked: 10 times
Been thanked: 13 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Josh86 »

So is this a in-house streaming solution written by crash or is this based on Moonlight or another open gamestream? Very streamlined implementation and I think it's the way to go. Would there be a way to perhaps list networked devices instead of by manual entry? Not that I need it, but I imagine it would make things very easy for those who can't seem to figure out their device name or IP address...or allow quick connection to another networked device other than an OGA...perhaps? :)

Most emulators/frontend's built in netplay eventually have sync issues from my experience. I'm a big supporter of Parsec or Moonlight and I've used the former for a lot of remote multiplayer gaming when I'm away from home.

I kind of wish the reference image was slightly more customizable as I'd prefer it over others. I really wanted to see Moonlight happen on the OGA under Batocera and the ability to play media easily from a frontend, but I'm not sure when that's going happen. Can't really have it all right now as these features are spread across 3-4 different images. It's kind of the reason I haven't invested in getting a Black Edition yet as that would be my do-it-all device (planning to give the original two OGAs to the kids as gifts).

Really nice job implementing it and I look forward to any and all other features you put into the base image.

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

mad_ady wrote:
Wed Aug 12, 2020 4:29 pm
make sure you're not entering your banking information...
Since the data sent/received is (currently) limited to game systems that predate "cloud" services, I could not think of a situation where "sensitive" information was in transit. This was a factor in whether or not to encrypt the traffic.
mad_ady wrote:
Wed Aug 12, 2020 4:29 pm
You could have the "host" use multicast DNS (avahi) and broadcast the multiplayer gaming service.
As mentioned in the "Known Issues", this feature will be added. Of interest is that all GO-Advance systems will have the same host name on a network by default. Additional information will be needed to distinguish a host.
mad_ady wrote:
Wed Aug 12, 2020 4:29 pm
Regarding sending keys from them client to the server - are you sending the raw key codes and mapping them on the host based on the emulator running?
A structure encapsulating the entire game pad state is sent. It is up to the software using it to decide on mappings. Since the entire game pad state fits inside a network MTU, it is more efficient to send in its entirety than individual events.
mad_ady wrote:
Wed Aug 12, 2020 4:29 pm
One interesting feature I can forsee is having the client "read-only" - only for viewing what the host is doing.
I considered adding a "spectator" mode. However, it complicated the design beyond the initial goal. I feel its better realized as a "casting" feature. Its possible that it could be added in the future.

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Jlm70 wrote:
Wed Aug 12, 2020 6:09 pm
I believe this streaming method might be of use for some purposes, yet it includes an inevitable lag and other drawbacks (required GPU power stolen from games,...).
On a LAN, the lag (network latency) is not perceptible. Over a WAN (or internet) where there are many "hops" (routers), the lag will likely be a factor.

The GPU is not used for any of the game streaming functions. The RGA2 (bitblitter) and VPU (video codec) perform most of the work. The CPU is used for the audio codec. The design is highly threaded and has a minimal performance impact on the system since most emulators do not use all the CPU cores. The Dreamcast emulator is where this is most evident as it uses multiple CPU cores and the GPU without performance degradation.
These users thanked the author crashoverride for the post:
kamots (Thu Aug 13, 2020 11:57 pm)

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Josh86 wrote:
Wed Aug 12, 2020 10:28 pm
So is this a in-house streaming solution written by crash or is this based on Moonlight or another open gamestream?
It was entirely designed and coded by me. It is not based on anything preexisting. There were technical constraints unique to the platform that had to be accommodated in the design. Since both 32bit and 64bit emulators are used, the design required an IPC/RPC implementation. This places the encoder as an out-of-process 64bit service.
Josh86 wrote:
Wed Aug 12, 2020 10:28 pm
Would there be a way to perhaps list networked devices instead of by manual entry?
As noted in the "Known Issues", this is a planned feature.
Josh86 wrote:
Wed Aug 12, 2020 10:28 pm
Most emulators/frontend's built in netplay eventually have sync issues from my experience.
The design is highly threaded and asynchronous. This was necessary to accommodate the vast differences in timing (frame rate) among emulators as well as clock "drift" between two GO-Advances.

User avatar
mad_ady
Posts: 9469
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 604 times
Been thanked: 678 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by mad_ady »

Of interest is that all GO-Advance systems will have the same host name on a network by default.
The stock image could derive a pseudo-unique hostname on first boot (/aafirstboot) that concatenates the last three octets in the wlan0 mac address to the original name. For ver 1.0, if there is no wlan attached, it could make up a fake name.
These users thanked the author mad_ady for the post:
kamots (Fri Aug 14, 2020 12:00 am)

shanti
Posts: 347
Joined: Fri Feb 15, 2019 3:12 am
languages_spoken: english, spanish
ODROIDs: Odroid N2
Has thanked: 102 times
Been thanked: 137 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by shanti »

Really awesome! :) congrats!

kamots
Posts: 90
Joined: Sun Jul 01, 2018 6:05 am
languages_spoken: english
ODROIDs: ODROID-GO, C1+, ODROID-GO Advance
Has thanked: 19 times
Been thanked: 22 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by kamots »

This was a comment on my video but seems to have been deleted by the author (or YouTube, who knows).
I'll have to post this to the forum later. It may already be there. Have you tried putting the Host GO2 into Access Point networking mode, then connect Guest GO2 to it? You'd first need into install 'hostap'. You'd likely want create & place a script in /opt/system/ to appear in the Config menu so you can toggle between WiFi AP & Client mode on the Host GO2 as well.
I wanted to post this here since I will be testing it but it was this person's suggestion. Will follow up after I run some tests but my guess is there will be reduced range compared to using an AP as a "relay" and I'm not sure what performance impact it will have unless you specifically pick a channel that is not in use in your house or turn off your AP(s).

In addition to this, you can often have a wifi device in both AP and Client mode at the same time depending on the device and drivers. I'll test this too.

maker_gamer
Posts: 20
Joined: Tue Jan 07, 2020 2:50 pm
languages_spoken: english
ODROIDs: Odroid Go, Odroid Go Advanced
Has thanked: 4 times
Been thanked: 7 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by maker_gamer »

Awesome feature so looking forward to using it with the family. ++ Now I have to buy yet another OG2. Here, take my money ;-D

Here's a feature request:
Please consider having 'hostap' on the default image (if it isn't already), and place a script in /opt/system to toggle the WiFi between Client & AP mode. Making it more seamless for those with less linux wifi ap experience would go a long way. Having a "fixed" / standardize OG2 AP setting for the community would help keep things simple.

Having the Host OG2 double as an "Easy AP" would:
* create a more peer-to-peer experience - especially when out and about such as road trips OR pickup game sessions in the park.
* create further isolation from other WiFi devices, possibly increasing performance (never mind security for this). Most folks will be playing next to each other - not across rooms - like we should be for a shared experience & team play conversation.
* Standardized "Easy AP" would make documentation instructions consistent for folks.

Thanks again for the awesome new feature. Cheers, M.

dr.robert
Posts: 9
Joined: Wed Aug 12, 2020 2:25 pm
languages_spoken: english, spanish
ODROIDs: OGA BE
Has thanked: 5 times
Been thanked: 0
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by dr.robert »

Hey. Congratulations and thank you for your work.

I'd like to ask, in case I wanna play alone, should I stick to the reference image or could this one have an even better perfomance?

maker_gamer
Posts: 20
Joined: Tue Jan 07, 2020 2:50 pm
languages_spoken: english
ODROIDs: Odroid Go, Odroid Go Advanced
Has thanked: 4 times
Been thanked: 7 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by maker_gamer »

kamots wrote:
Sat Aug 15, 2020 12:35 am
This was a comment on my video but seems to have been deleted by the author (or YouTube, who knows).
That was me. I removed it as it some of my real name in it. (So I came back here to post). I need to fix that so I can keep my maker & gamer nicks abstracted from my real ident. Peeve off the wrong small minded gamer, and with simple google search I could help them dox me.
kamots wrote:
Sat Aug 15, 2020 12:35 am
I wanted to post this here since I will be testing it but it was this person's suggestion. Will follow up after I run some tests but my guess is there will be reduced range compared to using an AP as a "relay" and I'm not sure what performance impact it will have unless you specifically pick a channel that is not in use in your house or turn off your AP(s).

In addition to this, you can often have a wifi device in both AP and Client mode at the same time depending on the device and drivers. I'll test this too.
I don't think, range will be an issue given folks using "Easy AP" would be in the same room, or maybe two rooms away. Playing handhelds together, folks tend to be in each other's physical proximity.

As for a Relay, that's a great idea too. I was thinking of it as an isolated AP, much like a PirateBox - it's own self contained island. Helps reduce traffic & increases privacy/isolation.

I think a real challenge will be hostnames & IP discovery. If folks do not change their hostname, "goadvance" could be used with multiple IPs. mDNS may help here but I don't know having tending to avoid it. Folks may have to do everything by IP. dnsmasq could be limited to less than 10 IPs. When setting up the AP those details should be displayed at the end.

Some ideas that came to mind this morning on enabling an easy AP - they could be provided a choice between simple or advance.
For Simple:
  • AP Only (toggle between Client or AP)
  • pick from 1,6,11 OR enter the channel number between 1-11 (some countries have more, but I'm aiming at lowest common denominator and channel frequency spread per wikipedia.)
  • SSID could be something simple to enter like "Odroid Go Adv" , "goadvance" or "GOADV". Unless there's a bunch of GO2 in AP mode in close proximity, this really isn't an issue. Plus, having the standard name might ease or encourage finding other GO2 users in proximity -- At least after Covid. (I like the idea of meeting other HK users sharing a common interest of retro gaming & cool HK tech. We're all geeks & nerds at heart. And might get to play some old games in a new way.)
  • For the Passsphrase, it could display a pre-generated one like "goadvancexxxx" where xxxx is the last four MAC characters, with the option of a custom one if populated.
  • Pause when finished to display the connect info - including IP.
For "Advance"
  • Allow the user the option of shared AP & Client mode. But combined moves away from "Stupid Simple" (cause if you try to KISS, it's already overly complicated). As you mentioned, there's likely going to be performance issues. Not having a GO2 v1.1 yet, I don't know if supports AP & Client simultaneously. I've not tested on using my HK WIFi 0 dongle but I suspect it might support it. Plus some folks having a v.1.1 may want to use 2 WiFi - internal and dongle. It can become a slippery slope having multiple edge cases.
  • Fill out all the details above for AP in full themselves
My suggesting is to focus on the low hanging 80% users - just the "Easy AP" toggle. That will benefit the family, friends & students who'll want to treat the GO2 as the billed RetroGaming handheld - their RetroPi for their backpack. The 20% or even 2% that will customize their distro install know what their getting into. It would free up the ~80% time you'd spend on the remaining 20% feature set for something else you'd like to do.

I'd bang out this script myself. Unfortunately like most folks, IRL Covid has turned our lives upside-down so I have less hobby-project time. :-(
Some names I thought to call my version of such script was: "WiFi Game Host", "Game Network Host", "Easy AP" -- I was trying to focus on that self explanatory name for the 80% users.

Cheers, M.

User avatar
rooted
Posts: 8550
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 742 times
Been thanked: 345 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by rooted »

A couple of USB Ethernet dongles between two go advance would be nice also, super low latency.

escalade
Posts: 286
Joined: Thu Mar 14, 2019 8:34 pm
languages_spoken: english and norwegian
Has thanked: 16 times
Been thanked: 134 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by escalade »

You can't use both AP & client mode on the OGA. Just a note on the topic of local AP, RetroArch has a simple on/off switch for it when compiled with HAVE_LAKKA=1. It uses Connman under the hood, I'm using it in my LibreELEC fork and it works well. Sorry if it's off topic, thought it might be interesting for some. Disconnects from wifi and starts the local AP at the click of a button, then reconnects to wifi when stopped. Can probably be integrated in other distro's too with little work.
Maintainer of RetroELEC (XU4 / OGA / x86_64)

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

mad_ady wrote:
Thu Aug 13, 2020 12:58 pm
The stock image could derive a pseudo-unique hostname on first boot (/aafirstboot) that concatenates the last three octets in the wlan0 mac address to the original name.
I experimented with using a MAC address, but it got really confusing after awhile. When using an Ethernet or USB Wifi adapter, the MAC changes. I have settled on using the serial number ("cat /proc/cpuinfo") instead.
maker_gamer wrote:
Sat Aug 15, 2020 12:37 am
Please consider having 'hostap' on the default image (if it isn't already), and place a script in /opt/system to toggle the WiFi between Client & AP mode.
escalade wrote:
Sun Aug 16, 2020 9:30 am
Just a note on the topic of local AP, RetroArch has a simple on/off switch for it
The Reference Image uses Network Manager. This actually makes "hotspot" operation simple. I plan to add the feature in the next update. For those wanting to test it out with the current image:
1) Edit the "/etc/polkit-1/localauthority/50-local.d/network-control.pkla" file. Add ";org.freedesktop.NetworkManager.wifi.share.protected;org.freedesktop.NetworkManager.wifi.share.open" to the end of the "Action" line.
2) Create a "hotspot" using the following command.

Code: Select all

nmcli device wifi hotspot con-name 'Hotspot' ssid 'GO-Advance(00:00:00)' password 'odroidgo'
(edit the above to customize as desired.)
3) In the EmulationStation "CONFIGURATION" menu (picture of the gear), select "WIFI". You will see a new connection named "Hotspot" that can be selected to enable/disable. You can also switch back to your WIFI AP here.
dr.robert wrote:
Sun Aug 16, 2020 3:37 am
I'd like to ask, in case I wanna play alone, should I stick to the reference image or could this one have an even better perfomance?
The multiplayer image will replace the Reference Image when released. The performance should be the same.

apd
Posts: 10
Joined: Wed Jul 11, 2018 3:36 am
languages_spoken: english spanish
ODROIDs: GO, GO ADV (1.1)
Has thanked: 23 times
Been thanked: 2 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by apd »

crashoverride wrote:
Sun Aug 16, 2020 9:57 pm
mad_ady wrote:
Thu Aug 13, 2020 12:58 pm
The stock image could derive a pseudo-unique hostname on first boot (/aafirstboot) that concatenates the last three octets in the wlan0 mac address to the original name.
I experimented with using a MAC address, but it got really confusing after awhile. When using an Ethernet or USB Wifi adapter, the MAC changes. I have settled on using the serial number ("cat /proc/cpuinfo") instead.
Maybe /etc/machine-id from systemd can be an alternative. Maybe firstboot.sh can regerenate it.

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

apd wrote:
Mon Aug 17, 2020 5:34 am
Maybe /etc/machine-id from systemd can be an alternative. Maybe firstboot.sh can regerenate it.
I wanted something that is consistent (never changes). The serial number (/proc/cpuinfo) is available on every distribution regardless of whether systemd or network manager is installed. Using the last three bytes should make it unlikely that a person standing next to you has the same value, yet not discriminating enough to be personally identifiable. The consistency makes it easier for someone to remember or label their device.

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Updated first post with 200818 image.
These users thanked the author crashoverride for the post:
joy (Fri Aug 21, 2020 3:54 pm)

User avatar
odroid
Site Admin
Posts: 37528
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 1835 times
Been thanked: 1155 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by odroid »

Yeah~~
Finally, we could enjoy two-players game as the updated video. https://www.youtube.com/watch?v=klOlbhohfS4
Peer-to-peer Soft-AP WiFi connection was really handy and awesome. We don't need to bring a heavy router to the outdoor camping place anymore. :D
These users thanked the author odroid for the post:
ducadan (Wed Aug 26, 2020 1:05 am)

Josh86
Posts: 93
Joined: Fri Jan 17, 2020 4:24 am
languages_spoken: english
Has thanked: 10 times
Been thanked: 13 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Josh86 »

Just want to verify:

Is the bypass (holding F1) for automatic save state loading not working in the most recent trial image? I have not really tried the base image to any extent since February and I noticed sometime in June some users had said it wasn't working. Just want to make sure I'm not doing it wrong (tried a lot of different combos).

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Josh86 wrote:
Thu Aug 27, 2020 12:53 am
Is the bypass (holding F1) for automatic save state loading not working in the most recent trial image?
This issue still exists.
https://github.com/OtherCrashOverride/r ... 2/issues/3

Josh86
Posts: 93
Joined: Fri Jan 17, 2020 4:24 am
languages_spoken: english
Has thanked: 10 times
Been thanked: 13 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Josh86 »

crashoverride wrote:
Thu Aug 27, 2020 1:35 am
This issue still exists.
https://github.com/OtherCrashOverride/r ... 2/issues/3
Thanks, I'll be sure to keep the repository in mind when checking in on the image in the future.

Slaminger
Posts: 286
Joined: Tue Jul 16, 2019 12:30 am
languages_spoken: English, French
ODROIDs: XU4, N2, N2+, C2, C4, OGA, OGA-BE, H2+, OGS, OGST
Location: Canada
Has thanked: 23 times
Been thanked: 73 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Slaminger »

crashoverride wrote:
Thu Aug 27, 2020 1:35 am
Josh86 wrote:
Thu Aug 27, 2020 12:53 am
Is the bypass (holding F1) for automatic save state loading not working in the most recent trial image?
This issue still exists.
https://github.com/OtherCrashOverride/r ... 2/issues/3
can save state still be turned off in the es_systems.cfg?
and can you refresh my memory as to how?? haha i think it was -f or -n?

long time no see btw! great work on the tooplayer feature, i was able to rebuild retroarch and all the retro arena stuff on the new base image you released, obviously the tooplayer doesnt work on the cores that use retroarch, but meh, thats not a massive issue.

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Slaminger wrote:
Wed Sep 02, 2020 8:47 am
can save state still be turned off in the es_systems.cfg?
and can you refresh my memory as to how?? haha i think it was -f or -n?
https://github.com/OtherCrashOverride/r ... in.cpp#L77
Add "-r" or "--restart" to the command line.

Slaminger
Posts: 286
Joined: Tue Jul 16, 2019 12:30 am
languages_spoken: English, French
ODROIDs: XU4, N2, N2+, C2, C4, OGA, OGA-BE, H2+, OGS, OGST
Location: Canada
Has thanked: 23 times
Been thanked: 73 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Slaminger »

crashoverride wrote:
Wed Sep 02, 2020 9:12 am
Slaminger wrote:
Wed Sep 02, 2020 8:47 am
can save state still be turned off in the es_systems.cfg?
and can you refresh my memory as to how?? haha i think it was -f or -n?
https://github.com/OtherCrashOverride/r ... in.cpp#L77
Add "-r" or "--restart" to the command line.
that sorted it, thanks.
in terms of multiplayer n64/psp do you think thats semi close or a long way off? asking so i know if i should do a release with the current base image or hold off a while

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Slaminger wrote:
Wed Sep 02, 2020 12:18 pm
in terms of multiplayer n64/psp do you think thats semi close or a long way off?
N64 multiplayer is planned. PSP is not because it is a single player device (no support for second controller). GB, GBC, GBA, Atari Lynx, and Game Gear are also single player devices that can not be multiplayer enabled.
These users thanked the author crashoverride for the post:
darknior (Tue Sep 22, 2020 6:43 pm)

Slaminger
Posts: 286
Joined: Tue Jul 16, 2019 12:30 am
languages_spoken: English, French
ODROIDs: XU4, N2, N2+, C2, C4, OGA, OGA-BE, H2+, OGS, OGST
Location: Canada
Has thanked: 23 times
Been thanked: 73 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Slaminger »

crashoverride wrote:
Wed Sep 02, 2020 12:52 pm
Slaminger wrote:
Wed Sep 02, 2020 12:18 pm
in terms of multiplayer n64/psp do you think thats semi close or a long way off?
N64 multiplayer is planned. PSP is not because it is a single player device (no support for second controller). GB, GBC, GBA, Atari Lynx, and Game Gear are also single player devices that can not be multiplayer enabled.
fair enough, for the gameboy stuff there is a two player function on some titles but i assume its vastly different from player 2 on a console.
As a side note, i was doing 2 player quake 3 arena on dreamcast and the picture starts getting blurry or textures vanish sometimes, and with sonic 2 on genesis it worked fine but the bottom half of the screen on the device getting the signal in was blurry, im not sure if thats because it was model 1 oga, or because of the usb wifi or what.

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Slaminger wrote:
Wed Sep 02, 2020 1:53 pm
i was doing 2 player quake 3 arena on dreamcast and the picture starts getting blurry or textures vanish sometimes, and with sonic 2 on genesis it worked fine but the bottom half of the screen on the device getting the signal in was blurry, im not sure if thats because it was model 1 oga, or because of the usb wifi or what.
There is an issue with the Rockchip video encoder (mpp). It causes the lower portion of complex images to be blurry. I suspect this is a bug in their rate control mechanism. The Rockchip code was under active development at the same time as the multiplayer feature. This made it particularly difficult to isolate issues like this. I eventually used another platform (C4) to isolate this issue. The C4 video encoder did not produce any blurring while the Rockchip encoder does.

Newer versions of mpp may correct the issue. However, since the API is also subject to change, a newer version may not work (this already happened during development and is not theoretical). For this reason, I am waiting for mpp to "stabilize" before testing newer commits.
https://github.com/rockchip-linux/mpp/commits/develop

Veuks
Posts: 13
Joined: Sat Mar 14, 2020 7:00 pm
languages_spoken: english français
ODROIDs: Odroid Go Advance / Odroid N2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Veuks »

Great job, thank you very much !

Is NEOGEO planned?

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Veuks wrote:
Fri Sep 18, 2020 4:12 am
Is NEOGEO planned?
There are currently no plans for NeoGeo.

Veuks
Posts: 13
Joined: Sat Mar 14, 2020 7:00 pm
languages_spoken: english français
ODROIDs: Odroid Go Advance / Odroid N2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Veuks »

crashoverride wrote:
Fri Sep 18, 2020 6:52 am
Veuks wrote:
Fri Sep 18, 2020 4:12 am
Is NEOGEO planned?
There are currently no plans for NeoGeo.
Ok I'm sad to hear that, it's the ultimate 2 player console (Metal Slug, KOF, Windjammers, Street Hoop, Art of Fighting, etc....), but this new function is already terrific !

Are you in contact with the Batocera team ? It would be great if they could include this function as well.

I told them about that but they said they didn't have the source code.

I don't know if your work is opensource but I saw that RetroArena offers this new function too.


Thanks again, I have 2 OGA and have been waiting for this for a while...
Last edited by Veuks on Fri Sep 18, 2020 1:41 pm, edited 3 times in total.

User avatar
odroid
Site Admin
Posts: 37528
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 1835 times
Been thanked: 1155 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by odroid »


crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Veuks wrote:
Fri Sep 18, 2020 7:18 am
it's the ultimate 2 player console
I should clarify that I have no plans currently to introduce NeoGeo. However, any "libretro" core that works with RetroRun will automatically get multiplayer support from it. NeoGeo is expected to work with RetroRun, but it is not included due to the complexity it introduces.

TL;DR - Its possible for a customer or community member to add NeoGeo.

Veuks
Posts: 13
Joined: Sat Mar 14, 2020 7:00 pm
languages_spoken: english français
ODROIDs: Odroid Go Advance / Odroid N2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Veuks »

crashoverride wrote:
Fri Sep 18, 2020 7:33 pm
I should clarify that I have no plans currently to introduce NeoGeo. However, any "libretro" core that works with RetroRun will automatically get multiplayer support from it. NeoGeo is expected to work with RetroRun, but it is not included due to the complexity it introduces.

TL;DR - Its possible for a customer or community member to add NeoGeo.
Ok, I understand, and thanks for the explanations.

I really like Batocera, but I will be using your OS for multiplayer on another SD card.

Veuks
Posts: 13
Joined: Sat Mar 14, 2020 7:00 pm
languages_spoken: english français
ODROIDs: Odroid Go Advance / Odroid N2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Veuks »

crashoverride wrote:
Fri Sep 18, 2020 7:33 pm
Veuks wrote:
Fri Sep 18, 2020 7:18 am
it's the ultimate 2 player console
I should clarify that I have no plans currently to introduce NeoGeo. However, any "libretro" core that works with RetroRun will automatically get multiplayer support from it. NeoGeo is expected to work with RetroRun, but it is not included due to the complexity it introduces.

TL;DR - Its possible for a customer or community member to add NeoGeo.
Hey, I created a new topic, I hope you could considerate it : viewtopic.php?f=193&t=40343

darknior
Posts: 1
Joined: Tue Sep 22, 2020 6:26 pm
languages_spoken: french
ODROIDs: Odroid N2, OGA, OGA v2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by darknior »

Hi, really incredible this feature !!!
It's really better than using the Network Libretro option ... that not works fine every time :(
Here it's the same thing but in local network and i think it's a really good idea :)
Really wish you will let Batocera include it, because we are many to use it on OGA :)

I wish too, you will in the future add a 3 and 4 player mode, because so many games are so cool with 4 players :)
Thanks a lot for this hard work

User avatar
rooted
Posts: 8550
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 742 times
Been thanked: 345 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by rooted »

darknior wrote:Hi, really incredible this feature !!!
It's really better than using the Network Libretro option ... that not works fine every time :(
Here it's the same thing but in local network and i think it's a really good idea :)
Really wish you will let Batocera include it, because we are many to use it on OGA :)

I wish too, you will in the future add a 3 and 4 player mode, because so many games are so cool with 4 players :)
Thanks a lot for this hard work
4 player powerstone on dreamcast would be insane.

User avatar
mad_ady
Posts: 9469
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 604 times
Been thanked: 678 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by mad_ady »

I haven't looked at crash's code, but if it uses UDP to transport video data, then it could use a hardcoded multicast IP address (e.g. 230.0.0.1) so that all clients can receive the same IP packet (without the need to duplicate packets). However, since this is wifi - there are some limitations with regard to multicast use (https://wirelesslywired.com/2019/05/02/ ... -wireless/). Most likely the medium will be forced to work at 1Mbps data rate, so that the packets are understood by all. So - not as good..,.
Duplicating unicast streams over wifi may cause lag/stutter. Not sure what maximum video data rate the current system uses...

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Updated first post with new image (200923). The main feature of this update is N64 multiplayer support. Note that multiplayer does not wait for player 2 to connect like the other emulators do. This is due to technical issues with mupen64plus.
These users thanked the author crashoverride for the post:
odroid (Fri Sep 25, 2020 3:29 pm)

Josh86
Posts: 93
Joined: Fri Jan 17, 2020 4:24 am
languages_spoken: english
Has thanked: 10 times
Been thanked: 13 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Josh86 »

The save state bypass (F1 hold) seems to be really inconsistent for me. In about 30-40 tries I was only able to manage it about 5 times with no apparent reasoning as to what made it work. I tried both genesisplus and snes9x and only tested a single rom for each system.

Held the function key for longer/shorter periods during the execution, same with the actuation of the A button press. Navigated emulation station around and also reset the frontend in between attempts but that didn't make a difference.

Not sure what else to experiment with in an effort to identify/isolate the cause. Tried with both the black edition revision and original OGA board.

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Josh86 wrote:
Fri Sep 25, 2020 11:02 pm
The save state bypass (F1 hold) seems to be really inconsistent for me.
In EmulationStation, hold F1. While holding F1, press "A" to launch a selected game. After the game has started, release F1.

Josh86
Posts: 93
Joined: Fri Jan 17, 2020 4:24 am
languages_spoken: english
Has thanked: 10 times
Been thanked: 13 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Josh86 »

That's what I do. So it works for you when you test it, then? When I say 30-40 tries, I am not exaggerating! When it did work, I tried it again immediately as naturally as possible only for it to not work about 10-12 times after.

I only tested it with slightly shorter/longer (as well as softer/harder, lol) F1 holds during emulator execution and the speed of hitting "A" in ES (tapping A as quickly as humanly possible vs naturally pressing it) to make sure there wasn't some double input or poor contact. I reloaded emulation station and rebooted the device in between a few tries. I just can't figure out why it doesn't work 90% of the time. I was really bound and determined to figure out what exactly was going on but I could not get any consistent behavior.

I can tell you that holding F1 until the rom booted almost always quit the emulator and brought me back to emulation station. The few times it didn't was when it worked and loaded without the savestate.

Is it possible there's something I could be pressing or doing beforehand that gets the input state stuck or not work?

I will link a video after giving it another shot this afternoon.

Edit: You'll see it start working a couple times at 0:45, then continues to not work again. Happens on all my units.
https://youtu.be/QXKdRp_El_Y

Josh86
Posts: 93
Joined: Fri Jan 17, 2020 4:24 am
languages_spoken: english
Has thanked: 10 times
Been thanked: 13 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Josh86 »

Seems like it depends on the emulator used. From the small handful of systems I tried only mgba seems to be working. Assuming it's the emulator for the three systems supported (GBA, GB, GBC).

crashoverride
Posts: 5383
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 457 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by crashoverride »

Josh86 wrote:
Fri Oct 02, 2020 1:30 am
I can tell you that holding F1 until the rom booted almost always quit the emulator and brought me back to emulation station.
I can reproduce the issue and will look into it. Apparently, it just happened to work correctly each time I tested it.
Josh86 wrote:
Fri Oct 02, 2020 9:47 pm
Seems like it depends on the emulator used.
The feature is only enabled for RetroRun and mgba. RetroRun hosts many systems while mgba hosts all three GameBoy systems (GB/GBC/GBA).

Christian_Haitian
Posts: 48
Joined: Sat Nov 10, 2018 10:40 pm
languages_spoken: english
ODROIDs: Go, Go Advance
Has thanked: 19 times
Been thanked: 23 times
Contact:

Re: Introducing ODROID-GO Advance Multiplayer Preview

Post by Christian_Haitian »

I tried 9/23 image using odroid go advance 1.0 with the odroid 5A module and it works with using an existing wifi AP. When attempting to use the hotspot feature, while it can create the AP, another OGA can't connect to it. I decided to try and connect my android phone to the ssid it created but it just constantly disconnects and eventually gives up. Apparently the hotspot feature is not designed to work with the Odroid 5A module. At least not yet.
A jack of all trades is a master of none, but oftentimes better than a master of one

Post Reply

Return to “Game emulations”

Who is online

Users browsing this forum: No registered users and 1 guest