Launcher Net Play

This page explains how to play Amiga games only with the new FS-UAE Launcher Net Play support. This guide was last updated on 2012-10-24.

Please keep in mind that the feature is a bit young yet, and while it is fully functional, some nice-to-have-features are still missing. You therefore need to activate the feature in the launcher first. Open FS-UAE Launcher Settings, go to Experimental Features and enable the Experimental net play GUI. When you re-start FS-UAE Launcher, a new net play tab (a chat icon) is available.

Click the net play tab button to get started, this will instantly connect you to irc.fengestad.no. Your nickname will be based on your current username on your computer. You will automatically join the #lobby channel (To exit net play mode, you currently need to restart the launcher).

Channels and Games

In order to play a game, you need to join a game channel. Game channels end with -game. You can only be in one game at a time, and if you join a new game, you will automatically leave the previous game.

/join #foo-game

Only an operator on a game channel can set configuration on behalf of all players and start the game. When you are the first person to join a new game, you will automatically be promoted to “op” (game administrator).

Setting Up the Game

You should first get some other players to join your channel 🙂 (but you can try starting an online game with only yourself if you just want to test it).

While players are in the game channel, configuration changes done by the op will automatically be broadcast to other players.

While joystick port modes are automatically synchronized, the devices in the ports are not. You must manually decide who should use which joystick port. For instance, one player may have:

Keyboard
No Host Device

while the other player will have:

No Host Device
Keyboard

(Or of course the name of your joystick instead of Keyboard if you have a joystick or gamepad :))

Launcher File Database

File checksums are used to:

  • Automatically select the same kickstart and floppy images for all players, even though the location and file names may differ
  • Ensure that the same images are used for all players (The names can differ).

All players should have run the “Scan” function in advance so floppy images and kickstarts are registered in the database, or the automatic file selection procedure will not work (and players must choose compatible files manually).

Starting the Game

When you are ready to play, a game server instance must be started to handle the game. You use the /startgame command to do this -to use the default server running on fengestad.no:

/startgame fengestad.no

You can of course run your own servers (more info below).

The above command will automatically start a new server on fengestad.no for your game, and the server settings are automatically sent to all players. All launchers will then automatically verify that they can contact the server on the correct port.

You then use the normal start button to start the game. Only the op can start the game, but it requires that all players first have set their status to “ready”. Players can use the start button to set ready status or type the “/ready” command.

Mismatching Config

The game may refuse to start with a message warning about mismatching config. This can be caused by one player manually overriding a common option. The op can run this function to verify the configuration:

/verify

This command will behind the scenes check that all players have the same config as you, and any discrepancies will be reported automatically in the channel, in red font.

As op. you can also use the following command to re-send your configuration and force the other clients to update their configuration:

/sendconfig

Game Servers

There is a permanent game gateway server running at:

fengestad.no 25101

This server is located in Trondheim, Norway. You can use this if you don’t want to run your own server. For instance, the following command will start and configure a game server for 3 players.

/startgame fengestad.no 3

(You only need to specify the number of players if not all players have joined yet. If you omit the player count, the number of players currently in the game channel will automatically be used).

The /customgame command can be used to connect to a specific already-running game server instance instead. This options is documented below.

Supported IRC Commands

join

To join a chat channel:

/join #nameofchannel

To join/create a game (replace foo with something else):

/join #foo-game

part

To leave a channel:

/part #nameofchannel

kick

When in a channel (game or chat), you can type:

/kick <nick> [<reason>]

Other supported commands

mode, oper, msg, notice, away

raw

You can use the raw command to execute IRC commands not directly supported yet, for instance:

/raw topic #channel :the new topic

Special Game Channel Commands

startgame

For now, there is no GUI browser to select game server (etc) so you need to type a command. Only an op on a game channel can start a server on behalf of all players!

The startgame command makes the launcher contact an existing net play service and start a new game server instance for your game.

/startgame <host>[:<port>] [<players>] [<password>]

Example:

/startgame fengestad.no:25101 3

hostgame

FS-UAE Launcher can start a game server instantly on the host computer. This can work well if you are playing with others over LAN. You need to provide the IP address the other computers must connect to (i.e. your IP address) as the Launcher does not currently auto-detect this.

/hostgame <host>[:<port>] [<players>] [<password>]

Example:

