Decompilatieproject Paper Mario 64 is klaar, wat mods en ports mogelijk maakt

Een decompilatieproject van Paper Mario 64 is afgerond. Alle functies die de code van de originele game biedt, zijn nagebootst. Daarmee is een replica van de game gemaakt die geen inbreuk op het auteursrecht van Nintendo moet maken. Dit maakt ook ports en mods mogelijk.

De code is grotendeels geschreven in C en is beschikbaar op GitHub. Het werk aan de Amerikaanse rom is klaar, maar aan de Europese en Japanse nog niet. Doordat de broncode openbaar is, is het relatief simpel om mods en ports voor de game te maken die ook geavanceerde functies ondersteunen, zoals hogere resoluties, textureresoluties en framerates. Om illegaliteit bij het project te vermijden, is de code wel te downloaden, maar zonder zaken als textures en audio. Wie het project wil proberen, moet dus een rom van de game aanleveren om die gaten te vullen.

Ontwikkelaar Ethan Roseman, die het grootste deel van de commits op zijn naam heeft, heeft een video gemaakt waarin teruggekeken wordt op het ontwikkelproces. In totaal heeft het meer dan drie jaar geduurd.

Paper Mario 64 is een roleplayinggame, een genre waarin Mario zich soms begeeft. Gevechten in deze game gaan om de beurt en er is een systeem van ervaringspunten en levels. De game stamt uit het jaar 2000.

Andere vergelijkbare decompilatieprojecten zijn uitgevoerd met The Legend of Zelda: Ocarina of Time, Super Mario 64 en Perfect Dark. Ook dat heeft al geleid tot ports en mods. Nintendo kan wel optreden tegen bijvoorbeeld een kant-en-klare port van Mario 64 voor Windows en heeft dat dan ook gedaan. Decompilatieprojecten voor Banjo Kazooie en Majora's Mask zijn nog in de maak. Het Amerikaanse advocatenkantoor Holland & Knight schreef een blogpost over de technische kant van decompilatieprojecten en hun legaliteit.

Door Mark Hendrikman

Redacteur

20-04-2023 • 12:35

53

Reacties (53)

53
53
13
2
0
38
Wijzig sortering
Heel indrukwekkend, maar ik snap niet dat mensen dit soort fanprojecten doen voor Nintendo-spul. In het beste geval wordt je genegeerd door het bedrijf, maar de kans is groot dat ze aangifte doen of je aanklagen vanwege een uit de lucht gegrepen schadebedrag.

Misschien wonen al deze mensen in een land zonder uitleveringsverdrag met Amerika of Japan of iets dergelijks, maar dat lijkt me sterk gezien de Amerikaanse versie als eerste klaar is.
Zoals aangegeven in het bericht is er door een advocaten kantoor uitgezocht dat dit zo goed als legaal is.

Veel van deze personen doen dit als een hobby project en verwachten hier niet rijk van te worden of een baan te krijgen bij Nintendo?

Het is puur omdat het kan! En vind het dan ook gaaf dat het ze is gelukt!
Euhm, nee. Het advocatenkantoor heeft er een blogpost over geschreven. Dat betekend helemaal niet dat je zomaar kan of mag aannemen dat wat hier gebeurd legaal is.

Vooreerst kijkt de blogpost alleen naar copyright in de VS, maar waarschijnlijk moeten we sowieso breder kijken dan alleen de VS. Daar Nintendo geen Amerikaans bedrijf is, zal je sowieso met internationale rechten te maken krijgen.

Maar ze geven zelf ook de belangrijkste punten aan.

1) Je moet een kopie van de ROM zien te dumpen. Dit noemen ze zelf al direct een grijs gebied. Grijs gebied omdat bij muziek vaak aanvaard is dat je een kopie mag maken voor eigen gebruik. Alleen is het doel bij games vaak net niet het eigen gebruik, en al helemaal niet in dit specifieke geval waar het doel net is het eindresultaat breed beschikbaar te maken waardoor je in de basis Nintendo inkomsten zou kunnen ontnemen maar ook de controle afneemt die Nintendo hoort te hebben over hun IP

