Knutselaar maakt pcb-kit om Game Boy-versie van Tetris online te spelen

Een van de weinig dingen die de originele Tetris voor de Game Boy nog kan verbeteren, is online multiplayer. Een programmeur maakt dat nu mogelijk met een zelfontworpen pcb. Je moet alleen nog een multiplayerkabel, een Raspberry Pi en een soldeerbout hebben.

Hacker en knutselaar Stacksmashing verkoopt een zelfontworpen adapter waarmee het mogelijk wordt om Tetris op de originele GameBoy online te spelen. Tetris is de eerste Game Boy-game die ook lokale multiplayer ondersteunde en Stacksmashing heeft daar nu een online multiplayer-tool voor gemaakt.

Stacksmashing maakt voor zijn project gebruik van de Link Cable, de kabel die wordt gebruikt om meerdere Game Boys aan elkaar te verbinden. De hacker heeft een eigen pcb ontworpen waar de Link Cable aan kan worden bevestigd. Gebruikers moeten daar vervolgens nog wel zelf een Raspberry Pi Pico op solderen, maar het pcb heeft daar wel geschikte aansluitingen voor. Vervolgens moeten gebruikers een softwarestack installeren die bestaat uit een Python-server en WebUSB. De gebruiker kan de kit aansluiten op de pc en zo een React-server openen om online te spelen.

Tetris PCB

De maker heeft de code zo gemaakt dat er op een aangesloten pc een gameserver wordt opgestart. Daarmee is het mogelijk om niet alleen een-tegen-een-wedstrijden te spelen zoals bij de originele game mogelijk is, maar ook met een theoretisch oneindig aantal spelers. Stacksmashing verkoopt de bordjes voor 15 dollar, gebruikers moeten daarnaast de Raspberry Pi zelf nog kopen en erop solderen.

Door Tijs Hofmans

Nieuwscoördinator

17-05-2021 • 10:56

15

Reacties (15)

15
15
12
1
0
3
Wijzig sortering
hardware: ja
Software: nee

Je zult voor andere spellen nog wel een andere server software moeten schrijven. Bijvoorbeeld het uitwisselen van pokemon zal niet gaan middels de software die voor tetris geschreven is, zie ook het filmpje waarin hij uitlegt wat hij allemaal gedaan heeft.

edit:
had in reactie op @Creesch moeten zijn :)

[Reactie gewijzigd door Paitor op 31 juli 2024 19:53]

Als het stukje hardware gewoon "alle data" over die kabel omzet naar waardes die over het internet kunnen verstuurd worden, en aan de andere kant weer omgezet werd in "kabel-data" dan zou toch gewoon elk spel moeten werken? Het spel weet dan immers niet of hij "draadloos" verbonden is of niet.
Kan het niet zo zijn dat er spellen zijn die een bepaalde 'response' tijd verwachten, waar je over het internet dus lag kan(zal) hebben en dus een 'variabele' response tijd.
Goeie vraag, alhoewel het me niet zou verbazen dat er helemaal geen rekening mee wordt gehouden gezien ze toch programeren met een directe link in het achter hoofd waar ze praktisch geen rekening hoeven te houden met response tijd.

Dat alles simpel weg bevriest terwijl je wacht op een response.
Volgens mij op "oudere systemen" met data-transfer was de response tijd wel een eigenschap die gebruikt werd om te kijken hoeveel data verstuurd werd, maar dit weet ik niet zeker. Wanneer de response tijd bekend is (wat het waarschijnlijk is met twee dezelfde apparaten en een standaard kabel) kan een zender een bericht versturen. Dan "x clockcycles" wachten en dan weet hij dat er "x" bytes terug gestuurd zijn.
Waarschijnlijk wel. Tetris niet: je kon de kabel er uit halen en de game bleef gewoon doorlopen. Hierdoor kon een tegenstander geen "lijnen" naar je sturen.
Ik denk dat het grootste struikelblok is dat er met een korte link-kabel geen tot weinig latency is, en met het internet er tussen wel.
Met de snelheid van de gameboy denk ik dat latency niet snel een probleem vormt. In feite is het allemaal al heel erg traag, dus wat ms trager is niet snel een probleem verwacht ik.
Ah thanks, helaas niet in staat het filmpje te kijken met geluid nu. Op de gelinkte website zag ik het niet staan.
Grappig project :) Ik neem aan dat het niet alleen voor Tetris is maar ook voor andere spellen die de link cable ondersteunen?
In theorie is dat mogelijk ja, maar wat hij zelf heeft gemaakt werkt vooralsnog enkel met de logica van hoe Tetris ermee omgaat. Dus dan moet je zelf wat in elkaar flansen, al heb je wel de hardware al.
Ah, ik was niet in staat om het filmpje te kijken waar het blijkbaar wordt genoemd. Op de gelinkte website zag ik het zo snel niet staan.

Wel interessant dat blijkbaar er geen generiek protocol is voor de Link Cable?
Op zich niet vreemd, per spel wil je je logica zo optimaal mogelijk houden terwijl generieke functies meer overhead geven (zowel qua ruimte op de cartridge om die standaard functies te herbergen als mogelijke delays in het coderen/decoderen van het protocol).
Mja opzich heb je een punt maar in de basis is het nog steeds binaire data die over een kabel gaat. Nu ik tijd heb gehad om het filmpje te kijken lijkt het meer te maken te hebben met het feit dat hij meer doet dan alleen maar het protocol doorsturen maar er ook functionaliteit aan toevoegt en verplaatst (computer als host). Vanuit dat oogpunt is het logisch dat er speciale code geschreven moet worden.
Inderdaad. Mocht je 1v1 doen, dan kun je de data 1:1 doorsturen. Maar in dit geval heeft hij de mogelijkheid ingebouwd om een volledige lobby te hosten, wat dus extra logica met zich meebrengt vanuit de server.

Op dit item kan niet meer gereageerd worden.