/hostgame 10.0.0.5

customgame

When you have manually started a game server instance, you may instead use the customgame command (ops only) to use this server:

/customgame <addresses>[:<port>] [<players>] [<password>]

Example:

/customgame 10.0.0.1,127.0.0.1:25186 2 JoZ7HHfggU
The parameter addresses can be one or more IP-adresses or hostnames separated by commas. The clients will try these in sequence until successful and can be useful if some players must connect to an internal IP adress and some to an external IP address.

resetconfig

This command will reset your current config and set all config values to defaults. This is the same as clicking on the “New Configuration” button. However, if you are op on the game channel, the resetconfig command is also sent and applied for all other players!

/resetconfig

sendconfig

This command forces re-broadcast of your configuration values.

/sendconfig

verify

Use this to get all other players to report incompatible options:

/verify

check

Use this if you want to see the value for a specific option (for all players). Example:

/check amiga_model

ready

Change status to ready (You can also just use the “start” button).

/ready

notready

Change your status to not ready. The game cannot be started until you have changed status to ready again.

/notready

Known issues

  • Custom config values should not be used (or custom config must be compatible for all players). The launcher does not check this. UPDATED: the launcher will filter many known unsafe options.
  • The launcher does not check custom settings, so you should not use these unless they are “net play safe” (i.e. the settings do not affect net play compatibility, for instance theme and scaling options are safe). UPDATED: the launcher will filter many known unsafe options.
  • If you are using folder-based hard drives or large HDFs, these are not checked for compatibility before starting a game!!
  • Changing nicks is not handled properly.
  • If you are suddenly disconnected from the IRC server, this is not handled properly.
  • A temporary state dir is used when launching the net play game, so floppy overlays and earlier save states are not available.
  • When starting a game server with /startgame, communication is done synchronously in the main thread, so the GUI may briefly hang.

Further Work

  • Add more IRC commands (support channel mode setting, making games private/invite only and/or password protected, etc).
  • Flag channel (with a color or symbol) in the channel list if something was said when you are looking at another channel.
  • Detect properly when other people changes nicks.
  • Function to start a local game instance server on demand from the launcher (Update: this is now implemented -needs documenting).
  • GUI for starting / choosing net play servers.
  • More IRC-related GUI. Right-clicking on users and channels with command IRC operations (etc).
  • Support flashing window in the taskbar (or similar) when messages are received when you have another window active.

 Further Ideas

  • It would be useful to see in the game channel the latencies between each player and the netplay instance server.

