Skip to content

Instantly share code, notes, and snippets.

@JayFoxRox
Last active September 4, 2016 22:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JayFoxRox/8d49c4dedfb045f7c16cee7261ae23b8 to your computer and use it in GitHub Desktop.
Save JayFoxRox/8d49c4dedfb045f7c16cee7261ae23b8 to your computer and use it in GitHub Desktop.
Citra Bulletins - Personal opinions of JayFoxRox; does not reflect opinion of Citra. Take with grain of salt.

OR.. realize that all of the code of the official version, makes up the base of the non-official builds. All work-in-progress code of the official version (planned changes = PRs) is the rest of non-official builds.

You are largely misunderstanding the concept of open-source and disrespecting the developers.

We suck

The official is always worse from a user perspective - it's to be expected. It's far better from a developer perspective though and it's the only version which will eventually be able to progress cleanly.

Official vs Non-Official

Just to give you the gist: The official version is released publicly. The planned changes are released publicly.

At this point non-official builds are made (by applying planned changes onto the official version) and released - even if the planned changes might lead to crashes or introduce new bugs. = The people doing non-official builds only take the existing code from the official versions. So while people are playing the non-official version, the official version is still the same old version. Once planned changes have been discussed and fixed they are made part of the new official version.

  • The team behind the official version doesn't have enough capacity to verify that non-official versions are virus free (hence we don't allow it on the official forums etc.).
  • We will do quick checks if they comply with our license (GPL) to protect the project, the developers and their work.
  • We can't accept bug reports for non-official releases because different planned changes might conflict (which is why they are slowly becoming part of the official versions - not all at once). We need to confirm bug reports against a stable base version - which is the latest current official version.

Which version to pick (tl;dr)

  • If you want to play using Citra: grab a non-official version.
  • If you want to help with development or need support: take the official version.

Ths is WIP, I'll have to change markup etc. I just want this archived so I can show some kids some day what shit you had to endure on the internet as a FOSS developer back in the day ;)

Strong 4chan language ahead

Preface

I was here, minding my own business on Discord and helping people with their Citra problems. Suddenly I'm informed by a user that people go crazy on 4chan (/vp/ Pokemon).

Here is what I encountered.

My initial reaction was this

I'm open for discussions on discord (official citra, PM me) and IRC.

It's pretty low to hate on me here (anonymously even) when I'm available and approachable.

There are reasons for moderating what I moderate. Also, if you followed the progress you'd realize I'm actually recommending unofficial builds and attempt to provide semi-official builds (which would be like non-official builds but for 32-Bit/64-Bit, macOS/Windows/Linux) etc. with unstable features.

Furthermore, great.. call me talentless. But if you don't want to use my work, then I'd recommend stop using Citra or remove some features such as fog and play the games (including Smash Bros and probably also Pokemon) with graphical glitches.

(I won't even comment on the warez in this thread, it's up to the moderators)


I'll now go through each post and restructure my original replies so they are slightly easier to digest. Sorry, but I don't like 4chan (except for /b/, yes, I'm a b-tard. Get used to it fgt)

The posts

Anonymous  09/03/16(Sat)17:45:50 No.28239295
>>28238824
Please avoid asking the devs at all. They are very anti pokemon and chinese build is (well jayfoxrox is). 

Thing is, the chinese build is fucking fast compared to the original build, but the license in the original build asks that everything made with it reveals their source code. 

gdmk who makes the chinese build doesn't even though it's like 3x faster than the original. Maybe he's taking shortcuts he doesn't want Nintendo to know about, but frankly the citra devs especially Jay threw a gigantic shitfit over it. 

Firstly, Jay shat on everyone who even mentioned pokemon or the chinese builds. He got the moderator on gbatemp to remove any link to the chinese build and every video which links to it. Then he, on a site which literally sells carts for piracy, got every link to baidu banned in a shitfit (and baidu even had one of its own mods laser all the rom links). The he forced all discussion about chinese builds into a seperate thread to try and bury it. Then when leddit found out about pokemon emulation, the entire subreddit for Citra disappeared overnight and when someone politely asked what had happened to it, Jay shit on him.

Sorry, that's not true. - Everything

I've started protecting Citra from legal threats by third parties (such as Skycom) whose code we use. We use Skycoms code and must comply with their license (which also happens to be ours).

If people don't comply with our license, they are also automaticly violating Skycoms license, which can mean legal issues for Citra and the end of the project.

Furthermore some developers are also working as software developers as their day job.

If your boss googles your name and "Citra, download games here!!11" or "Citra violates GPL" comes up, you'll be in trouble. Why would your boss at a software company tolerate software piracy or helping software piracy?

(Furthermore from an ethical stand-point, I'm also against piracy and for free-speech. But that's not really the point here)

---

Posting links on gbatemp is very much allowed. It's just important that people comply with the license (which, as I've explained numerous times, is a simple license, shorter than your average 4chan thread) for reasons listed above.

makotech222 did a build earlier and I was happy to link it. Leo121 is an official moderator now (recommended by me) and helped testing new Citra features while providing Unofficial builds on gbatemp. Also DaMan is doing builds and we've helped him to comply with the license.