2) Nintendo heeft expliciet in de licentie opgenomen dat je geen enkel recht hebt om een kopie te maken van het spel. Ook niet voor back-up of archiveringsdoeleinden.

3) De DMCA verbied het omzeilen van technische beperkingen die effectief zijn in het voorkomen van het maken van een kopie van auteursrechtelijk beschermd werk. In dit geval haalt het advocatenkantoor aan dat het gebruik door Nintendo van obfuscatie in combinatie met een eigen compiler kan aanzien worden als 2 manieren waarop Nintendo kopieeren van de code probeert tegen te gaan.

4) Hoewel men kan proberen om enkel de code ter beschikking te stellen, zonder de game assets zal ook dit niet zomaar aanvaard worden. Want ook in de code zitten creatieve elementen die toebehoren aan Nintendo

Het advocatenkantoor besluit dan ook dat hoewel het een impressionant werk is van deze groep, zullen er ongetwijfeld ook nog gevechten aankomen over het copyright.

Uiteindelijk zie ik ook niet in hoe je het copyright niet schendt met dit project. Het is alsof ik naar een muzieknummer luister en de tekst zelf terug noteer alsook de bladmuziek zelf ga uitschrijven. Heb ik dan ineens een werk in handen waarvan ik zelf het copyrighht bezit? Ik dacht het niet.
Wat betreft punt 1, dit is in Nederland al verboden. Software wordt in de wet anders behandeld dan audio of video.
En dan nog is het maar de vraag of het bij de rechter standhoudt. Een advocaat kan van alles vinden, maar als de rechter zegt “ik interpreteer het als zus en zo”, dan wordt de advocaat gewoon in het ongelijk gesteld.
Volgens mij trekt het advocatenkantoor juist strek in twijfel dat het legaal:

Hun eindconclusie:
The developers' work on the project is no doubt an impressive engineering feat, but they most likely will face a host of legal issues. Moreover, there is a much easier way to enjoy this classic – it is currently (and legally) available on the Nintendo Switch Online platform, and it is still a complete blast to play.
Een argument:
Fourth, and perhaps in an attempt to avoid copyright issues, at least one group of developers has plans to that includes only the game's logic and controls. This version would not include items such as art design, characters, music and other elements that clearly fall on the "creative" side of the line. (The developers suggest that these creative elements could be extracted from a user's personal ROM backup of the game to reconstruct the original.) This attempt to separate non-copyrightable functional elements from copyrightable creative elements will almost certainly be difficult. For example, players have to solve puzzles to advance in the game. Those puzzles certainly use game logic, but one could argue that they are creative regardless.
Als ik zo de blog doorlees, lijkt mij dat de schrijver ook een punt heeft.
Dat een advocaat vind of iets legaal, het wordt uiteindelijk beslist door een rechter, waar de andere advocaat duidelijk van mening is dat het absoluut niet legaal is. Zulke zaken zijn veelal niet zwart/wit op recht en wetten, maar meer geval wie de beste onderbouwing kan vinden met toepassing van bepaalde wetten en de interpretatie ervan.
Volgens mij ga je al nat op het feit dat dit geen cleanroom reverse engineering betreft. Wat je normaal gesproken doet is iemand reverse engineered het (dat kan decompileren zijn, o.a.) en documenteert het. De ander implementeert het op basis van die documentatie. Nooit en te nimmer worden deze twee taken door elkaar gehaald. Je doet of het een, of het ander.

Decompileren en op basis daarvan direct implementatie schrijven is gewoon niets anders dan direct reverse engineeren, zonder dat je het eerst documenteert, en zonder het 4 ogen principe.

Op de juiste manier een cleanroom implementatie maken, kost veel tijd en moeite, meer dan hier het geval is. Maar het wordt ook nooit 1:1 hetzelfde, byte voor byte.

Decompileren is dus vooral leuk voor op het darknet. En dan kun je net zo goed de assets erbij leveren (het is toch al 'illegaal'), maar het is wel zo netjes dat niet te doen (echter niet gebruikersvriendelijk, al kun je daar dan weer omheen werken door de extractie zo goed mogelijk te automatiseren).