23 thoughts on “Launcher Net Play

  1. Hi! First of all thank you for your HUGE work (we love the arcade launcher!!)

    me and a friend of mine are trying the netplay, but without success.

    this is what we do:

    1) on the 2.4.1 launcher we’ve enabled the advanced configs and restarted it
    2) went into the Net Play tab
    3) /join &doubledragon
    4) /start fengestad.no:25101 2

    at this point the irc windows always says “problem starting game server: HTTPError()”

    if, on the other hand, we try to do /hostgame my_public_ip 2 the program always says: “AttributeError(“‘ServerWindow’ object has no attribute ‘Show'”,)”

    This is happening both to me and my friend.

    We’ve then read about a bug in the current version, so we’ve tried as stated somewhere in this thread the 2.5.23dev version, but that one does not even connect on the irc.fengestad.no channel.

    What can we do to fix it and finally play Amiga on netplay?

    Thank you!

    • Hi, and thank for your feedback 🙂

      It turned out that the server hung (or something). I restarted the net play server, and now it works again (both the stable version and 2.5.23dev, hopefully).

      (If 2.5.23dev does not connect to the IRC server properly, please send quit FS-UAE Launcher and send fs-uae-launcher.log.txt to frode@fs-uae.net after having unsuccessfully tried to join the net play lobby).

  2. Hi there,

    I used FS-UAE before and it works, but now is’t working. I used ADFs and HDFs and of course i have ERROR 8 FROM NETPLAY SERVER. Before I used only HDFs and it works perfect. Second thing, I can’t make my own server.
    1. /join &mygame

    2. /hostgame 192.168.1.103

    and i have “started game id: 6ebacf64-931e-4cd1-85fa-d35de2ed4c8c password: server: 192.168.1.103 port: 25160
    successfully connected to net play host: 192.168.1.103”

    3. /startgame 192.168.1.103

    Problem starting game server: Traceback (most recent call last):

    File “c:\Python33\lib\socket.py”, line 426, in create_connection
    sock.connect(sa)
    ConnectionRefusedError: [WinError 10061] Nie można nawiązać połączenia, ponieważ komputer docelowy aktywnie go odmawia

    What’s wrong? I installed python of course. One year ago I played without problems on my servers and with (www.amigaonline.co.uk) images, now is impossible.

    • Hi, HDFs cannot be used with net play, that never worked (it will always desync with error 8). ADFs work fine if all players have the exact same file(s).

      Regarding the second problem, you do not use /startgame after /hostgame – you only use either of them. So if you want to spawn a new server on your own computer, you just use /hostgame (/startgame is used to connect to some permanently running game servers such as fengestad.no)

      • Aa now the server is working fine, thank you. But still have problem with desync. I’m using the same adf image, the same kickstart and it won’t work (ERROR 8 FROM NETPLAY SERVER). When it is starting (dark gray -> gray -> white view) it’s ok but after that error 8 and offline mode. I’m trying to set it with my two computers in lan. Now i have no idea 🙁

        • If you send fs-uae.log.txt from both computers after the error has occurred (quit FS-UAE first), I can compare those and look for incompatible configuration. Send to frode@fs-uae.net.

          • Ok, I solve it right now. It needs to write port, I didn’t use it. So now i write /hostgame 192.168.1.100:25111 then use the same lotus II adf image on two computers, and it works perfeclty. And something interesting: I used Alien Bread (amigaonline.co.uk) and there is no error 8, so some of WHDLoad’s works too, Am I right ?
            BTW: Thanks for all help 🙂

          • WHDLoad games work fine as long as you’re using directory hard drives or zipped directories (HDFs do not work), and not using a fastest-possible (A4000) model.

  3. with ADF works. but if i try to play online with a HDF game it says:
    ERROR 8 FROM NETPLAY SERVER
    why?

    • Hi, HDFs are incompatible with net play due to the way the HDF functionality is implemented (FS-UAE cannot keep the emulation in sync with HDFs). But you can use directory hard drives (or zip files as virtual hard drives) as long as all players have the exact same files.

        • No, zipping the HDF won’t work. I meant a zipped directory. (Like a directory hard drive, but putting everything in a zip instead of in a folder). You cannot use .hdf files in any form with net play, currently.

          • i tried play online with zipped folder but it says:
            ERROR 8 FROM NETPLAY SERVER

          • Error 8 means that game desynced. This happens if either:
            * The game media files (i.e. the zipped folder) are different, or
            * The configuration is different, or
            * You use configuration options or features which are incompatible with net play. For example, you cannot use A4000 (or any Amiga model in fastest possible mode) in net play, and not HDFs.

  4. Thank you for this brilliant piece of work.

    I have a problem. I cannot host a game.
    192.168.1.81 is the private ip of my computer.
    After I join the & channel, I write /hostgame 192.168.1.81 2
    It gives:
    AttributeError(“‘ServerWindow’ object has no attribute ‘Show'”,)

    And when i try: /startgame 192.168.1.81 2
    It outputs:
    problem starting game server: URLError(error(10061, ‘No connection could be made because the target machine actively refused it’),)

    I’ve noticed that a process was created when I tried hostgame.
    Btw, your server fengestad.no 25101 works without any problem.
    Any suggestions are welcome.

    • Hi, the “‘ServerWindow’ object has no attribute ‘Show'” bug should be fixed in FS-UAE 2.5.19dev, just released!

      Regarding /startgame, that command can only be used with running services, such as the one on fengestad.no. When you use /hostname, you use that *instead of* /startgame.

  5. Pingback: FS-UAE Net Play Beta - Page 16 - English Amiga Board

  6. “Click the net play button to get started”

    Where is this button? What does it look like?

    • It’s the “chat icon”. It is only available after you have done this: Open the settings dialog (the rightmost toolbar button), go to “Custom Settings”, and set the netplay_feature to 1 (one):
      netplay_feature = 1
      (In version 2.1.x, this setting has a graphical switch under Settings -> Experimental Features)

      When you re-start FS-UAE Launcher, a new net play tab (a chat icon) is available.

Leave a Reply

Your email address will not be published. Required fields are marked *