Hardware Multiplayer (game)

here’s the old (working) jacdac with both connected/playing

TEK0000

here’s what it looks like with the code i compiled today. when disconnected, pulses from 0-3.3V.

TEK0001

When connected, pulses from 0-1.4V!
TEK0002

hmm - pygamer 3.7.0 bootloader UF2 has

image

and pybadge 3.7.0 bootloader UF2 has same

image

so im not sure what to check next :confused:

hiya @mmoskal @richard - any update or suggestion on a multiplayer game thats workin’ now i can test these cables with?

poke poke @mmoskal @peli we’d like to do a multiplayer game guide :slight_smile:

@ladyada does the game above not work for you? https://arcade.makecode.com/54386-28508-45239-82108

Works for me with two meowbits. They run their v2.7.5 firmware

After the game over screen, they often, always, loose sync (Connection lost on one of them). It even happens that one of the meowbits report a 020 error code (OOM) at that time.

1 Like

@richard if i go to that page in Chrome, click Edit Code, then click download i get this error

image

Ah, sorry! This game requires beta, I should have specified. Try this link: https://arcade.makecode.com/beta#pub:54386-28508-45239-82108

I was able to get this running on a Pybadge LC (didn’t test the actual multiplayer part, just saw the connecting screen).

yay that seems to work just fine, we’ll put the cables in the shop :slight_smile:

2 Likes

OK cable is here! https://www.adafruit.com/product/4342 works nicely :slight_smile:

2 Likes

What version of the bootloader worked with a multiplayer setup? I am using an Itsybitsy M4 for my custom arcade setup but v3.4 does not seem to work for multiplayer.

the bootloader has to indicate a pin for jacdac, which im not sure the itsy does?

Funny, so the PyBadge uses MicroUSB (JACDAC pin = 5th ID pin) instead. The Meowbit and Brainpad actually use a TRS (3.5mm) jack plug, which gets confused for a headphone jack.

So far, I haven’t seen any specification for this, but I believed @jamesadevine used the same jack plug for Project Alava as these cables are easy to come by. Any thoughts on making a choice for the spec?

On a sidenote: the Atari Lynx used 2.5mm jacks as part of their ComLynx system. It prevented the issues with thinking it is audio, but also these cables were cheap to get and provided a splitter to link them together

atari_lynx-comlynx-cable

One of the games that utilized this was SlimeWorld . Not the greatest game, but super fun with a bunch of people (up to 8). Another was BattleWheels with up to 6 players, Checkered Flag, etc. At this link you can see SlimeWorld with some game screenshots. It was a simple serial connection … but very useful!

2 Likes

hiya yeah we did not want to use a headphone jack because we use headphone for audio on the pygamer. this was a ‘free’ and easy way to make a connection cable. we’re hoping that next spec will use USB C connectors and that way gets to use one of the many available pins on USB C :slight_smile:

1 Like

Here are multiplayer demos for Arcade running on FW v3.4.0.

custom board and Meowbit:

two custom boards:

I used the TRRS module from Sparkfun for JACDAC connection. https://www.sparkfun.com/products/11570

1 Like

Reviving an old thread - what’s the current status for two-player games on hardware? I’d love to experiment with this further, but there seem to be some incompatibilities with the current editor.

I found a UF2 file for Space Destroyer, and that works great as a two-player game using the direct USB connection cable between two PyGamer devices: https://cdn-learn.adafruit.com/assets/assets/000/083/139/original/arcade-jacdac-multiplayer-demo-final.uf2

However, I’m having trouble loading the game in the editor, both using the direct link above and the beta editor.

Errors include:

main.ts
    Line 1: jacdac.controllerService.stop();
    => Cannot use namespace 'jacdac' as a value

socket.ts:
    Line 126: Namespace 'jacdac' has no exported member 'JDPacket'.
    Line 146: Property 'sendPacket' does not exist on type 'Socket'.

The jacdac-game section in Explorer has a red 1, but I don’t see a corresponding error message. I’m guessing it is likely related to the following error on the JS console?

pxtapp.js:2493 invalid package jacdac-game: version not specified for jacdac-game

I also found the pxt-jacdac extension, but I’m unsure if that’s intended to replace jacdac-game.

Are there any other current examples for two-device multiplayer games?

Ah, jacdac is in the middle (maybe later stages) of a rewrite / is still experimental so it’s very possible jacdac-game got broken. @peli did we have any current multiplayer jacdac info or anything of the sort to share?

2 Likes

Hi, I’m trying to connect two Meowbits for multiplayer, using the Arcade Block library. Using the Controller/Multiplayer blocks, and a headphone jack connection, there just seems to be no communication between the two boards at all. Is there anything I need to check?

Stumbling upon this thread, it seems that multiplayer on two boards currently does not work, at all. Is that correct?