rust3ds / ctru-rs

Rust wrapper for libctru
https://rust3ds.github.io/ctru-rs/
Other
116 stars 17 forks source link

Citra development has concluded #171

Closed Meziu closed 4 months ago

Meziu commented 4 months ago

As of right now, the Citra emulator (and Yuzu as well) have been completely wiped from Github and the development has been halted permanently (due to the recent lawsuit carried out by Nintendo against Yuzu/Citra developers regarding piracy).

As such, even if the current state of Citra is pretty advanced, it's hard to depend on it for development and CI purposes. We should probably work to remove all linked functionality from our toolchain.

This is a sad and scary day for the whole homebrew community. I hope we can continue working on this toolchain without worrying about such issues in the future...

adryzz commented 4 months ago

wow, i didn't think my hardware runner would actually have any use beyond just being funny, yet here we are

FenrirWolf commented 4 months ago

I'm curious, is there a particular reason we wouldn't want to keep using the latest version of citra for testing? It's not like the emulator is any less capable than it used to be. Is the concern that the project is "tainted" now and that we should avoid associating with it, or is just hesitancy to continue using a program that's no longer getting updates?

Meziu commented 4 months ago

I'm curious, is there a particular reason we wouldn't want to keep using the latest version of citra for testing? It's not like the emulator is any less capable than it used to be. Is the concern that the project is "tainted" now and that we should avoid associating with it, or is just hesitancy to continue using a program that's no longer getting updates?

It’s mainly because of 2 things:

  1. Any form of official download links have gone down and aren’t available anymore.
  2. I don’t feel like depending on it because it is tainted. Even a simple download mirror isn’t something I’d be ok with hosting.
ian-h-chamberlain commented 4 months ago

Phew, this is a really unfortunate issue, especially since (in my mind) Citra was kinda just caught in the crossfire of the Yuzu project legal issues, but I guess they felt it needed to be taken down at the same time since there was crossover in the developers.

Not being a lawyer, I don't really know, but since this toolchain is not intended (nor usable, to my knowledge) to circumvent copy protection or anything like that, I think simply using Citra is unlikely to be problematic, but I guess we'll need to make a decision on how comfortable we are with using it.

As I see it, we probably have a couple options from here, with varying degrees of "safety" vs usability:

  1. Keep using Citra, obtained from other sources besides the old download location (e.g. build/download it from alternative sources like https://github.com/PabloMK7/citra or https://github.com/citra-mirror/citra, archive.org etc.). Perhaps the most risky but least effort while keeping our testing framework functional.
  2. Switch to another emulator that provides similar functionality. Of all the options out there, Panda3DS seems like maybe the best option, but it's still a relatively new project and I'm not sure if it would be feasible to implement the testing framework in a way similar to what we have today.
  3. Don't do emulated CI testing at all. This option kinda sucks but is certainly easy to do.

Personally, my preference would be 1. for now (to keep our existing CI functional/stable), while investigating options for 2. Does that seem reasonable? I don't think we need to host anything to continue using Citra, so at least we can continue along for now as long as some other 3rd party source is available somewhere.

Meziu commented 4 months ago

Sharing my point of view, I am unsure whether using a Citra fork/archive is really the way to go. Sure, someone will always be hosting the source code somewhere on the internet, but I don’t really trust unorganised third-parties to keep those downloads available (nor hosting services like Github, which have done code purging in the past already…).

I honestly don’t see Panda3DS or other emulators getting close to Citra’s compatibility any time soon, so I wouldn’t consider that a very good option as of now.

PabloMK7 is a respectable figure I’ve had the pleasure to talk to in the past, and seems like that fork has been garnering a bit of attention, so that may be an option if we can hook it up to our existing tools.

Again, I’m not exactly supportive of this course of actions, but we shouldn’t have to worry about using Citra for our development. I am ok with keeping the emulated tests available if possible.