Uiteindelijk wil je m.i. een FPGA, dan hoef je niets te emuleren of decompileren. Dergelijke FPGAs leveren nooit zonder toestemming software. Ze kunnen de ROMs direct draaien, maar laten het aan de koper/gebruiker om dat zelf te regelen. Hoe die dat doet, is aan diegene.
"They were motivated in part to figure out how to beat the game faster, but also because they have such affection for it." lijkt mij een hele goede reden ;-)
Het feit dat Nintendo zo berucht is om dit soort zaken kan juist bijdragen aan de wil om dit soort projecten op Nintendo-spul los te laten.

Hobby-hackers doen het natuurlijk veelal om de uitdaging, maar het doen voor de clout is hobbyisten ook niet vreemd. En gehack op Nintendo-spul levert vrijwel gegarandeerd aandacht voor je project op.
Dat is het mooie van dit project, er wordt geen enkel wet overtreden.
Daar denkt de auteur van het gelinkte blog anders over:
The developers' work on the project is no doubt an impressive engineering feat, but they most likely will face a host of legal issues.
En logisch ook: de software is net zo goed een creatief werk en wordt gedistribueerd.
De decompilatiemethode is ook van het soort dat er een equivalente kopie danwel vertaling wordt gemaakt (c code die exact dezelfde machine code fabriceert).

Dat hier (nog) niet tegenop getreden wordt, is dat het geen enkel doel dient.
Naast natuurlijk dat het werkelijk ze originele rom hebben gedecompileerd, en daarna die gedcompileerde code 1 op 1 hebben omgezet naar leesbare C code, ofwel de generieke benamingen die de decompilatie oplevert omgezet naar duidelijke benamingen... En als het op die manier gebeurd is, dan is het dus wel degelijk niet legaal want het is geen cleanroom reconstructie van de game. Vergelijkbaar dus met dat je een engels boek gaat kopen en deze dan zelf gaat vertalen naar nederlands en die publiceert, dat vertalen mag dan rustig, maar het publiceren van jouw vertaling is illegaal.
Dat is inderdaad wel een duidelijke uitleg. Er zijn soortgelijke projecten, zoals OpenTTD, die hier volgens mij wezenlijk van verschillen. Hadden ze hun eigen engine gebouwt die precies hetzelfde doet zodra je een legale ROM laadt, is het een ander verhaal.

Maar het lijkt er nu op alsof men het "een beetje legaal" wil maken, door zichtbare assets weg te laten. Op gamecode en -logica is copyright ook gewoon van toepassing. Het was immers deel van een compleet product waar deze rechten op van toepassing waren en zijn. En "een beetje legaal" bestaat dus niet.

Pas als Nintendo hier niet ingrijpt weten we dat het legaal is. Ze zijn er in de regel namelijk als de kippen bij, zelfs als ze geen claim hebben.
Een belangrijke kanttekening is wel dat het niet om 'illegaal' gaat maar om 'onrechtmatig', met andere woorden, je kan er niet strafrechtelijk voor worden vervolgd door het OM, maar de benadeelde partij kan je privaatrechtelijk aanklagen voor de geleden schade.

Waar het daar vaak mis gaat is dat veel rechthebbende partijen eigenlijk door dit soort acties geen schade lijden (in dit geval wordt het spel immers niet meer verkocht) maar er fictieve schade wordt geclaimd puur uit principe.

Wanneer het om een spel (of ander werk) gaat wat nog actief verkocht wordt dan is er zeker een punt te maken voor geclaimde schade, maar wanneer iets al jaren uit de handel is, dan wordt de benadeelde partij misschien wel in het gelijk gesteld, maar is de te compenseren schade niet meer dan 0 euro.
Ware het niet dat Nintendo ook alle/veel oude games nog aanbiedt in hun online store voor de Switch (wordt in de blog van het advocatenkantoor ook naar gelinkt).
Daarmee is een replica van de game gemaakt zonder dat inbreuk wordt gemaakt op het auteursrecht van Nintendo
Het lijkt dus legaal te zijn :)
Inbreuk op auteursrecht is natuurlijk niet de enige manier waarop je de wet kan breken ;).

Daarnaast trekken de advocaten van Holland & Knight die in dit artikel aangehaald worden juist sterk in twijfel of dit vrij van auteursrecht inbreuken is. Waarom het artikel stellig zegt dat er geen inbreuk gemaakt wordt snap ik dan ook niet zo goed.
De link van Holland & Knight onderaan het artikel is het daar niet mee eens.

Daarnaast is Nintendo heel goed in intimideren en dure rechtszaken starten ook al weten ze dat het eigenlijk niet mag.
Je eerste punt heb je denk ik gelijk, ik heb dat artikel niet gelezen. Maar ik ben geen jurist, dus ik weet ook niet van de hoed en de rand.

Maar het 2e punt maakt het natuurlijk niet meer/minder legaal :)
Het 2e punt is precies waar de n ontwikkelaar verspreider mee te maken krijgt.

Na 1/2 brieven moet je toch een dure advocaat inzetten, en dat is niet een hobby van veel mensen.
Anoniem: 221563 @Bekers20 april 2023 14:38
Dat is gewoon wederom een fout van Tweakers. In de bron die ze aanhalen staat iets geheel anders. Plus het geld voor de US, niet voor Nederland. Hier mogen we sowieso al geen dump maken van een cartridge. Dat valt onder software.
Nintendo is de grootste anti-gamer en anti-klant speler in de gamemarkt. EA, Ubisoft e.d. krijgen een hoop haat. Maar Nintendo spant echt de kroon.

Ze halen youtube videos down die ze niet aanstaat door copyright te claimen op gameplay beelden 7(8)7
De vendor-locking waar Apple jaloers op is.

Nintendo doet niet anders dan fanprojecten kei- en keihard proberen te cancelen.

Er is eigenlijk maar 1 partij die de hele abandonware en emulatie projecten om de haverklap dwars zit.

Toen ik de ontwikkeling van bijvoorbeeld War for the Overworld volgde, verasde het mij hoe behulpzaam EA was met die ontwikkeling en hoe ze ook gewoon zelf in gesprek gingen om de juridische kwesties op te lossen. i.p.v. meteen een leger advokaten er op te storten.
Verbaast mij toch dat een assembly dump (?) omzetten naar C code niet onder het copyright vallen...
Juist, lijkt mij ook niet te kloppen. Dat zou betekenen dat je gewoon Office kunt pakken, decompileren, en opnieuw compileren, en dan zelf alleen de gebruikte icoontjes vervangen. Zeker weten dat dat niet legaal is.
Ik herinner me dat ik deze game zag in 1997-8 toen het nog mario rpg "sequel" heette... Man wat een visual design. Ik vind m nog steeds mooier ogen dan alle andere mario rpg's die erna kwamen

Met alle mods en upgrades die er zullen komen nu kijk ik uit om m wéér te spelen.

[Reactie gewijzigd door BrbZrk op 25 juli 2024 07:39]

Dit is een knap staaltje werk van deze programmeurs.
Ik ben opgegroeid met Paper Mario 64.
Een PC versie met 4K textures lijkt mij een goed idee.
Zelf heb ik ook een PSP met daarop Super Mario 64 (De port), en die draait goed ondanks de single core 333MHz processor en 32MB ram die in die PSP-1000 van mij zit.
Ports draaien dus over het algemeen veel beter dan emulatie uit mijn ervaring.
Met de N64 emulator op de PSP crasht de game bij het starten van de eerste battle (Battle met bowser)

Ik hoop alleen niet dat Nintendo gaat proberen het offline te halen.
Denk niet dat dat hun lukt als de programmeurs alleen de code hosten maar je weet nooit wat de advocaten bij Nintendo gaan doen.
Ik heb net het hele artikel van Holland & Knight gelezen en dus als ik het goed begrijp mag je legaal alle logica en controls van een game decompilen (en fixen) en vervolgens online verspreiden, zolang je maar geen artwork/assets meelevert. Geldt dit dan voor alle software (naar mijn weten is dit plagiaat een schending van auteursrecht) en waar word deze lijn getrokken?

[Reactie gewijzigd door Victorppp op 25 juli 2024 07:39]

Plagiaat zou het sowieso pas zijn als je doet alsof de software die je gedecompileert hebt probeert te laten doorgaan voor je eigen werk. Ik kan in een publicatie de volledige tekst van een Harry Potter boek opnemen, maar als ik er duidelijk over ben dat dit niet mijn eigen werk is, dan is dat geen plagiaat. Waarschijnlijk wel schending van auteursrecht.

En dat ligt bij decompilatieprojecten dan weer wat ingewikkelder.
Ik bedoelde ook schending van auteursrecht had een foutje gemaakt.
En daar wordt het dus ingewikkeld, want auteursrecht berust niet op de software maar op de broncode. En de broncode wordt niet gekopieerd bij een decompilatieproject.

Ik kan me wel voorstellen dat het decompileren van software waarin technieken zitten waar patenten op berusten problematisch kan zijn, aangezien het in dat geval om imitatie van de technische aspecten waarop een patent berust gaat.
En daar wordt het dus ingewikkeld, want auteursrecht berust niet op de software maar op de broncode. En de broncode wordt niet gekopieerd bij een decompilatieproject.
Ook op de binaries zit auteursrecht, en als gebruiker heb jij een gebruiksrecht gekregen van de uitgever. Daarom accepteer je een EULA, en in die gebruiksrechtovereenkomst staat onder andere dat je de software niet mag verspreiden of decompileren.
Mij lijkt me de dump in feite een vertaling van de broncode.

In dit geval van een menselijk leesbare tekst, naar 1 die optimaal is voor een machine.

Beide zijn vormen van taal.

Er is dan weinig verschil meer.
Uit dat blogpost:
Third, the Digital Millennium Copyright Act (DMCA) includes an "anti-circumvention" provision that prohibits workarounds to extract copyrighted material. 17 U.S.C. Sec. 1201 states that, "No person shall circumvent a technological measure that effectively controls access to a work protected under this title." (Emphasis added.) The phrase "circumvent a technological measure" means "to descramble a scrambled work, to decrypt an encrypted work, or otherwise to avoid, bypass, remove, deactivate, or impair a technological measure, without the authority of the copyright owner[,]" and "a technological measure 'effectively controls access to a work' if the measure, in the ordinary course of its operation, requires the application of information, or a process or a treatment, with the authority of the copyright owner, to gain access to the work." (An example of a violation under this provision would be intentionally cracking digital-rights management restrictions on media, such as songs or movies.) In view of the statute, it is arguable that the developers bypassed two levels of technical measures that Nintendo employed to obfuscate its source code: reverse engineering the original, proprietary compiler, then using it to decompile the machine code.
Zij trekken dat dus in twijfel.
Ik heb dan ook zeer sterk de indruk dat die Holland & Knight niet goed gekeken hebben. Decompilatie naar C code levert code op die voor veel mensen lastig te begrijpen is, maar compileert wel naar identieke rom. Dan daarna dus deze onbegrijpelijke C code leesbaar maken, maar de werking dus verder niet aanpassen, is IMHO echt niet legaal, ja voor zelf wel, maar niet om te publiceren. Dit is geen cleanroom reconstructie waarbij je dus het spel nabouwt maar zonder de originele code in te kijken.
Zelfde als dus een engels boek kopen, deze dan zelf naar nederlands vertalen, die vertaling mag je dan ook niet zonder toestemming van de originele rechthebbende publiceren/verkopen.
Dit is geen cleanroom reconstructie waarbij je dus het spel nabouwt maar zonder de originele code in te kijken.
Dat mag overigens wel in een cleamroom constructie. Er mag naar de originel code gekeken worden om een specificatie te vormen, en puur uit die specificatie bouwt een ander team dan weer nieuwe code. Dat andere team heeft dan idd nooit de originele code gezien.
[...]

Dat mag overigens wel in een cleamroom constructie. Er mag naar de originel code gekeken worden om een specificatie te vormen, en puur uit die specificatie bouwt een ander team dan weer nieuwe code. Dat andere team heeft dan idd nooit de originele code gezien.
Het decompileren om de originele code te zien wordt vaak ook verboden in de EULA's. Je komt dan dus uit op het opstellen van een specificatie op basis van het gedrag van het spel, met andere woorden, dan maak je eigenlijk een spel wat er zo veel mogelijk op lijkt maar totaal niet compatibel is.
Het decompileren om de originele code te zien wordt vaak ook verboden in de EULA's.
Je hoeft niet te decompileren om te zien wat de code doet.
.edit: oh wacht ik zie hier een misverstand ontstaan. Wellicht dat SuperDre met de originele code de broncode bedoelde idd, ik doel zelf op de assembly :).

[Reactie gewijzigd door .oisyn op 25 juli 2024 07:39]

Met andere woorden, het enige wat je dus kan doen is analyseren van gedrag.

En de vraag is in hoeverre je dat gedrag mag analyseren met (geautomatiseerde) tools, want in principe is een tool die het gedrag instructie voor instructie analyseert natuurlijk ook decompileren.
Ik bedoelde de code die de decompiler genereert. Als het in .net is gemaakt en geen obfuscator is gebruikt, dan krijg je zelfs gewoon zowat de originele code.
Dit. Compileren / decompileren zijn gewoon specifieke vormen van vertalen, gericht op het programmeren van machines.
Anoniem: 221563 @Victorppp20 april 2023 13:47
Dan zou ik het artikel nog eens lezen want je conclusie klopt niet. Ze geven zelf aan dat ze het niet weten en vaag vinden.

In Nederland mag het sowieso niet. Software is specifiek uitgesloten voor
Thuiskopie etc.
Leuk dat ze dit gedaan hebben! Zelf vind ik dat hele auteursrecht veel te ver gaan in sommige gevallen.
Vanavond eens kijken!
Dus mensen die veel uren stoppen in het maken van een goed functionerend spel dat er leuk uitziet, hoeven niet vergoed te worden?
Zeker wel, maar niet voor eeuwig.
Anoniem: 1745418 20 april 2023 14:13
Nice, but Nintendo will sue the hell out of you
Je hebt ook nog zo iets als portretrecht muziekrecht
Nintendo heeft zeer diepe zakken en een legioen aan advocaten
En je betaalt voor de rest van je leven
Ik heb nog niets gelezen over problemen veroorzaakt door de Super Mario 64 decomp van enkele jaren terug. Dit is niet het eerste project wat dit doet. De code daar zal Nintendo niet zo wakker van liggen voor zo'n oude game, het is niet alsof je het spel kunt spelen zonder dat je de missende assets hebt. Net als dat er emulators bestaan die hun games kunnen afspelen, zal ze ook weinig schelen. Waar ze problemen mee hebben is het verspreiden van de roms zelf.

[Reactie gewijzigd door gimbal op 25 juli 2024 07:39]

Behalve dat het gewoon verkrijgbaa is.
Is dit gewoon niet net zoals re3 en reVC van de GTA games die een tijd terug offline waren gehaald? Daar had je ook de originele games voor nodig, maar toch illegaal.
Intussen geniet ik al een jaar van Ocarina of Time port op PC:

https://github.com/HarbourMasters/Shipwright

Met vele mods, verbeteringen, speelbaar op macOS, Linux, Windows en dus ook op Steamdeck.
Vind het altijd leuk om te zien wat fans met oude games nog doen om er weer iets van nieuw leven in te blazen, alleen jammer dat Nintendo op dit soort punten wel extreem hard ingrijpt. Zolang er geen geld mee verdiend word en het bedrijf geen schade oplevert zie ik het probleem niet, maar goed wie ben ik :P
Zal een beetje het GTA 3 verhaal worden. Zogenaamde "cleanroom" decomp van ps2 versie. Maar Take2 dacht daar anders over. De Githubs voor de ps vita versie zijn daardoor al verdwenen.

Op dit item kan niet meer gereageerd worden.