Hacker News new | comments | show | ask | jobs | submit login
Show HN: NES Party – Online Multiplayer NES Emulator Using WebRTC (nes.party)
237 points by hauxir 44 days ago | hide | past | web | favorite | 60 comments



So, speaking of jailtime, where are the ROMs coming from? I see that the games simply work, and you can pick any you want.

I've been trying to make this concept, but distributed, so it can't be taken down. Curious if this will get kicked offline soon.

Nintendo is possibly the most litigious game company in history, and aggressively shuts down anything remotely associated with their brand. I wouldn't be surprised if this is already forwarded to their legal department.

Which, IMO, is a tragedy. There's no reason that projects like this should get shut down. Society is losing out.

EDIT: It's kind of interesting to think about how far we've progressed in terms of video game flexibility. And I mean socially, not technically. Look how easy it was to get fired for some harmless pranks just a couple decades ago: https://www.youtube.com/watch?v=ZaqdaVKP904 Nowadays no one would bat an eye at most of those. (The one attacking a coworker is admittedly a bit much.)

This is relevant because it seems like companies are way, way too attached to their IP, in precisely the same way that people were a bit too formal in the old days of gaming. By not letting people remix others' ideas, you're losing out on everything that could have been made.


That's just piracy in the name of a technically interesting project. And just because everyone has ripped of nintendo it doesn't make this one a legit use of it.

That could be a perfect additional business for nintendo using their IP... in fact you can buy still some nintendo classics on the modern Nintendo Switch and I am not sure whether they work online or not but that's their choice.

A different debate would be whether the biggest icons in the popular culture should become public domain in shorter time (e.g. 30 years) so that the whole society would benefit of it, including people who believes that these characters are part of an era or a symbol more than just private intelectual property.


Have you really ripped them off if you already bought the game in the 80s? Should you have to buy it on a new platform to play it again, if your computer is perfectly capable? Should you have to buy ROM dumping equipment? What's the difference?

I'd bet most people just want to play their long-lost favorites, which they already bought once, long ago.


You are mixing pears with rocks. I never bought a NES or these ROMs and I can still play them in this webpage. Also that just because you bought the original product it doesn't give you a livetime access to other future products or a license to rebrand and refurbish them.

I believe this kind conversation is soon full of hypocrites who would be the first defensors of IP concept if the object of debate was their own IP... in case they could produce something profitable/valuable which is a major key point (it is easy to give for free the work from others).


> I never bought a NES or these ROMs and I can still play them in this webpage.

That is no argument. This website would be entirely above-board with one simple change: it buys N copies of each game, and ensures that only N people are playing at a time. That makes it, legally, a library. Libraries already make "digital loans"; and libraries already loan out game discs. This would just combine the two.

If you're disputing the legality of any part of that: https://en.wikipedia.org/wiki/First-sale_doctrine

> it doesn't give you ... a license to ... refurbish them.

Yeah, maybe not in the US, yet. But it's really a thing people believe should be there:

https://en.wikipedia.org/wiki/Electronics_right_to_repair

> hypocrites who would be the first defensors of IP concept if the object of debate was their own IP

No, this debate comes from people like 4am, who has de-protected 40-year-old abandonware games by defunct companies (https://archive.org/details/apple_ii_library_4am&tab=about) for the sake of allowing people to play them at all in the future, because if nothing is done, the disks will soon rot and no copies will be left in existence.

The developers and publishers of these games frequently come to 4am and thank him for de-protecting these games. Because they never thought they'd see them again. That is not the stance of someone who resents having "their IP" shared with the world.


I know it's not directly translatable. https://en.wikipedia.org/wiki/Aereo

An antenna for everyone wasn't enough. How could "buying a copy for x" be enough.


That's a moot argument. You may have a right to own a ROM because you own the original hardware the ROM was extracted from. But that's an entirely different matter than whether they have the right to distribute a copy of it to you.


It's a valid argument, but I personally never had a NES and don't legally own any of these games. How do developers of these projects make sure Nintendo get what's due from people like me?

I'm quite happy to pay as long as the money is going to the right place. I wouldn't buy one of those Raspberry Pi arcade things on ebay that just profit from shamelessly ripping off others' work.


Do games (or any software) ever go into public domain?

Feels like something on the order of 25 years could be reasonable for NES.


Same as other copyrighted works: in the US 95 years after publication (or 120 years after creation if shorter), when it is work for hire without clear authors attached, otherwise 70 years after the death of the last author. So expect copyright on NES games to expire late in the 21th century or early 22th.


For the U.S. copyright was originally intended to last 14 years, with one 14 year renewal possible. The Constitution states the purpose is "to promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries."

Unless you're arguing video games are not "useful Arts", it seems to me most copyright law nowadays is actually suppressing the Progress of Science and useful Arts -- Mickey Mouse is de facto never going to enter the public domain. Just imagine if literally anyone could create Kingdom Hearts for example. People would buy that, it would likely create competition to create the best "Kingdom Hearts" and it would stimulate the economy. The only argument against is that Disney/Square-Enix deserve that money -- which was not the originally intention of copyright!


Nintendo has gone one step further, and comes very close to making the dangerous argument that emulators are illegal (based on a generous interpretation of https://www.nintendo.com/corp/legal.jsp -- though IANAL)

Of course, this is nonsense. There is no patented technology or trade secrets in any of these older platforms. Unless it contains software (the NES does not contain a BIOS or any other code) then there is nothing to protect.

I operate a site that teaches people how to develop homebrew games for 8-bit platforms -- using no copyrighted code -- and this argument from Nintendo is worrying. When someone tells you who they are, believe them.


> piracy

Under the original copyright terms, or really any "reasonable to the man on the street" copyright terms, NES games would have been in the public domain long ago. You'd be able to distribute the ROMs freely.

> perfect additional business for nintendo

Nintendo are creating a "classic games" subscription service for the Switch, and indeed, one of the features of these games is that they've been rewritten to support online multiplayer.

But there's a reason Nintendo are doing this (rewriting the games to support multiplayer), and a reason Nintendo released the NES Classic (a bundle product): it's because the IP by itself wasn't selling any more. On the Wii U and 3DS, these classic games were available via the Virtual Console service. But, AFAIK, most of such published VC games were negative-ROI after the re-QAing and marketing costs were taken into account. People just weren't buying standalone NES titles.

And yes, this might be "because of piracy", but only in the most vague and abstract sense. Many people knew that they could play whatever old NES game they wanted on a computer. Many others, though, just still owned a NES and the requisite games; or owned any of those games' later ports on newer consoles. The IP—in its precise form—was "played out."

People who own Star Wars on LaserDisc don't need to buy Star Wars on VHS: there isn't any improvement, it's just another release of the same material. But—like the NES Classic—a Star Wars boxed set of VHSes might be interesting. And—like the Switch's new subscription classic-games service—a Star Wars Blu-Ray remaster would be an improvement. One is a new product that is different in kind; and the other is, actually, entirely new IP, derived from the old IP.

Do note that—assuming the old IP had entered the public domain—this service, which uses the old IP together with modified virtual "hardware" to create an online multiplayer effect, would be perfectly above-board, even though it competes with Nintendo's new derived IP. It isn't itself a pirate copy of the new derived IP, so it's fine.

> whether the biggest icons in the popular culture should become public domain

Actually, "icons" (trademarks) don't have limited terms at all; they're perpetual. But once a work is no longer under copyright, you can then distribute that work all you like, even if it contains trademarked characters. You can't make new or derivative works that feature said character (or logo, or any other kind of trademark) in such a way that it might be misconstrued that the work was created by the trademark owner, but that's it. You can use the original work however you like. Everyone knows who made it, and you're not creating confusion by distributing it yourself, because it's not a modified version. You're just doing the same thing a store does, giving people a copy of the thing someone else made.

This is why satirical caricatures of trademarked characters are fine: nobody is going to think political-cartoon-Mario was created by Nintendo. But this is also why e.g. the movie Wreck-It Ralph still had to license the trademarked characters it used: they're using them as-is, in a way where the brand cachet of the characters makes the movie money.


The site would work exactly the same with legally-licensed ROMs. If it wouldn't be as much fun to use that way, then that just shows how much of the value comes from someone else's work. It's not a tragedy that it's harder to make something great than it is to misapproriate someone else's great thing.


It is easy to imagine a world where all game content, no matter how derivative, was not allowed to be used without the explicit permission of companies.

Do you think that you'd be better off in that world? One where Let's Plays are banned, and that storytelling through videogames is not allowed?

It's easy to scoff and say that's ridiculous, but from my point of view, that's exactly the world we live in right now. We could be making so much more than we are. People just aren't allowed to.

I bring up this example a lot, but Disney built their empire partly by taking Alice in Wonderland and copying it wholesale. And what was lost? Nothing. Society gained by letting Disney do that. This same freedom should be extended to all of us.


You seem concerned about two issues: fair use and copyright term. Fair use is complicated and open to a lot of disagreement. Copyright term is more straightforward. I'll consider both in light of your examples.

Fair use is complicated because there's no hard and fast rule, just a set of factors that a court would consider and a few important court decisions to compare your facts to. Let's Plays are further complicated because some are probably fair use, but others probably aren't. An entertaining live commentary of part of a game would probably be fair use because it's like an excerpt included in a scholarly critique or literary review that is traditionally considered fair use. However, where the entire story of the game is included with all the dialogue and cutscenes, basically eliminating the need for someone to actually play the game, it starts to look more like an unlicensed copy of a movie, which isn't considered fair use.

Copyright term has a simple rule, it is finite. Alice's Adventures in Wonderland was published in 1865. When Disney released its animated film in 1951, 86 years later and 53 years after Lewis Carroll's death, the copyright term was over and Disney could make its movie without paying his estate anything. Today, the term in the U.S. is usually the life of the author plus 70 years, which wouldn't increase the term for Alice by very much. Also, Disney isn't special. The same freedom is extended to all of us. Any of us can make an Alice in Wonderland movie. We can use everything that came from Lewis Carroll in 1865, we just can't take what Disney added in 1951.


Disney has lobbied for increased copyright durations. In fact, by what you are saying (life, remaining I assume, plus 70 years), Disney couldn’t do anything with Alice until 1968 which would be 2 years after his own death.

I’m all for company’s right to protect copyright under the terms in which copyright was originally extended, but Disney is a big fan of moving the goal posts further out.


I think there's a big difference between hosting someone's ROMs making them publicly available and recording yourself playing a game and providing commentary. Copyright law recognises this difference, too.


Disney copied the concept and characters; the work was otherwise new. New footage, new acting, new sets, new ...

I find that decidedly different than a mix of grunts, breaths and comments over a video of someone playing through the entire experience.

You can make whatever _new_ works you like, with reasonable limits to protect the consent and safety of others. Go forth and be creative, _it's never been easier to do so_.


Then I kindly submit this app: https://ipfs.io/ipfs/QmacAqRVhJX9eS7YJX1vY3ifFKF9CduDqPEgaCU...

This is an Atari 2600 emulator and every game, hosted on IPFS.

Getting Netplay wouldn't work directly with IPFS.. But I can imagine that you could use the message queue built in experimentally to do announce messages?


You can load the ROMs from IPFS... Is it piracy if you don't host them yourself?


Considering that there are no ships, swashbucklers, hand cannons, and captains named Hook, its probably not piracy! /s

But in reality, it is a copyright violation for those entities who have assets that are claimable today. Super-small company that died in '84 and took their assets to the grave probably don't matter. But I can guarantee that games like Pitfall sure have a legit claim.

How would someone make a claim against IP ownership on IPFS? You would have to legally deal with each machine that is hosting said hash of the copyrighted content. It is trivial to determine what machines have X hash content.

The ugly/funny fact here is, that when this link gets shared, if you're running ipfs locally, you cache it as well. That means that things that end up going viral scale up. It also means that attacks against a hash, like a Streisand attack, just don't work.


This is a great concept and very well implemented.

Regardng ROMS: Keep the page clean of adverts with no direct download link of the roms, and you should be ok (for a while at least)


The roms are not hosted on the site, it's linking to outside sources and proxied through cors-anywhere.


> Nintendo is possibly the most litigious game company in history,...

Genuinely curious if there is a way to know who actually is the most litigious? I was thinking it was someone more like Disney.


or Games Workshop

I'm afraid of just typing out their name without permission.


Really cool project! Loaded up Gauntlet and was able to start the game but saw a lot of artifacts after my warrior moved across the screen. Did the ROM have some dust on it like my old Gauntlet cartridge? Hehe.


Nice project - just one bit of feedback, on a German keyboard y and z are swapped and it makes playing pretty difficult. Maybe alter it so that y or z can be used for A.

Edit: Also, the buttons are mapped the wrong way around. On a NES controller B is the leftmost button and A is the rightmost button.


Planning on adding a controls settings menu in the future. In the meantime i've made it so A also works by pressing Y


OMG! this is so cool! need one for PSX.

https://nes.party/mp798x


I implemented something similar for tic80. Works fine on two browsers on same machine,but it gets uglier the more remote the peers are. My take is that you can’t simply retrofit a game whose engine wasn’t properly architected for RT network play. Good project for learning WebRTC though.


I've seen people on Twitch playing multiplayer Mario Party using Dolphin's multiplayer support, and it seemed to work pretty well. I think the trick is to add latency until everyone's inputs can be played in lockstep.


This is a good idea. Porting old arcade ROMs to web. And trying to hack multiplayer so you could for example play old school unlimited lives NES Contra with a friend across the world...

But nothing seems to be working except chat. WebRTC data channel send error. And not seeing any traffic in net logs :(


I was able to load the into sequence for Battletoads. Then the game froze and every tab on my browser crashed.

Is this using javascript or wasm?


The JIT just recognizes the impossibility of Battletoads and optimizes it out.


Which browser are you using? It works best on Chrome/Chromium.


Hey hauxir! Yes, latest Lubuntu, Chrome / Firefox, Wireshark. Chat is working. But emulators dont seem to sync. Intro just plays in endless loop without responding to control events. If I just select single player in a single window, it starts. But performance is greatly degraded over typical jsnes experience, which is typically quite smooth. Sorry ;(


I got it working locally syncing between Chrome & Firefox on Ubuntu. I did get degraded performance and dropped frames as well.


Can you do 4 player games ala NES Satellite?

https://en.wikipedia.org/wiki/NES_Satellite


Reducing the local latency of the remote player could be done by simulating the game on both devices, with rollback whenever the input from the other player is received.

You can then do input prediction to minimize the number and impact of rollbacks. You can and even hack the emulator to interpolate the predicted positions of the sprites and their actual positions.


OMG, I have wanted to make this exact thing for so long.

How can you be contacted? My email is in my profile. Would love to chat and support.


my github is in my profile where you can find my email ;)


SNES Party is live:

https://snes.party


Looks pretty good! I was able to run the games smoothly unders Linux by deactivating hardware acceleration.

Don't hesitate to open source it, I like how clean it looks. Could be a great product.


let's see how long before Nintendo drafts a C+D


Nintendo isn't doing C&D anymore. They're going straight to copyright infringement lawsuits.


Great NES scrolling shmup that's coop: Silkworm


Someone join me so I can test it

https://nes.party/gi9oyg


Coolest piece of tech I've seen whole day! TMNT doesn't load though! Tried multiple times! :(


It's really nice to see an application mute the volume by default. This is an incredible project.


The browsers are forcing developers to do this.


This is insanely cool, great project and use of WebRTC!


What an amazing project and use of WebRTC. Thank you!


Anyone get the konami code to work in Contra?


That was the first thing I tried! And it worked! Cool project.


My keyboard mappings must be off then.


Well they do have A mapped to Z and B mapped to X which makes sense I guess but is flip flopped positioning from what the original NES controller was if I recall correctly. You might have to fight your muscle memory on this one.


It was the arrow keys for me, they didn't seem to register with Left and Right.


this should ask the user to upload a ROM manually.


It's already possible :)




Applications are open for YC Winter 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: