This emulator currently has the most complete guest audio renderer implementations, as they just finished a project of doing an in depth reversing of that portion of the firmware. [0]
Getting it to work with the host os(windows usually) can have minor issues with output in rare circumstances, or when a game is still not running the proper speed, but they've ironed out the major ones.
-----------------------
This is my requiem, I present to you Amadeus, a complete reimplementation of the Audio Renderer!
This reimplementation is based on my reversing of every version of the audio system module that I carried for the past 10 months.
This supports every revision (at the time of writing REV1 to REV8 included) and all features proposed by the Audio Renderer on real hardware.
The other popular Switch emulator, Yuzu, recently released their progress report for February in case you are interested in how far along the state of Switch emulation is these days. Yuzu is C++ and roughly comparable to Ryujinx, feature-wise.
Why wouldn't one create and emulator for this using QEMU? Couldn't that be possible? Doesn't a bunch of hardware faking have to be rebuilt in C# that QEMU already does (well¿)? Or is it too hard to introduce custom hardware/firmware (like this audio stuff) into QEMU?
For emulators that intend to run games at full speed, the sorts of shortcuts and tricks needed to achieve high level emulation (which can sometimes fall short of emulation in a strict sense) are often incompatible with writing a plugin or extension to an emulation framework that focuses on accuracy.
In the case of the Switch, it's not necessary to emulate the whole device or even processor, especially if the intention is to run Switch games on a computer. Rather, high level emulation is more than sufficient — anticipate what the software depends on the actual hardware to do and redirect it to do the same using what the computer has available.
>In the case of the Switch, it's not necessary to emulate the whole device or even processor, especially if the intention is to run Switch games on a computer
Switch has an ARM processor so it's definitely a requirement to emulate that, which QEMU is well-suited for. But to your point, Windows has great graphics APIs that would make it easier to pipe the graphic stack from the Switch OS into rather than writing your own implementation. The processor can be taken care of via JIT as well, but it still needs to be lifted.
There is one emulator currently that does do that, the "XQEMU" emulator for the original Xbox https://xqemu.com/
It's in its infant stages at the moment according to the "Emulation General" wiki and focuses heavily on "accuracy" over performance
Other emulators such as CXBX-Reloaded have made larger strides, currently emulating roughly 10% of the software library
It's also worth stating, while the Xbox seems like an "easy" target, being based on an ia-32 (Pentium III) PC with an Nvidia GeForce chip (somewhere between a Geforce 2 and 3 at the time) it is an absolutely monstrous beast with minimal documentation about its hardware and numerous "gotchas"
It also has a very small library of 'exclusive' content which detracts from gaining many developers
Your information on xqemu is dated. xqemu was forked to xemu a while back. Development of xemu is very active now: many games are now playable with accurate graphics and sound with performance up to native framerates. Improvements to speed and accuracy are coming in on a regular basis. xqemu is basically dead, with its discord shut down and the main developer off the project. Now is a good time play around with xbox emulation if it is of interest to you.
Potentially a couple devices. But for most of the hardware, probably not.
Regardless they might—I would—find QEMU harder to hack on, harder to extend, because it is written in C. C is of course the lowest level of all high level languages.
> The CPU emulator, ARMeilleure, emulates an ARMv8 CPU and currently has support for most 64-bit ARMv8 and some of the ARMv7 (and older) instructions, including partial 32-bit support. It translates the ARM code to a custom IR, performs a few optimizations, and turns that into x86 code.
Interesting... since .Net is cross-platform and can run on ARM, if it's running on an ARM processor does it just run the instructions directly?
> if it's running on an ARM processor does it just run the instructions directly?
You can't just run random instructions like that. That code is compiled with the assumption that there's the Switch's OS and hardware underneath, which means it will do all kinds of things, like calling directly into the kernel and assuming a particular address space layout, that would crash it under a different OS.
ARM has hardware virtualization. If the host OS supports it, you should be able to make use of it.
I think it does beg the question though, of whether it might be possible to dump the Switch OS and firmware and run it on some alternative ARM hardware (with some modifications for redirecting weird custom chips). IIRC the Switch is running an overclocked Tegra (X1?)
IANAL, but in the US at least, I think every person would need to buy their own Switch and dump the software themselves for it to be even remotely legal.
I attempted this a while ago, running the Switch OS (Horizon/NX) on a Jetson TX1. It's definitely possible, *but* it requires modifications to the OS services, otherwise you'll just fry the Jetson (that was a lesson learned the hard way...). The pinmuxing between the two devices is different, so you'd need to modify that at least. And then you'd probably need some more modifications to get joycons to work (how do you sync them without a rail), etc...
The kernel however runs absolutely fine with zero modifications required. HorizonOS is a microkernel, and all the components are fairly well separated. To make it work on a jetson, you'd only have to replace a handful of services to make it work.
> IANAL, but in the US at least, I think every person would need to buy their own Switch and dump the software themselves for it to be even remotely legal.
Honestly, I'm pretty sure it'd violate the DMCA DRM protections in the US (you'd have to dump some crypto keys and provide them to an EL3 reimplementation, like Exosphere, to run anything below the kernel).
I might be making a bad analogy, but I don't think this would work any better than dumping the CMOS firmware for a C64 (6502 processor) and hoping you could just run it on an Apple II or NES, even though they had the same architecture processor (also a 6502).
Maybe things are more standard now these days, but the support hardware around it, memory layout, etc... at least for the 6502, made this prohibitive.
As I understand it, there are two ways to approach emulating a console that has a firmware, whether it's a BIOS or a full-fledged OS:
- You could emulate the hardware only, on its lowest level, and make the user provide the firmware dump. This makes the emulation more faithful, but sourcing the firmware isn't always easy.
- You could instead go up a layer emulate the firmware interface that games see. This might get you performance benefits, because you now have the freedom to optimize the low-level implementation details for your particular host platform, but that would mean the emulation itself would not be 100% accurate.
Interesting, Dolpin emulates the Wii and Gamecube OS's to some degree, I would assume that would be necessary for the Switch as well. What would that have to do with ARM assembly however?
The current ARMeilleure seems to emit x86 instructions directly and execute them, so never really using the intermediate representation of Jit compiler of the .Net runtime.
However the previous cpu emulator apparently emitted .Net byte code and used RyuJIT (the .Net jit) to emit the final native code.
> if it's running on an ARM processor does it just run the instructions directly?
So maybe? There are some passes in between but one would think it would at least result in very similar instructions.
The .NET and Java VMs probably aren't optimized for the incoming bytecode also being JIT generated, never needing to allocate memory, wanting to be register-based, etc.
Also, I haven't tried JITting them but I've always found their bytecodes to be pretty inexpressive compared to a real CPU (or even LLVM).
>Rest assured, this is in our long term plan. Initially, we'll be bringing up ARM support as a dynamic code translation target architecture in the short term, as this is a relatively straightforward thing to add to our existing JIT. This work is already underway.
I have mixed feelings about emulating current-gen consoles. I think there's a very strong ethical case for emulating consoles whose games are no longer made (despite Nintendo's best efforts to shut that down too). But emulating something whose games can still be bought new would tend to encourage piracy, I expect.
Unfortunately, Nintendo has not made any friends within the emulation/homebrew community especially as of late(or ever), so the common consensus seems to be "we don't care, as long as you don't do illegal things on our front porch".
This is purely an observation, however these things have tradition within the Nintendo hacking community and most members of the community are very passionate about their projects - the Wii is comparatively hard to emulate, which is why Dolphin is still struggling with certain things after a long time, while Switch emulators can run a lot of games nearly perfectly after less than half a decade.
My point is exactly about the emulation/homebrew community, though. They only continue to have the moral high road against Nintendo as long as they don't condone piracy. If they get in bed with those who want to do genuine piracy, Nintendo is no longer the bad guy for taking legal action.
Not that a Switch emulator completely falls into the latter category, but it lies in a grey area that legacy emulators have mostly steered clear of.
There's no grey area here, though. Emulator devs explicitly disavow using their software for piracy, and ban anyone on official forums for mentioning or linking to pirated games. That's all they have to do, really. (assuming the emulator is clean-room, of course).
It's pretty well established that the market for Yuzu is playing commercial games. Just look at their home page: https://yuzu-emu.org/ Maybe not direct piracy, but clearly adjacent to it. We aren't running homebrew software here.
It sucks, doesn’t it? Developers deserve to get paid, but I’m glad I didn’t have to wait a decade to see Breath of the Wild in 4K.
I wish there was an easier way to run legitimately purchased cartridges. I don’t know how many people ever did it, but PCSX2, for instance, has always been able to run PS2 discs right off a standard PC optical drive.
If buying games can be made easier than piracy, lots of people will probably do that. But if piracy is way easier, then that’s what 99.9% of users will do.
> If buying games can be made easier than piracy, lots of people will probably do that. But if piracy is way easier, then that’s what 99.9% of users will do.
Apart from folks who have no way to perform online transactions and would have to physically visit a shop to pay using cash, piracy hasn’t been “way easier” than buying games in more than a decade.
Everybody has online shops now. On the Switch, you can even buy from your computer using their web shop, if the Switch itself happens to be out of your reach (or in the hands of your child or etc).
In the vast majority of cases, these days, I suspect that piracy is a lot more about “cheaper” than about “easier”.
> On the Switch, you can even buy from your computer using their web shop, if the Switch itself happens to be out of your reach
How? When I go to a Nintendo store page for a game I want to buy digital [1], all I get are the options "Add to Wish List", "Download demo", "Buy physical".
UPDATE: I'm in Denmark (EU). On nintendo.com, I don't get a "Buy digital" button. If I go to the region-specific site nintendo.dk, the search function is broken, many games aren't listed, and there's no buttons to buy games or any login functionality at all (it seems half-baked). If I go to nintendo.co.uk (the UK site), I can log in and buy digital, hurray! What an incredibly inconsistent experience!
Sorry, I meant for emulators specifically. Buying a cartridge and ripping off the rom is much harder than just downloading an illegal copy. So 99.9% of games played in emulators are pirated copies.
It would be great if it was more like PCSX2. Not that I have any idea at all how you’d do that.
It's been many years, but I tried this to play FFIX. Turned out it was one of the few games that still had game-breaking issues at the time. I wonder if it works now.
Incidentally, around 20 years ago I purchased a copy of Bleem! at a Fry's electronics and some games to play on it (playstation was still a current-gen console at the time). I would not have purchased nor played the games if I had not purchased the emulator. This was probably not a typical thing to do but I don't see it as a fundamental thing that existence of emulators has to hurt software sales for a current-gen console.
I also think steam has proved that the way to beat piracy is to offer a better experience than piracy offers. I get headaches playing 3d content at 30 fps, I would pay double the cost per game to run first-party nintendo games on my PC at an unlocked resolution and frame rate.
These emulators are usually useless for piracy until after the console has reached its end of life. People start working on them as soon as possible but they don't work well for years. The switch is almost at the end now and there still isn't an emulator which works very well.
When the competition for emulators is buying a hackable switch and running dumped games natively with 0 bugs or slowdowns. I doubt switch emulators have prevented the sale of a single switch game.
You may be right about the ramp-up time, though the Switch is only at like 50% of its lifetime and I wouldn't be surprised if the next console is a "Switch 2" or something with backwards-compatibility, given what the other console makers have done
The typical lifetime of a Nintendo console is 5 years (N64 was 1996, GameCube was 2001, Wii was 2006, Wii U was 2012 because the Wii was such a smash success, Switch was 2017). The release cycles have been slowing as of recent but we're far more than 50% in.
What you say is logical when considering things generically, however I’m struggling to remember a decision that Nintendo ever made that was based on what other console makers have done.
There are many reasons to use an emulator. You could play your own games on a new platform, or without having to pay for the hardware (a gaming PC which can run an current-gen emulator is expensive enough!). You could use it to play or develop homebrew software, or to research commercial software. You can use it to bypass region locks, which I would argue are quite unethical in their own right.
Even with all of that said, I support piracy. Information wants to be free, and games are made of information. No one has lost anything when a game is copied.
Suppose an indie developer working alone hires an intern. They release a game developed together for a console. Suddenly the console becomes possible to emulate, and most of the people who would have bought the game play a cracked and pirated version on an emulator instead. Because of the unexpected lack of sales, the developer has to fire the intern. The intern no longer has enough money to feed their family, and their children go hungry that month. The intern has lost something.
My comment isn't intended to be positive or negative on the whole towards piracy (I do sometimes pirate things). What's it's critical of is the blithe way in which people dismiss concerns with statements like "no one has lost anything". Sure, maybe the developer doesn't have an abstract right against copying the game, and it is true that they have not lost copies of the game when it is copied. But people do lose things.
If you oppose intellectual property rights, it's important to work productively towards creating a world without it in which developers can work on a piece of software as their job and still have a livelihood, not joke about them not standing to lose anything through piracy. I'm not saying you don't do this, I'm well aware of your contributions to open source, for example.
If you oppose intellectual property rights, it's important to work productively towards creating a world without it in which developers can work on a piece of software as their job and still have a livelihood, not joke about them not standing to lose anything through piracy.
Thank you for speaking up. I try to make similar points at times, though I'm usually talking about writing and content creation and I'm a woman and a writer and poor, so people feel pretty free to be openly dismissive and disrespectful and act like my expectation that I should somehow be able to support myself if I am doing good work is a laughably stupid expectation and, at the same time, I'm an extremist nutter if I start using phrases like "that amounts to an expectation of slave labor."
I don't know what the solution is. A lot of amazing things get done because someone dreamed it up off the clock without the constraints of an employer or client telling them what to do.
But it is a travesty of justice to act like those things should be given for free and the creator has no right to have that come back to them as financial prosperity. It's not only a travesty of justice, it's an excellent way to make sure all your best and brightest people are trying to figure out how to make a buck, even if it means screwing other people and even it means doing work that is less valuable to humanity than what they might otherwise do.
If you want this to remain a dog eat dog, lord of the flies hellscape, hey, dismissing the idea that people have a right to profit from their labor when their labor is clearly enhancing your life (or you wouldn't be using their stuff for free while sneering at the idea that this is a problem for them) is an excellent way to accomplish that.
Thanks. I think there's a whole interesting discussion about classes of intellectual work like writing and photography that are less respected in the digital world (from the standpoint of copyright) than software and films.
Your comment also highlights another aspect of theoretical arguments of the sort ddevault gives that I think is interesting. If you take them seriously, then there ought not to be any intellectual property at all, so someone should be able to just set up a website like "get your stuff here dot com" where you can download whatever you like, with no legal prohibition or moral inhibition.
If this were true, the piracy landscape would look vastly different than what it looks like today, and I think this seriously undermines the kind of pragmatic responses my comment has gotten along the lines of "actually, piracy is helpful to the industry". Because in all likelihood, that can only be true (if it is true) up to a point.
The ultimate question is, do we see the point of making sure artists and creators have a way to live off the work they do for us? A copyright system may not be the best way to ensure this, or it might even be outright unethical! If so, let's come up with a better one.
Piracy surely does do damage. But I feel as if it's probably a net positive for the gaming industry overall. Maybe I'm wrong but Indie games currently seem to be in a sort of golden age, despite piracy being as alive as ever. As someone who grew up on blizzard and gamecube games almost every game I purchase these days is an indie game, similar patterns amongst my friends.
That's quite possibly true. Again, I do pirate things sometimes, and I'm not trying to rule one way or another on piracy.
What I'm trying to get at is that saying on the basis of a priori arguments about what "property rights" a person has that they don't stand to "lose anything" through piracy is incorrect reasoning, and maybe even hurtful to the people who do stand to lose something.
You might as well pursue a long theoretical argument with the conclusion that the Department of Homeland Security has no right to exist, then claim that a janitor who works there has "nothing to lose" from calls to abolish it. Even if you're right about the DHS, it's a complete non sequitur, and a rather callous one at that.
I see what you're saying and I agree. I think this particular argument, is pushing back on the notion that piracy is straightforwardly the same thing as physical theft.
There are also more games than ever right now -- it's extremely competitive, even relative to just 5 years ago. Source: Am founder of a small indie 'studio', recently released our second title.
Yeah I would imagine it's insanely difficult. The bar for genres dominated by indie games like puzzle platformers, metroidvanias, roguelikes seems infinitely high these days. Seems rough for devs, but as a gamer it's amazing.
"In 2013, the European Commission ordered a €360,000 ($430,000) study on how piracy affects sales of music, books, movies and games in the EU. However, it never ended up showing it to the public except for one cherry-picked section. That's possibly because the study concluded that there was no evidence that piracy affects copyrighted sales, and in the case of video games, might actually help them."
To be fair, those studies were done in a world where software piracy is against the law in many places, considered wrong by many, and can have real consequences to those that engage in it. Those facts have direct impacts on the amount of piracy that happens. If piracy were completely legal and the average person was comfortable doing it, then the impact on the sales of software would likely be much higher.
It is not unreasonable to argue that some piracy is not a big deal and may, in fact, be helping developers (and producers of other content). However, as soon as you start arguing that it should be legal, expected, and normal to do so, you change the entire landscape.
Seems like I'm getting a torrent (hah) of comments saying that "piracy isn't that bad actually", when I explicitly said in the comment that I wasn't interested in advocating for or against piracy, and do in fact pirate things myself.
Your argument was, literally, that piracy decreases sales. But all of the evidence points toward piracy increasing game sales. Therefore, the indie dev in your example would make more money.
I'm not saying that piracy is good or bad; I really don't care. I'm simply stating that your argument was wrong.
That was quite literally not my argument. I gave an example in which piracy decreases sales, to respond to an a priori defense of piracy.
Edit: There is a world of difference between debating a point on deontological ethical grounds and consequential ethical grounds. My point is not about what the consequences are, it's about the fact that a specific a priori ethical defense of piracy like that ddevault gives can't be used to argue that piracy doesn't have bad consequences.
No, you gave a fully theoretical thought experiment, that attempts to play with emotions (oh no, not just an employee that can't be paid, but an intern, a poor student that cannot feed his family after, because that... wait non that's not what interns do) and tried to spin it as an ethical argument.
When ddevault said that "no one loses anything" when something is copied, they did not mean that they had looked at all the studies and determined that "piracy is good, actually". They meant that simply by examining the nature of intellectual property as such, we could know that no one ever loses anything when something is copied. This is an implied deductive argument which does not hinge on what conditions actually exist in the world.
In response to a deductive argument, it's always acceptable to try to present a possible world in which the premises of the argument are true and the conclusion is false. It simply does not matter that quite a lot of angry people in this thread are insisting that the world I presented in the example does not actually exist. If the world could exist, then that's enough to show that there's something wrong with ddevault's point, and that's what I wanted to do in my comment.
Ironically, ddevault understood this when hardly anyone else did. They replied to my comment with a slight pivot on the original take. They said that while people might "lose things", it's not the kind of "losing" that matters, because if someone loses something that was never legitimately theirs to begin with, we don't care or worry about this. (The example of Nestle stealing water is used as an example.)
This was a great response from ddevault, because it actually understood what I was getting at. I disagree with the response, but the point is that it understands what is happening at the theoretical level here, and that's crucial.
> Even with all of that said, I support piracy. Information wants to be free, and games are made of information. No one has lost anything when a game is copied.
"Information wants to be free, and games are made of information" is a defense of piracy that has nothing whatsoever to do with the consequences of piracy. The argument is that copyright claims are morally invalid because they go against the nature of information as such.
This is used to make the claim that "no one has lost anything when a game is copied".
That claim is a bit of verbal trickery, and that's what my comment is complaining about. If a developer has a copy of a game on their hard drive, and after releasing the game, someone pirates it, the developer still has a copy of the game on their hard drive. This is one sense of "not having lost anything", and it's what ddevault understands to be the nature of information that underlies the moral argument I gave above.
But what that moral argument can not tell you is that "no one has lost anything" in the fairly conventional, pragmatic sense that one can "lose a job".
My comment is a theoretical example (or thought experiment) that highlights the difference in a way that makes clear how the words "no one has lost anything" are at least misleading, and potentially hurtful. That is why I begin with the words "suppose" (which is how philosophers often introduce thought experiments) and proceed to give a highly theoretical example about a indie dev studio which does not exist. The upshot is the philosophical point that people can "lose something" (a livelihood) without "losing anything" (a piece of intellectual property).
I have no idea whether, on the whole, piracy is good or bad for video games. Despite your apparent certainty, I do think the jury is still out on that point. But that is most emphatically not the point that I am making in my comment.
Your argument strikes me as tautological in that you've created a hypothetical sad situation and are arguing that because it is sad we should change our behavior.
I think it's probably worthwhile to think about if the situation could actually occur in our world.
Otherwise, why not construct the absurd thought experiment: what if the intern that got laid off won a bunch of money and didn't have to work? Piracy is obviously moral and great because the intern is now rich.
Obviously this wouldn't happen to most interns given how the world works (losing your job is bad). Thus it is a bad thought experiment.
Similarly, if having a game pirated leads to an increase in sales, this is a bad thought experiment.
Here's my thought experiment, they told you studies shows that vaccination is safe, you point out there happened to be a case after injecting a person died. In some places people categorize it as FUD.
Just to be clear I don't have a side in this race, I haven't priated anything for a long time, don't find the need.
Thought experiments don't need to be realistic when they are responses to deductive arguments. [1]
You can't use a thought experiment to argue that people should change their behavior because of a problem, as you're pointing out - and I'm not doing that. I'm not saying people should not pirate things because piracy is bad for game developers. I pirate things. I'm not making a statement about piracy.
ddevault is doing something rather specific: arguing that because intellectual property rights do not exist, anyone whose work is copied does not lose anything. This is an argument that is contradicted by a possible world in which someone loses something, even if you don't think it's our actual world.
Releasing a game on a console is an involved process with many steps and hoops to jump through. It is much easier to release a game on PC. I haven't looked into the statistics but it is my understanding that the large majority indie games release first on PC before being ported to consoles due to the barrier to entry.
Emulators might hurt developers who treat being console exclusive as a form of DRM or have exclusivity agreements with console manufacturers if their work becomes wildly pirated. I don't track what is pirated or how frequently, nor do I track game developers closely, are there examples of this happening to developers who have shut down?
That's true. By giving a console example I was just trying to talk about piracy in a way relevant to the emulator topic. You could make exactly the same point about piracy of PC games, though. Many indie PC games don't have DRM.
I think for most indie developers piracy is free word of mouth advertising, similar to the shareware model. Hopefully when their work is widely pirated developers can turn the attention into sales. I agree it would be very tragic if people lost their jobs due to rampant piracy.
To ask a difficult question though, are there actually any contemporary indie PC games that have been massively pirated to the point where the developer had to fire an intern?
No one has a right to a viable business model. There are other ways to make money.
I also oppose companies like Nestle monopolizing water supplies to sell back to communities at a premium. If they're not allowed to do that, then their employees will have to find something else to do, or they won't be able to feed their family and their children will go hungry. Naturally, we'll not speak of any of the benefits which might be possible if we eliminated their business model. The only consequence of any import is that their employee's family will starve and die.
This is clearly a false argument. Intellectual property is based on an artificial scarcity and has no basis in the tangible value of goods and services. It's a kind of intellectual rent. It should not be granted special status in law.
The expectation here is fair trade. They are providing a good for sale with a price. If you do not pay the price, you do not get to enjoy the good, regardless of if the distribution model inherently enforces its trade value through scarcity or not.
The last several thousands of years of society and economics are based on this principle. Capitalism depends on it. You can be against capitalism and work towards achieving that end. But until we get there, we need to make sure that those in a society built around capitalism obey these fair trade rules.
If you don't want to pay for your software, don't use software that's offered for pay. There's a whole market of free software out there.
You're going back to the moral argument against intellectual property, and I get you, it's sort of compelling. My point was that suggesting that no one stands to lose anything if we throw out the concept is a bit bonkers. Schematically the argument is something like this:
1. Under capitalism, the only way someone who makes something for others can be sure of providing for themselves and their dependents is if they have a property right in the things they make, thereby ensuring that it has exchange value for them as a commodity.
2. Property rights in intellectual or abstract creations do not exist. Because (insert moral argument), no one ever truly has an intellectual property right. (your premise)
Conclusion: People who create intellectual or abstract works should not be sure of providing for themselves and their dependents, and should therefore do something else and find "other ways to make money". In fact, we can't even say that people forced into some other work (or starvation) have lost anything, because they never had a moral right to it to begin with.
Me: Welllllll
I hope it's obvious that the conclusion doesn't follow from the premises. (Though we can get into that if you like.) I think it's also obvious from this perspective that this is certainly not like the Nestle case. Nestle is making things worse by monopolizing water that they didn't even create and would exist if they did not. Artists are people who create things that you and I love which brighten our lives, and are asking that they not go hungry in exchange. They are not seizing a pre-existing work of art and holding it out in exchange for an income, they are instead creating things and witholding them to ensure an income the only way that is possible under our present system of capitalism.
I want to live in a world where artists can be assured of not going hungry. I certainly don't think we need intellectual property to get ourselves there, and I'm nearly certain most artists themselves don't intrinsically love intellectual property. But this means we need an alternative. What does that look like: UBI? Something even more drastic? That's the question I was getting at toward the end of the comment you replied to.
Only problem is, if while doing the work the developers were told their work isn't going to be entirely paid for they would have chosen to do something else.
You write a book and would be paid by the word. After toiling away for 2 years, 30% of your work will not be paid for because the publishers feel this is just information.
You have been decived.
When labor is carried out with certain promises of compensation and after the work is completed if the fruits of the labor are not compensated to the person company doing the effort then it's fraud / stealing.
Broadly your argument sounds like 'knowledge work is not real work' because it doesn't produce tangible assets.
The problem is not about free distribution of knowledge or not.
The problem is, in compensation of the people involved in doing the work.
For example if someone sponsored content 'x' and made it free to the public it would be fine to copy it around. Think govt funded research. This has its own problems. The people that commission these works and the general public may not share the same tastes.
The risks of selling to a patron and selling to a yet unknown audience are vastly different. This is why the compensation varies wildly between the two. Its possible that one game may take enormous resources and then not give back any returns resulting in a loss and another one makes massive profits.
The positive ones cover up for the failing ones. If you only look at the positive ones it's easy to be dismissive and say they are getting compensated undeservedly. In the broader picture it is the massive successes that allow for variety in the market place, it is an essential mechanism. If you cap off the upper limits of getting paid, people will be unwilling to make newer / different types of things. The market is essentially funding innovation, variety and a buffer for failures - it serves as a direction mechanism for knowing what people want.
Knowing what to make that people will buy is a very hard and expensive problem to answer. People that can answer it correctly get paid a lot of money deservedly.
> I think there's a very strong ethical case for emulating consoles whose games are no longer made (despite Nintendo's best efforts to shut that down too).
Do you differentiate between games being “made” and “sold”? If not, which consoles specifically are thinking of as ethical to emulate? Nintendo still sells NES, SNES, N64, etc. games via Virtual Console.
I personally would not emulate a game that Nintendo is currently selling in a readily-playable form (unless I owned it already). Used games don't count, because those a) don't send any money to the original devs and b) become increasingly scarce over time.
The problem is that in practice Nintendo only makes a very small portion of their back catalog available for purchase at any given time. The only Zelda games from previous generations that I can play on my Switch are Zelda 1, and (soon) Skyward Sword. No others are available.
If Nintendo made their whole catalog available for digital purchase (or even better, as part of a subscription) then I wouldn't emulate any of it.
You can play Zelda II and A link to the past via the online subscription. And one could count the remake of Links awakening as well.
But more to the small catalog. Nintendo has not the rights to just publish the old NES/SNES catalogue as they are not the sole rights owners. Also they won’t dump all these games at once. I still wait for Windwaker HD as I never owned a WiiU and don’t want to emulate the game.
It's ignorant at best to argue that this is only going to be used by those who wouldn't have purchased a Switch. Once something is free then a lot of people won't spend hundreds of dollars on it.
As someone who uses yuzu to play games at 4k, I have bought 2 switches and purchased the grand majority of the games that I have played on emulator. While I think it's true that devs lose some customers this way, most people who are playing BOTW on their pc (requiring a pretty good computer) pay more money into the nintendo ecosystem than many people imagine.
If anything the way nintendo treats it's competitive communities makes me feel bad for giving them too much money. But on the other hand they are one of the only devs who consistently ships quality finished games, so that should be rewarded.
It's unfortunate that the devs are financially lumped together with Nintendo's scummy legal/business people, but at the end of the day that's the reality. Pirating games means not paying the devs for their work.
I really don’t think the group of emulator pirates who would have bought the console and games if they had not been able to pirate is a particularly large group. How many sales are you thinking are lost to this 1%?
Right. Now lets ask ourselves why one would need to spend hundreds to play a particular game. The answer you will come across most commonly is platform exclusivity deals. I am happy to pay for a game, but not buy the hardware for a system I don't want, just because they leveraged their business clout to prohibit games from releasing on other platforms. In this case, I could care less about the bottom line of the console company or the game company who agreed to what I view as a corrupt collaboration.
I think consoles are great devices to make gaming accessible to the masses, requiring little to no effort to get up and running. Where I draw the line is console exclusives.
I will not purchase a console that forces me to buy hardware I do not need because they ban experiences from other platforms to try gain a competitive edge. I feel this is damaging to the industry as games with incredible experiences are blocked behind a paywall (and often restricted quality).
Consoles should compete on experience and features, not exclusive games that you can't play without buying into the ecosystem.
I only just got around to finishing Bloodborne (at 20-30 fps) and it's a game I have wanted to play since I saw the trailer back in 2013. It's so sad that they limit this game's IP to only PS4 owners. I would love to see the lore expanded upon in sequels (that run at an unlocked, variable frame rate), but if demon souls is anything to go by, we won't.
If it were available for PC, I would buy it. If it were available via emulation, I would buy it.
People who pirate games do so because they can't afford them, and there is nothing less affordable than having to buy an entire device to play a game.
Emulation does complicate this somewhat because piracy is a necessity to the experience, something that could be addressed by the hardware vendors themselves.
The one thing I used to really enjoy about developing for Nintendo platforms once they've aged a bit is being able to have fast test-play cycles without hardware; for Gameboy Advance or Nintendo DS the emulators were very good and fully-featured (debuggers, memory inspection, etc.)
Unfortunately with Switch we're not there, and I don't think we ever will be. These emulators target, in order of priority, Cracked/Dumped Retail Games, then Homebrew games. I can't use them as part of my game development stack because they won't run binaries if they haven't been submitted to Nintendo to be signed (and subsequently cracked).
That’s how more than a few of my projects have started. It really helps you learn the performance mechanics of a language and it’s runtime doing something like, implementing an emulator then optimizing it. Maybe not something as ambitious as a switch emulator though. I like 16 bit processors like the MSP430 :)
In my opinion this is the exact reason C# was picked. Almost everything C# is either Windows-only or Console/Server app. This is neither and that's what's interesting to me.
Many video games are written in c#. This includes pretty much all games written using unity (the most popular 3d game engine) and fna (a very popular 2d framework).
But that's an apples/oranges comparison, isn't it? C# code in Unity games is predominantly high-level game behaviour / scripting. Most of the heavy lifting is done by Unity behind the scenes. So to me it's even more impressive that an emulator for a modern games console can be written in a 'managed' language.
Mostly, because it's easier to program in C# than in C++, and there is not much of a loss of performance (and worth noting that C# has `unsafe` keyword if necessary). In the past Ryujinx did use RyuJIT provided by .NET for JIT, albeit now it's using a custom JIT because RyuJIT was too slow for the way it was used by an emulator.
C# is the fastest GCed language and emulators are not just about performance, a high level language increase both productivity and the number of contributors, hence the number/depth of optimizations + features and correctness.
C# has C++ interop if ever needed.
Indeed, on Windows there’s no need for that library. But on Linux, none of that is available.
I have used C++/CLI long ago for a couple of minor things, and I didn’t like it. The two runtimes, C++ and .NET, are interacting in a weird way, I got an impression it combines worst parts from both C# and C++ languages.
I prefer IUnknown-based COM interfaces ever since. With some care about API design, C# side of the interop is only marginally more complex that it would be with C++/CLI, but unmanaged side is much easier in regular C++, without the CLI.
Ryujinx isn't actually the only Switch emulator; between Ryujinx and Yuzu, you can emulate basically everything the Switch can do and play most of the games it can.
Regarding all the positions that piracy is bad vs freedom of intellectual property, isn't this a bit a red herring?
I'm sure neither this nor Yuzu are 100% working - but if let's say work was done regarding allowing legal ripping, i.e. a license system whereby Nintendo grants sale or other rights to hobbyist runningthe express purpose of runnin their games on some emulator.
I think a lot of the people drawn to emulator, work, are drawn by the cool factor. Working on homebrew games is a way to learn and express passion about embedded platforms, game dev and coding.
They say 'piracy is stealing', but locking down platforms is also stealing. We should enforce universal IP monetary attribution - keep a low standard rate of mandatory fees which must be paid out while at the same time make it illegal for companies to entirely hide their designs.
I don't anticipate it would make much real difference. The trick with console emulators is usually making the graphics, audio, and game-specific quirks sing well on commodity hardware rather than the specialised hardware the console has. Getting ARM code to run on Intel isn't the hard bit — so getting ARM code to run on ARM may well be more performant than running it on Intel – but rather the trick is getting all the other precise console-specific hardware to sing with available cross-platform frameworks for audio and video.
For game dev (and emulators!), the non-deterministic behavior of GCs can cause a lot of trouble, mainly because you have a fixed frame budget. That’s why it’s usually easier to just use a language where you can finely control when and where allocations take place.
I’m sure there are techniques to work around this, but you’d then usually have to leave behind the “idiomatic” area of the language you’re using.
Yes, In C# you have to leave the idiomatic side somewhat to get the most performance. Though this is getting better in latter versions of C#, in which you get more low level coding features. But for me the fun part is doing exactly that. Coding as close to the metal as possible, leaving the "safe" side of C# but still using the Quality of Life features that C# offers compared to C++. That for me makes C# my favorite language ever.
I like C# and use it a lot, but for performance sensitive apps I need SIMD. Microsoft is making improvements, but not enough, still a long way to be comparable to C++. Currently, they don't support NEON on 32-bit ARM, and have performance issues in the JIT: https://github.com/dotnet/runtime/issues/13811
C# is one of the most popular languages to write games in (with Unity), so it can't be that bad. I'd expect it to perform well if you only allocate short-term objects, since it can do escape analysis and figure out they can all go on a stack, but I don't know how Mono's GC works.
C#, or more specifically the .NET VM (goes for F# and VB too) has a lot more features that make it a lot easier to avoid GC events than in the past. Managing memory especially across interop with Span support means a lot less copying from managed to unmanaged memory as an example which would help a lot with games that often need to invoke operating system libs/drivers.
> When running with the “Server GC”, a thread per core is involved in collections, and as threads finish their allotted portions of the marking work, they’re now able to “steal” undone work from other threads in order to help the overall collection complete more quickly.
It's mainly the horrible "enterprise" culture around them, which leads to ridiculous abstraction bloat and the associated increase in resource consumption.
I worked on Jpcsp a long time ago, PSP emulator in Java. It was the first emulator to manage to run a large amount of games. We had some crazy devs on it who even wrote a MIPS to Java bytecode JIT. It worked great... sometimes. We ended up running into lots of JIT issues as some patterns were unusual and not always properly handled by hotspot. Fun times!
There were a slew of older JITing PSP emulators when it came out using C# that had modern architectures. It's a cute technique to bootstrap a JIT, using a JIT runime that people already can be expected to have.
pspplayer might have been the first? I could be wrong there
Is there a way to intercept data between the Switch and online Fortnite services?
I recently bought a Switch and have been playing Fortnite online...noticed more and more "online gamers" have been behaving like bots, so I'd like to take a look at the data if possible (to see if I'm playing against actual people)
There are lots of Switch games that have had to have serious compromises made to run them.
You need to checkout the youtube channel DFRetro that does a thorough analysis of the games between their various console releases.
The switch is slow and old hardware but Nintendo was never going for state of the art and it serves its function well
all of the people were having issues with a patched game (version 1.1) - no idea if it ever got fixed or not, i don't have that game to test. Other than some weirdness on 3rd party games i've never noticed any slowdown on any games i've played.
Mario kart in 4 player mode can only run at 30 fps which looks horrific compared to the 60fps 2 player mode. Most games also seem to suffer from massive load times. Crash team racing and Animal Crossing clock in at literal minutes to load.
I'm not familiar with this case, but [this page][0] seems to be more focused on the use of screenshots rather than the emulator software itself? Did this set a precedent?
Another emulation lawsuit, Sony v Connectix, happened the previous year. In that case the concepts of emulation were found to be legal but Connectix was hit for copyright infringement of the Playstation's BIOS.
Bleem used HLE to avoid needing a copyrighted BIOS image. Sony complained to the courts, but Bleem successfully defended all counts using the Connectix precedent.
You're looking at the appeal - in appeal, the only leg Sony had left to stand on was the use of screenshots of copyrighted games, but the court determined it to be fair use.
So the precedent comes from looking at a series of cases around this time, but Sony v Bleem is commonly used as a handwaving reference to the whole saga. It's the first major time this defense was successfully used in court.
For an interesting comparison, the GPLv2 was written in 1991 but technically wasn't tested in a US court until 2014.
Why would you see this emulator in particular getting DMCAed?
There's not really good precedent for this that I'm aware of - Nintendo did DMCA the repo for a GBA emulator a while ago, but it came with Nintendo game ROMs in the browser.
> Why would you see this emulator in particular getting DMCAed?
Nothing in particular, I was thinking about it from the other end. Seeing as the Switch is Nintendo's latest gen console I'd say it's different to something like Dolphin in terms of how much it might bother Nintendo.
That plus the fact that when you want something off the internet nowadays a DMCA is typically the legal path, makes me think that Nintendo would love to find something to DMCA the repository for.
Whether there's anything to be DMCA'd I can't say (and from the replies I see probably not).
Getting it to work with the host os(windows usually) can have minor issues with output in rare circumstances, or when a game is still not running the proper speed, but they've ironed out the major ones.
-----------------------
[0] https://github.com/Ryujinx/Ryujinx/pull/1481