Ontwikkelaar maakt videocapturecard voor Game Boy

Ontwikkelaar Sebastian Staacks heeft een videocapturecard gemaakt die specifiek voor de Game Boy werkt. Hiermee kan de gebruiker gameplaybeelden op de oude handheld opnemen of streamen naar zijn pc, zonder dat hij een emulator nodig heeft.

Staacks schrijft in een blogpost hoe de GB Interceptor precies werkt. Het is een adapter die de gebruiker kan aansluiten op een onaangepaste Game Boy om een video op te nemen van een spel en deze via USB naar een computer te streamen. De ontwikkelaar benadrukt dat GB Interceptor niet werkt op Game Boys die een HDMI-poort bevatten of op Game Boy-kloons die gebruikmaken van emulators.

De GB Interceptor wordt aangesloten op de cartridgepoort van de handheld. Vervolgens sluit de gebruiker de gewenste gamecartridge aan op de Interceptor zelf. De gebruiker kan dus het spel spelen op de originele hardware van de Game Boy, terwijl de usb-kabel van de GB Interceptor kan worden aangesloten op een pc voor het opnemen van beelden of streaming.

Bij het aansluiten van de adapter moet de pc het opmerken als een webcam, zodat de video kan worden opgeslagen. Het lijkt erop dat de GB Interceptor momenteel het beste werkt met Linux, merkt Staacks op. Bij Windows en Android hebben de videoapps moeite met het format van de stream en bij macOS lukt het helemaal niet om video's op te nemen.

GB Interceptor
GB Interceptor

Door Loïs Franx

Redacteur

26-12-2022 • 12:17

53

Submitter: TheVivaldi

Reacties (53)

53
53
38
2
1
9
Wijzig sortering
Hiermee kan de gebruiker gameplaybeelden op de oude handheld opnemen of streamen naar zijn pc, zonder dat hij een emulator nodig heeft.
Dit klopt dus niet. De post waar het Tweakers artikel zelf naar linkt geeft duidelijk aan dat het niet de gameplaybeelden op de oude handheld opneemt/streamed. Het cartridgeslot heeft immers geen toegang tot de RAM of de VRAM (Video Ram).
To do so, I had to write an emulator to which I feed the data from the cartridge memory bus. For this I use an rp2040 (the Raspberry Pi Pico’s microcontroller) and split its cores to the two main processing parts of the Game Boy. One core emulates the CPU to recreate a copy of VRAM and the other core emulates the Game Boy’s graphics unit, the PPU4.
Het is vooral interessant om te lezen hoe het indrukken van een knop indirect wordt uitgelezen. In principe weet deze interceptor niet welke knop er is ingedrukt, maar het weet enkel wat voor data de cpu ophaalt uit de cartridge en hiermee is blijkbaar in bijna elke (maar theoretisch niet alle!) knop actie te tonen door de emulator (die dus niet weet welke knop is ingedrukt, maar enkel zijn emulatie doet met de data tussen cartridge en cpu).

Het is eigenlijk veel interessanter dan een video stream apparaat. Gebaseerd op een overgelockte Raspberry Pi Pico. Heel leuk artikel om te lezen voor de Tweaker.
Technisch gezien heb je gelijk, er wordt een emulator gebruikt. Waar Tweakers hier natuurlijk op doelt is dat een streamer gewoon een ongemodde GB kan gebruiken om gameplay te streamen, zonder aanvullende software op de PC te hoeven gebruiken.
En dus vooral geen (vaak illegale) roms nodig :)
Gewoon interesse: wat is de juridische status van het gebruik van de emulator?
wat is de juridische status van het gebruik van de emulator?
Volgens mij wat het altijd is geweest: Je mag wel emuleren, maar je mag geen games kopiëren zonder ze te kopen.

Een emulator kan eigenlijk alleen juridisch bestaan door dezelfde reden dat je vroeger lege cassettebandjes kon kopen: om een kopie te maken en af te kunnen spelen van content die je zelf gekocht hebt.

Uiteraard maakte je volop kopietjes van bandjes van je vriendjes en grote broer/zus, maar legaal was het toen ook al niet.

Nu heeft men geen vriendjes meer nodig want je kan vanalles downloaden, maar het principe is hetzelfde.