The only case where working together didn't work out was with drwhojan (and wwylele and me tried to explain the license + computers + git for 2 weeks via direct messaging with ~3 messages per day) AND the obvious one: gdmk. That being said gdmk is doing something which is probably legal in China (due to it being a very different culture), but from an ethical stand point it's very questionable and we don't like it. wwylele who is also chinese tried to speak to him but it didn't work out.

Ideally we'd have the users on gbatemp push gdmk to comply with the GPL which wouldn't have made such drastic steps necessary. - And we tried hard.

I later a added:

Someone just made me aware that you also blame me for the /r/citra thing - I had absolutely nothing to do with that.

I've only rarely posted there myself but I had nothing against it. You are making shit up lol. I NEVER filed a DMCA TDR, NEVER complained about licensing or anything against that (on /r/citra - afair) and I NEVER reported that subreddit or anything.

I'm as stumped as you as to why it was closed. (Heck, any channel which gives support to our users is worth supporting. - Which is why I'm also commenting here)


Anonymous  09/03/16(Sat)17:47:25 No.28239316
>>28239295
Then when wwyele implemented CRO, Jay made it so it took AN ENTIRE FUCKING MONTH for CRO to get merged in just to shit on the pokemon fans and it's now a bannable offence on GBAtemp to even pm or ask for chinese build links. 

And as a further fuck you, any time someone comes up with a slightly changed build Jay will claim it doesn't share its source code or is missing a txt file in order to censor any possible improvement to Citra. Jay also loves to take the passive aggressive stance over other devs like wwyele to prevent them from them helping other people from getting stuff working. 

The entire reason that this /vp/ thread exists is as a gigantic FUCK YOU to that no fun allowed STICK UP THE ASS TALENTLESS HACK JAYFOXROX. See how he likes getting fucked up the ass when the links to the vastly superior chink builds get posted all over the fucking place and everyone can enjoy what he tried to build a gigantic pile of shit over. 

Pogo might be vastly retarded, but their devs are all friendly and helpful and actually genuinely nice people who tried really hard to help out newbies and waking up every day to see about 15 pull requests merged into their projects was fantastic. 

Anyway leddit is always a shit place but for the record part of the reason why no one really knows anything is the extremely effective censorship campaign that Jay has been running. The leddit, cancerous as it was, had begun to document ways of completing the pokemon games (getting around the bugs) and compatibility charts. That's why it disappeared in a fit of his pique. 

The Great Wall of Censorship is ironically more free to discuss pokemon than us.

lol wat?

It's a normal review process which I've explained to the users on gbatemp. Even wwylele himself confirmed what I was saying.

You know the reason why my geometry shader branch is not in master yet? Right.. because it got stuck in review.

In fact: it (with a ton of other PRs) got stuck in review for so long, that policys regarding review were changed and review is done differently now - it still takes a long time though. It's normal. Use unofficial builds - they'll always be better than official builds (from a user perspective), by nature. Just don't expect support then.

Heck: check the current list of issues: https://github.com/citra-emu/citra/pulls some of this shit has been in review since end of march! (which is abandoned now because review took too long, we'll eventually close and reimplement those features)


 Anonymous  09/03/16(Sat)17:58:41 No.28239464
>>28238904
32 bit
According to that massive stick up the ass JayFoxRox, 32 bit is a shitty and inferior. 

Builds of 32 bit exist but you have to compile it yourself somehow off the github probably with the visual C tools 7 gigs) and using the wiki. 

Warning: official citra runs at about 27 FPS at me. As you can see in the webm, the chinese build by gdmk runs much faster. But no one knows what witchcraft gdmk puts in it (we have a vague idea of the PRs he puts in but even the builds with all the things he has run slower) also the components used to speed it up might not be compatible and iirc it was shader JIT or something that the 32 bit couldn't have but the official did that wrecked the FPS. 

Apparently someone managed it but that faggot Jay passively aggresively implied it worked like shit and can't do anything.

It may unfortunately be time for you to upgrade anon. 64 bit can also use more ram compared 32 so it's preferred by most things.
  • Guess who changed that 32-Bit builds are "not working" to "not officially supported" ? - Yup. That was me.
  • Guess who even explained people how to compile 32-Bit? Right.. also me.

It's just not possible for us to maintain another version of Citra. The new JIT for example, is also not compatible with 32-Bit. We need an entirely new, second, custom JIT if we wanted to support 32-Bit too.

This insane amount of work can not be managed by a handful of hobbyist developers.

So if you want 32-Bit you'll have to compile yourself (or get someone else to compile for you) and we won't be adding new features to it which would cause too much work. Note that without shader and now CPU JIT, 32-Bit will be unoptimized and slow, on slow CPUs to begin with (as most 32-Bit CPUs are older than most 64-Bit CPUs).

This doesn't have to do with a dislike against 32-Bit, but just how computers work. I'm strongly pushing for keeping compatibility with old-platforms for as long as possible, but in some instances it's just not possible.

