Researching the transmission of data through an audio cable. 🎀


LinkFormat
Here is images of how a Game Boy Link Cable communicates to a system.
As shown, it is possible to do this "pulsating" with audio within the Playdate.
I am worried about "lag" and both systems desyncing.
I have no idea how its possible to do this if its a mono cable... or if the microphone only records in mono.
Just the ongoing research of making two playdates talk to one another.

6 Likes

Screenshot 2023-04-21 at 9.48.19 PM

Old thoughts.

Does this perhaps mean it is possible to record audio in Stereo?
If so, that could help with syncing data as soon as possible for more diverse multiplayer options. (Example being: Arcade, Platformers and Action games)

If Stereo can be recorded and be converted to something the playdate can read quickly on the buffer. That could open up a lot of interesting ideas.
Although, my goal with this was actually making a cute card game, playtag (Nintendo Streetpass clone for Playdate.) and some experiments I may write such as a ping pong using my link cable research.

Update: I realized the Playdate can ONLY do mono microphone input.
( A single β€œTRRS” **handles both mono microphone-in and stereo sound-out. )

Super Mario Bros. Deluxe - 2 Player
Looking at this video, I have no idea how Nintendo pulled this off using a GameBoy Color Link Cable. It blows my mind honestly. With the coins disappearing once one of the brothers touches one and it doesn't show on the other players screen. The player movements are also really well done. No idea how this was accomplished.

As I heard from the Playdate Podcast, Bluetooth does not sound fun to program. I am not sure if Bluetooth will support Playdates communicating to one another but it also sounds like it would drain the battery a lot, be a pain to sync and the latency would be butt. Just things to point out before I continue my research.

Also, I have been contemplating for the longest time to learn Lua after my years at learning Ruby. So perhaps this next week I can actually make a little game code sample for myself.

:playdate_zzz:

2 Likes

I decided to start work on a Morse Code system for Playdate.
Its gonna be based on how SquidGod made theirs.

Error prevention is the first thing to get out of the way. How could it be prevented? Lets say a Playdate sent a code to the other Playdate but that time the Playdate didn't get the full response. So then it will ask a "can you repeat that again" morse code. If the Playdate ALSO didn't understand the "can you repeat that again" code it will count the amount of attempts until it throws a error and stops the connection. It would basically go into a endless loop if it didn't understand.

Code recognition has to not be tied to frame rate. SquidGod has said it was originally was tied to frame rate. I wonder if theres a way to not do that.

1 Like

Another thing to note about morse code is that it is slow.
I wonder if there should be a buffer between the two playdates to make sure all the audio code gets received correctly. That would also be a very slow process. Maybe there should also be a "okay, I got it" code to make sure the other playdate understood what the other says to it so the buffer can be determined. It also means the other Playdate is ready for another code.
I am worried about what if the connection gets too slow and makes the game more of a drag. Especially since there has to be a bunch of buffer time to make sure both systems can send data to each other as soon as possible.
Just keep these connections as minimal as possible. Theres no way to make a action game with this. But its perfect for the type of game I would like to do.

Is it possible to use separate audio channels for Playdate Simulator?

Such as simulating the system speaker versus the headphone jack.

Cause my method needs sound to not only play out of the headphone jack but out the speaker so the game actively has audio still.

1 Like

"This function has no effect in the Simulator."

Oh. Welp, I need to wait to get my unit in order to test further.
That also means I need more than two.

I have a unit if you would like me to test some stuff for you!

2 Likes

I appreciate the offer, however there is a lot of things to know how this works.

  • You would need two Playdates to test the connection.
  • You also need special audio cables to make the connection possible, without damaging the headphone jack.

Which you can find all here on Amazon.
3.5mm Male to Dual Female Headphone Mic Splitter Cable
Headphone Extension Cable

The setup basically swaps the audio output to the other playdates microphone creating a method of a "link cable".

My situation right now is I want to test the audio output from BOTH the system speakers while also sending audio through the headphone jack.
Kinda like when you have a headphone jack in a Nintendo DSi and you take a photo, the systems speaker makes a "snap" noise really loudly.
I also have talked to someone here about that it is "possible" but I want to test it myself.
Or unless someone can for me cause this process will take a really long time to finalize.

Theres also the possible chance I can make my own headphone jack cable like this for the Playdate that matches the whole aesthetic with a purple and yellow striped coil wire and also clips onto the bottom of the Playdate. Eee.
But so far, I have no idea what Panic has in store for multiplayer on Playdate.
I maybe the only one who is crazy enough to think about it as the selling point for me.
I also am unexperienced at coding in Lua so take anything I make currently with a grain of salt. The Playdate will chug my code.

1 Like

Alright, sounds good. Good luck with this nonetheless, I’m excited to see where this will go!

1 Like

That is really exciting.

Maybe you can take a look at the developer map to search if there is someone near you with a Playdate:

Or you can try to start by Playdate to Computer communication and make the computer play out loud the sound sent by the Playdate (when you will have yours).

This is a really cool project. I love the idea of the little handhelds bringing people together via two-player games. I've thought about doing something turn-based, so that lag is not as much of an issue.

It's kind of niche, but two-player games do kinda play into the name of the device, which implies setting a date to play with someone

I will have access to two devices within a couple months i think. Would love to test these ideas and help contribute to the code base when they arrive if you're open to collabs

1 Like

I am so down for strategy board games on Playdate. That one (spoiler) game on Playdate is so fascinating!
It makes me wish there was a way to create local play with games like it!
Makes use of player customizability, board pawns, deck of cards, anything!
Playing with friends is the greatest feeling a videogame can bring cause anyone can have a different experience with another person.

I will still need to experiment and see methods on how to beep sounds the Playdate can record without much delay.

I may need to take a look at how the microphone handles volume and determining length. Maybe possibly volume difference for more snappier data transfer?

yeah if u can detect volume input and control output really precisely, i dont see why volume couldn't just be another dimension which could hold a meaningful data point. good idea, egg. notes too.

maybe we write midi files that represent a state of the game, and that could be transferred via audio coming from of a synth. idk but sounds fun to investigate

1 Like

You could speed this up by using an approach similar to barcode checksums. To oversimplify; carrying out a fixed mathematical operation on all but the last digit in the code produces the final digit, the receiving system can carry out this operation on the data it receives and knows whether it's valid without any need to check back with the sending system. Instead of an "okay, I got it" code being sent back after every message you'd only need a "hang on, I didn't get that" which should happen less often :smiley:

2 Likes

Excellent idea, I will keep this in mind while developing the code for it.

I was simply having a nice nap until my stupid squishy brain was like...

"Hey, do you think the Playdate can ignore the volume of the OS and blast 100% volume of sound into the headphone jack output while keeping the system speaker the same as the set OS volume level?"

At first, I ignored it.
But then like a few minutes later, my eyes bursted open and ran to my phone to type this.
Is it possible?

Just recently I discovered something fascinating about the TurboGrafx 16/PC Engine. It can use an audio cable to play a match of Bomberman on. I am not sure how but I will be looking into how this can also be applied to the Playdate.

Link to RifeXD's video - Youtube Link

2 Likes

That's sick!

Are you familiar with Clash Cards on the Playdate? I could totally see using audio to pass back and forth information to make a two-player version of a turn-based game like this.

Just going to leave this here:

7 Likes

Ooo, interesting.
Its sorta slow and I am not too sure about having Playdates this close to one another in a match of a game for extended periods of time. It could work almost like a StreetPass clone maybe.