[Reactie gewijzigd door B0KIT0 op 22 juli 2024 13:38]

.oisyn Moderator Devschuur® @B0KIT026 december 2022 20:14
Een emulator kan eigenlijk alleen juridisch bestaan door dezelfde reden dat je vroeger lege cassettebandjes kon kopen:
Je vergelijking gaat mank, het is immers de cassettespeler die geëmuleerd wordt. Evenzo is het kunnen spelen van oude cartridges terwijl de hardware om dat te doen niet meer voor handen is natuurlijk een prima legitieme reden voor een emulator.

[Reactie gewijzigd door .oisyn op 22 juli 2024 13:38]

Je vergelijking gaat mank, het is immers de cassettespeler die geëmuleerd wordt.
Ja inderdaad het klopt niet echt :) want het is niet het bandje dat geëmuleerd wordt.

Wat ik bedoel is dat een emulator niet illegaal is omdat je, zoals je al zegt, je oude gekochte cartridges zo kan spelen.

Zo waren vroeger lege cassettes niet illegaal, omdat je een backup van je eigen gekochte muziek moest kunnen maken.

Alleen worden emulators juist voornamelijk gebruikt om illegale downloads mee te spelen, net zoals lege cassettes werden gebruikt om muziek van ekaar te kopiëren.

Beide mag niet, want je pirate je content. Toch mochten lege bandjes gewoon massaal verkocht worden en mogen emulatoren gewoon online staan, want er is ook een legale functie voor. Al wordt die in de praktijk dus niet echt gebruikt.
Amiga emulators hebben er nog wel last van.
Maar in het basisprincipe snap je toch wel wat hij bedoelt?

Er bestaat ook zoiets als thuiskopieheffing als je een DVD koopt bijvoorbeeld. Heck, ik heb bij een bedrijf in het verleden meegemaakt dat we van zo’n (door de minister later op de vingers getikte) stichting een brief kregen dat we een kopieheffing moesten gaan betalen voor als we zaken uit boeken zouden kopiëren :+ terwijl we dat nooit deden en dat we zelf contact op moesten nemen om dat te cancellen anders aanmaningen en deurwaarders.

Natuurlijk is het apparaat waar je het mee afspeelt in zo’n geval vaak het zelfde waar het bij een emulator doorgaans om een andersoortig apparaat gaat maar zolang je het origineel bezit maakt het volgens mij niet uit of je middels software een kopie speelt, en dan is het bij dit apparaat nog zo dat de originele HW nodig is ook.

TL;DR, eigenlijk is een cassettebandje niet anders dan een rom downloaden en dát is doorgaans waar het om gaat.
Gewoon interesse: wat is de juridische status van het gebruik van de emulator?
Net als bij de vele Windows emulators for MacOS. Zolang jouw code maar geen deel van het copryrighted operating system bevat is er niet veel aan de hand. Als jij een CPU ontwerpt die windows kan draaien is dat prima. Maak je een programma dat windows kan draaien, prima. Verander je windows files om dat mogelijk te maken ga je in de fout. Of het wel niet games kan laden maakt niet veel uit. De copyrights van de meeste games hangen niet aan het OS. Als een game op een nieuw platform uitkomt hoef je als gebruiker van een bestaand platform niet opnieuw de voorwaarden te accepteren.

Je mag de games die wij uitgeven spelen op je PC, via cloud op je tablet (welk OS dat ook draait), op je steamdeck, op je Tesla (dat was leuk!), op je smartphone of op je Xbox/PS. Maakt ons niets uit.
Nou ja, je mag wel files van Windows veranderen natuurlijk. Maar de aangepaste files mag je niet verspreiden, want dan verspreid je ook copyrighted materiaal. Voor zover je daarvan kunt spreken bij gecompileerde code, maar ik denk dat een rechter daarin mee gaat.

Voor zover ik weet worden daarom vaak patches verspreid. Dan hoef je geen copyrighted files te verspreiden (de gebruiker heeft die immers al) maar alleen de aanpassingen die je daaraan hebt gedaan. Volgens mij mag dat wel.
Als je ze zelf dumpt zijn ze gewoon legaal in Nederland, je moet alleen de hardware hebben om dat te doen
Dit klopt niet. In Nederland is het dan nog steeds illegaal. Onze autheursrecht wetgeving sluit software specifiek uit, zie ook hoofdstuk vi.

https://wetten.overheid.n...86/2022-10-01#HoofdstukVI
.oisyn Moderator Devschuur® @Verwijderd27 december 2022 19:52
Het is niet illegaal om een zelfgedumpte ROM met een emulator te spelen. Precies dat hoofdstuk dat je aanhaalt voorziet in het feit dat je de software mag kopiëren voor zo er dat voor het uitvoeren ervan vereist is (artikel 45i).
Sorta offtopic: deze kerel is trouwens ook de held achter de (gratis) app Phyphox, welke je telefoonsensoren uitleest en grafisch weergeeft of als csv uitspuugt. Een ware must voor elke natuurkundeleraar.
Cool, bedankt voor de toevoeging!

Voor wie het ook niet snapte, een quote vd website :

Phyphox allows you to use the sensors in your phone for your experiments. For example, detect the frequency of a pendulum using the accelerometer or measure the Doppler effect using its microphone.
Dit is een leuk concept voor die mensen die een gameplay willen maken en perse echte hardware willen gebruiken. Maar ik vraag me wel weer af, of het een meer waarde heeft aangezien je dit makkelijk kunt doen met een Super Gameboy of de Gameboy player voor de Super Nintendo.
.Geek dingen hebben nooit "meerwaarde" behalve dat t gewoon leuk is en omdat het kan...
Ik lees de .geek artikelen meestal dan ook met groot plezier.
.oisyn Moderator Devschuur® @Linksquest26 december 2022 22:26
Dit project komt direct voort uit het competatieve Tetris wereldje waar men op hun eigen hardware wil spelen omdat dat is waar ze gewend aan zijn, terwijl ze wel het scherm willen kunnen streamen voor online matches en/of verslaglegging.

Ik weet niet of je weleens gehoord hebt van Trey Vision, maar dat heeft de competatieve Classic NES Tetris op de kaart gezet. Het is software gemaakt door Trey Harrison die een screen capture doet (gewoon van de composiete uitgang van de NES) en het scherm analyseert en dan opnieuw rendert in HD met allerlei stats, om op die manier verslaglegging van head to head matches mogelijk te maken.
Nice, de gameboy als controller en de weergave op een groot scherm. En zelfs nog leuker als je de controller input naar iets groots los maakt. Kan je op een markt ofzo groots tetris spelen met oude hardware.
Nice, de gameboy als controller en de weergave op een groot scherm.
In de video is te zien dat er nogal wat vertraging is tussen wat op het interne scherm getoond wordt, en wat op het externe scherm getoond wordt. Prima voor (live) streaming, maar niet om op te spelen.

Ik denk dat deze methode (emulatie webcam) ook niet bijster efficiënt is. De resolutie van het scherm is zo laag (160x144) en het aantal 'kleuren' zo beperkt (4), dat lossless realtime capture en tonen van beeld pixel per pixel geen probleem zou moeten zijn. 160x144x4x60 = ~ 5,5 Mbps.

[Reactie gewijzigd door The Zep Man op 22 juli 2024 13:38]

In plaats van het beeld naar USB te converteren zou je natuurlijk ook het beeld direct een videoprocessor in kunnen proppen, scheelt nogal wat stappen. Maar ja, waarom zou je dat willen als je ook gewoon een emulator kunt gebruiken met je PC op een beamer/TV als het alleen om het spelen gaat.
In plaats van het beeld naar USB te converteren
Een voordeel van USB is compatibiliteit zonder noodzaak om nieuwe drivers te ontwikkelen. Je hoeft het overigens niet intelligent als videostream te verwerken. Als raw data (met processing in een client applicatie) zou dat ook prima moeten lukken.

[Reactie gewijzigd door The Zep Man op 22 juli 2024 13:38]

Bepaalde speedrunner categories verplichten je de originele hardware te gebruiken. Dit is dus zeer handig voor hun, als het toegelaten wordt.
Dan moet je waarschijnlijk oftewel een driver nodig hebben of gaat er een capturekaart nodig zijn. Het emuleren van een webcam zal waarschijnlijk de beste plug en play ervaring geven.

Alhoewel er wat gotcha's zijn:
https://there.oughta.be/a/game-boy-capture-cartridge (onder USB video class)
Dan moet je waarschijnlijk oftewel een driver nodig hebben of gaat er een capturekaart nodig zijn.
Volgens mij zou je 5,5 Mbps als 'raw' stream kunnen verwerken. Dan heb je geen capture kaart nodig. Dat zou zelfs door bijvoorbeeld een gesimuleerde seriële verbinding over USB moeten lukken. Alle verwerking zou dan in user-space kunnen gebeuren. Het voordeel is dat de hardware aan de kant van de Game Boy niet heel ingewikkeld hoeft te zijn, omdat geen (lossy) video encoding plaats hoeft te vinden.

[Reactie gewijzigd door The Zep Man op 22 juli 2024 13:38]

Is dit zo nieuw? Vroeger had je al van die TV programma's die games reviewden. Hoe maakten zij dan van die scherpe opnamen?
Je had de Super Gameboy op de NES, maar je had ook speciale gameboys die in de winkel demo setups zaten die ook het beeld naar een tv konden sturen. Ik denk dat de grotere review programma's gebruik maakten van zoiets.
https://www.reddit.com/r/...pter_for_gameboy_classic/

Zie je pics van zo een apparaat...

Was officieel apparaat van Nintendo zelf, werd intern op de print ergens aangesloten.

Dingen zijn uiterst zeldzaam
Ja ik herinner me dat er vroeger in de winkels ook van die demo setups waren dat je dan op de gameboy kon spelen, maar het beeld ook naar een tv scherm ging zodat iedereen mee kon kijken.
Dat was allemaal CGI natuurlijk ;)
Dit is wel een niche binnen een niche. Een emulator die de cartridge bus gebruikt om er maar te zorgen dat de gebruiker geen directe capture op de display connector hoeft te doen.
Het lijkt mij dat voor de meeste mensen een gemodde gameboy of emulator meer nut heeft.
Dit is dus geen emulator :Y)
Lijkt mij wel aangezien je niet de interne staat van de ppu kan zien enkel op basis van de cartridge bus.

However, this means that we cannot randomly access data of interest and we cannot see the data in RAM that the Game Boy’s CPU put together from the raw instructions from the cartridge. Especially, we cannot see the Video RAM, which would have been very nice as it would contain everything3 required to draw the image on screen. Instead, we need to create our own copy of VRAM.

To do so, I had to write an emulator to which I feed the data from the cartridge memory bus.

[Reactie gewijzigd door bantoo op 22 juli 2024 13:38]

Dit is toch nog echt een beetje 'ouderwets pionierswerk' om nog een videocapturecard te ontwikkelen voor een Game Boy. Een teken dat de retro gamingwereld nog steeds in leven is en misschien steeds meer liefhebbers krijgt. Kan mij best voorstellen dat het voor de 'moderne' gamer wel eens een verademing is om een retro game te spelen. Zeker als je ziet hoe slim eigenlijk de toenmalige ontwikkelaars waren door met simpele middelen toch een boeiende game in elkaar te sleutelen.
De basics zitten zo goed in elkaar ja, daar kom je nu eigenlijk nog meer achter.
Ja precies en te bedenken welke middelen de programmeurs toen 'maar' ter beschikking hadden, voor deze tijd super lage snelheden, minimaal geheugen, nog in zwart/wit etc....
Als ik het zo bekijk denk ik dat hij deels de oude webcam cartridge heeft gebruikt voor de orginele GB, als onderdeel hiervoor.
Nee, dit is een nieuw ontworpen PCB. Deze cartridge doet iets compleet anders als dat de GB Camera deed.

Hij gebruikt de Gameboy Camera alleen in een van z’n tests (en in zijn video als webcam als geintje).
Wow dit is echt amazing. Hij heeft zijn eigen PCB ontworpen inclusief de software. Wat een genie/harde werker die zoiets zelf creëert inclusief erg duidelijke en volledige uitleg.

"To be honest, my personal motivation was that I immensely enjoyed the challenge. The Game Boy just has the right amount of complexity to pose a challenge while still being simple enough to allow for an understanding of the whole system."
Natuurlijk super knap voor jou en mij. Maar voor iemand die gewoon dagelijks PCB's ontwerpt, waarschijnlijk een piece of cake, gezien het allemaal vrij simpel spul is tegenwoordig.
Nee, het is niet simpel. En deze slimme mensen zijn zeldzaam en hebben vaak weinig kinderen.

"Electrical Engineering is een kleinschalige opleiding met zo'n 100 eerstejaarsstudenten"

En relatief weinig studenten, laat staan dat er nog veel afvallen en soms alleen theoretisch wat kunnen. Dit zijn de enige mensen die ons elektriteitsnet kunnen versterken. Ik verwacht fors meer blackouts de komende eeuw in Nederland. Het elektrotechnisch opleiden van nieuwe werknemers bij netbeheerders zoals Tennet zou standaard moeten worden om dit gevecht te winnen!

[Reactie gewijzigd door Harm_H op 22 juli 2024 13:38]

Als iemand die zich dagelijks met hard- en software-design/implementatie bezig houdt, kan ik je vertellen dat wat hier gedaan is, absoluut geniaal is. Het hardware-ontwerp is nog vrij simpel, maar de gedachte achter de software en de implementatie ervan zijn geniaal.

Er wordt namelijk helemaal geen video-capture gedaan. De PCB zit tussen de Gameboy en de game-cartridge. De software ziet dus alleen data-verkeer, en moet middels een speciale emulator het beeldscherm opnieuw opbouwen, aan de hand van de instructies die hij op de bus voorbij ziet komen.
Als iemand die wel mee is op het gebied is van recepten van hardware en bypassen ervan,

Kan ik je meedelen dat ondanks het een prachtig stukjes engineering is, het help als dat er al emulators bestaan, dus het heavy lifting van de gpu en cpu te emuleren is al gedaan, die soft krijgt ook de raw data van de rom of cartridge . Dan is het kwestie van het vertalen van die gpu info naar de input voor een extern apparaat.

Nuja desondanks, prachtig staaltje .geen!
Eigenlijk maakt dit ding gewoon van je gameboy een controller, om dan een emulator aan te sturen. Tis meer een gameboy naar controller converter, dan video capture kaart?
Het enige wat de kaart doet is video afvangen en doorsturen. Hij maakt geen controller van je gameboy, want dan zou ik verwachten dat je de controller ook voor andere games/platformen zou kunnen gebruiken maar daar is geen sprake van. Ook stuurt die geen emulator aan.

Lijkt mij het schoolvoorbeeld van een video capture kaart.

EDIT: Laat maar, ik schrijf een hoop onzin omdat een artikel op Tweakers wederom onzin verkondigt.

[Reactie gewijzigd door Groningerkoek op 22 juli 2024 13:38]

Ja het artikel van Tweakers legt het eigenlijk helemaal verkeerd uit. Het leest letterlijk het verkeer tussen de gameboy en cartridge uit en op basis daarvan kan je interpretaties doen. Echter van wat ik nu begrijp interpreteert hij enkel dus welke controls er in zijn gedrukt en bestuurt hij gewoon een emulator op de PC aan.
.oisyn Moderator Devschuur® @ro8in26 december 2022 22:55
Nee, dat begrijp je verkeerd. Een cartridge is niets meer dan een geheugenmodule, een apparaat dat daartussen zit kan dus alleen zien welk geheugen door de GB wordt opgevraagd en welk antwoord de cartridge daarop geeft. Het kan juist geen I/O registers (zoals button presses) lezen omdat dat nooit over de cartridgebus verstuurd wordt.

In plaats daarvan emuleert het de instructies die door de GB worden opgevraagd om op die manier de data in VRAM te hercreeren. En uit die data kan het beeld gedestilleerd worden. Dit gebeurt allemaal op de microcontroller.

Het is geen feilloze methode omdat hij dus niet de inhoud van IO registers kan zien, dus als die waardes direct naar VRAM geschreven worden dan heeft de emulator geen idee wat er geschreven is.

Op dit item kan niet meer gereageerd worden.