I later added:

Oh another thing I missed earlier: We do know rather precisely what magic gdmk puts into his builds - none. It's the original Citra codebase (+ some PRs) compiled with MinGW and optimizing flags.

People somehow got the idea that we ask him for his source code because there is some secret in it. When in reality he is just legally mandated to release it, and we are the ones who are responsible to enforce it.

The semi-official Citra releases we are currently planning should be the same speed as his builds. It's just that most other non-official build maintainers (so far all of them) are not developers. They don't know how to use their compiler and aren't able to merge different, conflicting PRs either. gdmk on the other hand seems to be a developer. It should be reasonably simple for a developer to create a build like gdmk.

This is also evidenced by the fact that the person on gbatemp got their hands on a rather good 32-Bit build. I don't agree on the passively aggressively part though, it was merely expressing my concerns about 32-Bit performance. I'm sure, that if you'd compare said 32-Bit build with a JIT-build the JIT-build will easily outperform the 32-Bit build. Similarily people (like you) hype the AVX builds by gdmk, but don't realize that AVX is 64-Bit exclusive feature - you won't get those features / speedups on 32-Bit. Also realize that the vertex shader JIT doesn't work on 32-Bit. If you just want to see how much that influences performance alone you can turn it off mid-game in the configuration. Maybe you'll understand our reasoning better then.


Anonymous  09/03/16(Sat)18:07:05 No.28239587
>>28239295
jay is also the faggot that implemented geometric shading and won't fucking add an option to remove /disable it. it causes these stupid low resolution black outlines on everything. 

compare ugly black lines 
http://i.imgur.com/aCxdB1L.png

to no black lines (different citra build)
http://i.imgur.com/LG4Ph4J.png

source: https://www.reddit.com/r/emulation/comments/4ovyo7/3ds_emu_citra_new_gcc_build_from_20160618_pokemon/d4ikhlj?st=isndqn6l&sh=56588c87

fuck this nu-male turbo-nigger

They are not even caused by my code laughs.

As you can see in the (friendly!) reddit discussion it was a missunderstanding. And I was trying to help him disable the lines (with my code being necessary to not cause other graphical issue).

However, the lines are a result of another bug in Citra (also not caused by me). I was only told the suspected problem 3 (!) days ago but the explanation made sense. I don't want to bore you with the technicalities though.

We don't fully understand the issue yet. I might look into fixing it, but I've been inactive for quite some time and will probably work on geometry shaders instead.

I'm sure someone else will look at that outline issue soon.


Note: 28239382 was a post about me: "he doesn't seem that bad"

Anonymous 09/03/16(Sat)18:09:32 No.28239617 >>28239382 He might have cooled down but I winced when emauss or whatever opened that github issue on pokemon and he lectured them on how shit and imprecisely their issue was written. I've never seen a dev behave so rudely before to anyone, the pogodevs mainly handled it by putting how issues should be reported in a template. But remember, the entire r/citra leddit died because he disagreed with pokemon (and it wasn't even all pokemon, it was one thread discussing whether or not it was possible to finish the game on citra and someone linked to one of the builds).

We do have an issue template and conributing guidelines.

How about staying out of my business with emauss? If they want to contact me they have various channels. I think emauss is being a better contributor each day and can handle critic.

People tend to forget that discussions are supposed to be objective. Especially development related discussions. Please never try to read a bug tracker or forum in a development section, expecting to find empathy and non-dry humor.

I've been a forum user for 10-15 years. I also remember my first bug report and getting crushed by the developers. Since then I've realized that there are reasons for such behaviour - and it's actually beneficial. I'm well aware that this might sound weird and I'm now looking even more like an ass. However, most developers would probably agree. I'll probably devote a future bulletin to this alone.

I don't think wwyele likes the sharing of builds either but I think they disagree with gdmk more quietly rather than taking it out on everyone around them. You can tell it's them because they use that quilava avatar. Wwyele is scared that everyone realising that you can emulate pokemon will result in nintendo DMCAing them and Citra cannot be developed if that happens so technically it's best if no one knows about citra because then s&m might have a better chance of being emulated.

Yes, he also disagrees with gdmk (to my understanding). The rest is wrong (I think?): I don't think he is worried about DMCA at all. Stop writing fan-fic please.

They won't change Sun and Moon so shortly before release - it's probably gold by now anyway. Furthermore the Citra codebase is in the wild. A DMCA wouldn't change much. For a similar case check out the WhatsApp DMCA takedown a couple of years ago.

Right now there's only pretty much four devs including Jay unlike Pokemon Go which had about 200 people cracking Niantic's encryption.

Just a heads up: I'm mostly inactive at Citra development (Mid-2016)but moderate forums and try to support users. I intend to start work again soon, but I'm generally busy with many other projects.

@mcdgray129
Copy link

I think maybe one of you guys should compile your own un official builds and have like two releases.
One stable release and one custom release. if you guys done this id use your custom official version over any of the others and i bet many others would too. And this would also mean more people would know of your release then say gmk's.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment