Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#180

Merged
1 commit merged into from Jul 23, 2023
Merged

#180

1 commit merged into from Jul 23, 2023

Conversation

ghost
Copy link

@ghost ghost commented Jul 23, 2023

Implement RtlRandom (which despite its name is located in Xam, not xboxkrnl, which is why its not in xboxkrnl_rtl)

Stub XamVoiceSubmitPacket
Stubs for __CAP_Start_Profiling/End_Profiling/Enter_Function/Exit_Function

add a note about io_status_block in NtDeviceIoControlFile, change the param's type

move the X_IOCTL_ constants from NtDeviceIoControlFile's body into xbox.h
add X_STATUS_INVALID_IMAGE_FORMAT to xbox.h
Implement XexLoadImageHeaders
Much more correct version of IoCreateDevice, properly initializes/allocates device extension data
Stub version of IoDeleteDevice

Open the quickstart guide in the browser the first time a user opens the emulator

Add some persistent flags that are stored in the registry on windows, not in the config. These are just used to indicate whether one-time tasks have run, like showing the quickstart guide. On non-windows platforms a default value is returned that skips any of these tasks so they don't run every single time.

If the user opens a .iso file, show a warning telling them that we do not condone or support piracy. If the user closes the messagebox within two seconds set a sticky flag that will show them the warning every time instead. Otherwise the warning is never shown again. The Beep function is used to spook them a bit, to hopefully make them less likely to skip the message

If a user opens an archive file, which we do not support, explain to them that they're dumb.

Removed messages intended to "catch" pirates. If they're out there, we don't want to know about them. A huge chunk of the discourse on our discord is now about piracy. Hopefully these changes will deter them from coming to us for now, but some of these changes may backfire and need reverting

…oxkrnl, which is why its not in xboxkrnl_rtl)

Stub XamVoiceSubmitPacket
Stubs for __CAP_Start_Profiling/End_Profiling/Enter_Function/Exit_Function
add a note about io_status_block in NtDeviceIoControlFile, change the param's type
move the X_IOCTL_ constants from NtDeviceIoControlFile's body into xbox.h
add X_STATUS_INVALID_IMAGE_FORMAT to xbox.h
Implement XexLoadImageHeaders
Much more correct version of IoCreateDevice, properly initializes/allocates device extension data
Stub version of IoDeleteDevice
Open the quickstart guide in the browser the first time a user opens the emulator
Add some persistent flags that are stored in the registry on windows, not in the config. These are just used to indicate whether one-time tasks have run, like showing the quickstart guide. On non-windows platforms a default value is returned that skips any of these tasks so they don't run every single time.

If the user opens a .iso file, show a warning telling them that we do not condone or support piracy. If the user closes the messagebox within two seconds set a sticky flag that will show them the warning every time instead. Otherwise the warning is never shown again. The Beep function is used to spook them a bit, to hopefully make them less likely to skip the message
If a user opens an archive file, which we do not support, explain to them that they're dumb.

Removed messages intended to "catch" pirates.  If they're out there, we don't want to know about them. A huge chunk of the discourse on our discord is now about piracy. Hopefully these changes will deter them from coming to us for now, but some of these messages may backfire
@ghost ghost merged commit e54262b into xenia-canary:canary_experimental Jul 23, 2023
4 checks passed
@Cheezy096
Copy link

This has already been merged however it does not seem right to me that you should bother the user about piracy and increase this bothering if the user closes the piracy messagebox very quickly. Who are you to say whether the user is allowed to run a legal copy or not on your open source emulator? Piracy is bad but you really shouldn't be an obnoxious bitch about it. This is an emulator, not a homebrew app for a modded xbox 360 during the times this console was still the latest model.

  • You should not care how legal the copy of the game the user is playing is, you should only care on whether the emulator is doing it's job correctly in playing those games
  • Perhaps piracy is the users only way to get these games?
  • You are caring about piracy for a console released 18 years ago

@ghost
Copy link
Author

ghost commented Jul 23, 2023

This has already been merged however it does not seem right to me that you should bother the user about piracy and increase this bothering if the user closes the piracy messagebox very quickly. Who are you to say whether the user is allowed to run a legal copy or not on your open source emulator? Piracy is bad but you really shouldn't be an obnoxious bitch about it. This is an emulator, not a homebrew app for a modded xbox 360 during the times this console was still the latest model.

  • You should not care how legal the copy of the game the user is playing is, you should only care on whether the emulator is doing it's job correctly in playing those games
  • Perhaps piracy is the users only way to get these games?
  • You are caring about piracy for a console released 18 years ago

Piracy doesn't bother me, the emulator still plays the games, and they can disable the repeating messagebox by hitting Ctrl-F2. The point is to make an impression so that if the user comes to our Discord they know not to incriminate themselves, it actually is to their benefit. Users come into our Discord, incriminate themselves, anti-piracy users pile on them and it becomes this whole shitspectacle that drowns out any real discussion of the emulator itself. You've really not read the PR closely enough if you think this is about punishing pirates.

@Cheezy096
Copy link

Piracy doesn't bother me, the emulator still plays the games, and they can disable the repeating messagebox by hitting Ctrl-F2. The point is to make an impression so that if the user comes to our Discord they know not to incriminate themselves, it actually is to their benefit. Users come into our Discord, incriminate themselves, anti-piracy users pile on them and it becomes this whole shitspectacle that drowns out any real discussion of the emulator itself. You've really not read the PR closely enough if you think this is about punishing pirates.

Entirely my bad, should've read the PR more closely as you said. Read the messagebox section and went auto retard mode due to the amount of people I see that cry about piracy being a horrible crime (no matter the situation) but no, I should've actually put thought into it instead of being retarded and sending that, sorry.

@ehw
Copy link

ehw commented Jul 23, 2023

...is the beeping really necessary? It almost blew my ear drums out.

@ghost
Copy link
Author

ghost commented Jul 24, 2023

...is the beeping really necessary? It almost blew my ear drums out.

I'd be open to lowering its pitch

@Faz8

This comment was marked as abuse.

@Timo654
Copy link

Timo654 commented Jul 26, 2023

why not just completely remove ISO support then, if it's only used by pirates?

@Kamsthetics
Copy link

incredibly petty and for no reason

@ghost
Copy link
Author

ghost commented Jul 26, 2023

why not just completely remove ISO support then, if it's only used by pirates?

It is not only used by pirates. Some users convert their games to ISO, either because the games only work as ISO (I'm not sure how many games require this, I imagine few but have no real data) or because they were misled into thinking they had to in order to play their games.

But also, removing ISO support would just mean people would maintain another fork that still has support for ISO, or people would cling to older versions of Xenia.

Anyway, preventing people from using ISO's or punishing pirates wasn't the goal. I outlined why these changes were made in this message: #180 (comment)

@Timo654
Copy link

Timo654 commented Jul 26, 2023

It is not only used by pirates. Some users convert their games to ISO, either because the games only work as ISO (I'm not sure how many games require this, I imagine few but have no real data) or because they were misled into thinking they had to in order to play their games.

so basically anyone who plays a game that has to be in ISO format will automatically be flagged a pirate and will be earraped whenever they want to play their game? even more if they click the button faster than the hidden timer?

i can understand a warning message,though it is weird to also blame people who dumped their games legit, I've seen other emulators detect pirates based on filepath instead, cause your average pirate won't move the files outside "game-piracy-site.com" folder. The beeping seems unnecessary though, and it's very loud.

But also, removing ISO support would just mean people would maintain another fork that still has support for ISO, or people would cling to older versions of Xenia.

and earraping ISO users won't?

@DniweTamp
Copy link

why not just make a message box with a 5 second timer before ok button becomes clickable instead of damaging users' ears

@alexalc02
Copy link

Why not just have a disclaimer show up the first time xenia is run instead of when you load an ISO?
have it be a window that you can only close after a fixed amount of time has passed (maybe 10 seconds)

should filter out most pirates from seeking support in the discord or at least they will make sure to not reveal where they got the game from

@MiniGrief
Copy link

MiniGrief commented Jul 26, 2023

While I imagine people coming into the Discord to ask for help with their pirated games is annoying, this feels like throwing a sledgehammer at the problem which is going to cause a lot of collateral damage. Lessening the beep was a step in the right direction, but it's seriously not enough to do what you're trying to do.

People will make forks to remove this and they will still go into the Discord with or without a message to say otherwise. I also have a personal problem with it due to being autisitic and loud unexpected noises are extremely distressing. It could be argued that the beep is ableist due to issues like that.

I also would like to point out the irony that by trying to detour an illegal practice (or at least distance yourselves from it), you now resemble one in the form of scam websites which pop up warnings about something like your PC being hacked while blasting loud beeps.

@ghost
Copy link
Author

ghost commented Jul 26, 2023

Okay, the Beep has been removed! Sorry everyone, did not realize it was so bad, and thanks for your feedback

@snoandpetals
Copy link

snoandpetals commented Jul 27, 2023

I still think the message itself is overkill in its current state. You yourself said you won't remove iso support because people often convert their games to iso format legitimately.

Instead of treating every .iso user as a criminal, maybe do what yuzu/rpcs3 does and display a message upon first boot saying you don't support piracy, and if you're found to have pirated copies of games, you won't have support on the discord server. (And make them click a checkbox to make sure they read it)
This informs the user, and doesn't nag them for playing games in a certain format.

The earrape was well intentioned but probably wasn't thought about for more than the moment of its initial inception, and made this entire dev team look bad for allowing it to even merge.
From an outsiders perspective, it looks like the ambiguous name of this PR was meant to fly under the radar. In the future, I'd give PR more transparent names like "anti-piracy measure" and give it more time before merging to evaluate community feedback.

@ds8k
Copy link

ds8k commented Jul 27, 2023

This is absolutely wild and should've never been merged in.

@MANGOM1LK
Copy link

...and made this entire dev team look bad for allowing it to even merge. From an outsiders perspective, it looks like the ambiguous name of this PR was meant to fly under the radar.

I agree. I found out about this via Twitter, and from the outside looking in it looks like this has been added to the master branch. As well, my assumption was that someone else would have to approve a pull request for something like this. Neither are true.

For the reasons many have stated above, I think this was a bad PR. It appears to me that chrisps actually did bundle the anti-piracy stuff in with important code, which would have obfuscated something like this. Removing the beep is obviously a good change but it's a ridiculous violation of user trust for it to even be implemented that way at all. Not a fan of accusing users of being stupid, even if that is limited to comments in the code.

@SneakySnake04
Copy link

Okay, the Beep has been removed! Sorry everyone, did not realize it was so bad, and thanks for your feedback

What about the ISO warning? why won't you remove that? i have legitimate backups in ISO format, and i know i can just CTRL+F2, but you say nothing about that anywhere

@DarthShader
Copy link

Who the hell thought this was a good idea? You certainly weren't even confident in your own skullduggery @chrisPS
" spook them a bit"
"they're dumb"
"these changes may backfire and need reverting"

This behavior is beyond childish, embarrassing, and detrimental to the Xenia project's public image.

@ItzSwirlz
Copy link

ItzSwirlz commented Jul 27, 2023

I dont want to fan the flames, but I'll politely say that this isn't the way to go about it. ISOs have always been the standard format, and even going out of the way to bypass a user audio bypass is cruel.

What do you expect the modding community to do? Change the format of game dumps to something else?

Xenia is an emulator, not another software where you guys can make your own versions of those anti piracy screens on YouTube.

The way I feel you guys handled this was whack, but I hope you guys find a solution to pirates still looking for help in your discord, despite rules being clearly layed out

Also: still haven't the message like "terminated due to lack of basic computer skills" is still immature and petty. I'm sorry but, it takes away from the confidence of the emulator devs I have, and not that I've used Xenia that much, a project like this is not something I would use nor want to support.

@BillieBlueberry
Copy link

this was already removed so shhhhh be quiet

@3doplayer67484
Copy link

I dont want to fan the flames, but I'll politely say that this isn't the way to go about it. ISOs have always been the standard format, and even going out of the way to bypass a user audio bypass is cruel.

What do you expect the modding community to do? Change the format of game dumps to something else?

Xenia is an emulator, not another software where you guys can make your own versions of those anti piracy screens on YouTube.

The way I feel you guys handled this was whack, but I hope you guys find a solution to pirates still looking for help in your discord, despite rules being clearly layed out

Simple just don't have a discord lmao
Problem solved in like 2 nanoseconds

@snoandpetals
Copy link

this was already removed so shhhhh be quiet

The beep was removed, the iso nagging wasn't

@alexalc02
Copy link

fully reverted in the latest commit but it seems like the non-antipiracy changes were reverted too

@AceSevenFive
Copy link

The tone of the nag message and creating a moron flag for ""skipping"" it gives off "Our cleanroom RE involves reading Microsoft documentation and imbibing their propaganda on how piracy is the devil" vibes

@windwakr
Copy link

This is just straight up malicious.

@BillieBlueberry
Copy link

and it's already been removed after the dev realized their mistake.

@Dacatzgoescodin5267

This comment was marked as abuse.

@illusion0001 illusion0001 mentioned this pull request Jul 27, 2023
@foxt
Copy link

foxt commented Jul 27, 2023

Can this PR get reverted so if the author has now left the team?

AFAIK, that is being worked on.

Honestly, reading the response from the author which puts it incredibly context, there is a massive over reaction. We all make dumb shit, but there's no need for actual harassment.

@CookiePLMonster
Copy link
Collaborator

CookiePLMonster commented Jul 27, 2023

Honestly, reading the response from the author which puts it incredibly context, there is a massive over reaction. We all make dumb shit, but there's no need for actual harassment.

The thing is that the least intrusive approach (dialogue box with a Close button locked until the user ticks a "I acknowledge and have read what you are telling me" tick, a-la license conditions) would also be the best UX - avoiding the entire issue in the first place, and that's not even including the general tone of the code itself.

Harassment is inappropriate but the pushback isn't.

@foxt
Copy link

foxt commented Jul 27, 2023

The thing is that the least intrusive approach (dialogue box with a Close button locked until the user ticks a "I acknowledge and have read what you are telling me" tick, a-la license conditions) would also be the best UX - avoiding the entire issue in the first place, and that's not even including the general tone of the code itself.

Calling the user an idiot is very bad. But as someone who has wrote software used by 100K+ users I understand the frustration (still, be nice to your users.)

As I'm sure you're aware, there's no standard MessageBoxWithCheckboxA Windows API, and developers are generally lazy 😉.

@BillieBlueberry
Copy link

If chrisps code gets removed, both master and canary get a big downgrade

@CookiePLMonster
Copy link
Collaborator

CookiePLMonster commented Jul 27, 2023

Calling the user an idiot is very bad. But as someone who has wrote software used by 100K+ users I understand the frustration (still, be nice to your users.)

For sure, but an ability to contain that frustration and not externalize it where everyone can see it in public is one of the things that can set professionals and hobbyists apart.

As I'm sure you're aware, there's no standard MessageBoxWithCheckboxA Windows API, and developers are generally lazy 😉.

But that's exactly my point - is spawning an indirect dialog box (TaskDialogIndirect) more effort than

  • Spawning a "standard" message box
  • Starting a timer
  • Beeping (idk if just once or many times, I have not ran this code locally)
  • Waiting for input
  • Measuring time spent reading
  • Persisting this flag outside of the normal Xenia's config file

I would argue the "good" approach would have been less effort.

@Spaceghost
Copy link

Spaceghost commented Jul 27, 2023

I need the canary team to release a statement and to contact YouTubers to get the apology out. You've harmed the real Xenia reputation. You're just a canary fork

Let Chris go away but let his work be called out as it deserves. Harmful and ignorant. A child's volatile solution to being bothered by lines of text. Until this is fully placed in the forefront with a post that will never be removed from the repo docs so all canary users get notified of your missteps and poor choices of the past, I will continue to give all emulation teams between $20-50/month of personal funding except your team. This is worse than a security vulnerability.

Edit:
Canary contributors can downvote all you want, I'll give more to other projects to spite you and do some good here lol
And because you didn't reach out to give a statement, YouTubers already published embarrassing summaries of this. Good job fumbling your apology tour

@Daisouji
Copy link

I'm surprised it got merged, imagine what else could merged w/o people knowing.

@TorutheRedFox
Copy link

Why not just have a disclaimer show up the first time xenia is run instead of when you load an ISO? have it be a window that you can only close after a fixed amount of time has passed (maybe 10 seconds)

should filter out most pirates from seeking support in the discord or at least they will make sure to not reveal where they got the game from

have it appear the first few times xenia is ran and basically leave the user alone after that

@breezeepeezee
Copy link

breezeepeezee commented Jul 27, 2023

i'm sorry for being a bit late to the party, but i think a better feature that would benefit a lot more people would be an iso hash check.

personally, i find the redump website to be an incredible resource for genuine dump data, and i think xenia should cross reference redump's data so that way people know for sure their own dumps are genuine. (as opposed to punishing people who have dumped their own games legally)

@Erisfiregamer1
Copy link

the dev that made this change deleted their Github account. I actually feel sad it went this far now

@zlago
Copy link

zlago commented Jul 27, 2023

just a passerby but what the hell

  • at times i am obsessed with keeping things clean, and i did consider converting files to .iso for the sake of having one convinient file (girlfriend be playing around with psx and i get sent .bin and .cue)
  • not all pirate copies use .iso
  • what even are the logistics of a "user clicked off early, assume theyre a pirate"?
    • someone could read it quickly, and be falsely flagged
    • a pirate could take their time to read the popup anyways and not get flagged

i dont even care about the antipiracy thing or the malware thing, why is this all so stupidly arbitrary? who is this targetting, pirates or nerds? and who in their right mind would do these changes disguised as a normal PR? (maybe its just me being scared of making any changes without prior approval..)

@ZiroGX2
Copy link

ZiroGX2 commented Jul 27, 2023

Baffles me too. Given one of the only ways to dump your games on an unmodded system is to use god2iso

@Rackhamn
Copy link

Another passerby.

Most of my old EA games (pc-rom) are just an .iso file burned to the physical disk.

Also, there is nothing wrong with using .iso, however if you really care about not letting 'pirates' use xenia again you can do a hash check, then say 'we think you are a somalian pirate' and quit the program on input.

Really neet.

@pentargency
Copy link

Wow. I see so many terrible decisions like this get made in open source projects in a futile attempt to help manage inherently unmanageable front-line Discord support communities and reconcile this new role with their original purpose of being contributor and enthusiast comms.

Why are people still using Discord as a primary support community when it inevitably ends up as such an unmanageable morass of external band-aids and user hostility to help keep it usable? It seems like a chat room is not ideal for this kind of community. This issue, really, seems to me to be primarily a sign that Xenia is managing its community and support systems incorrectly. They're certainly not alone in making this mistake, to be fair.

Back in the day, for this reason, we would have forums for user support, larger-form discussions, and documentation... and developers on chat/IRC for faster or more ephemeral discussions. Consider, perhaps, an official subreddit or Lemmy/kbin community for front-line support and reclaim the Discord for contributor/tester/enthusiast comms by de-emphasizing it? Sure a hell of a lot better than intentionally trying to spook your users by blasting sounds and treating them like imbeciles because of your chatroom moderation inadequacies.

I find it really hard to understand the mentality of having trouble managing a Discord server leading to borderline-malicious user-hostile changes in the project, instead of just fixing the underlying problem of using a chat room platform inappropriately.

@bctnry
Copy link

bctnry commented Jul 27, 2023

the dev that made this change deleted their Github account. I actually feel sad it went this far now

Good riddance. Man should've seen it coming from miles away...

@burty-tech
Copy link

I actually got this message loading a game the other day and it was bizarre & felt like malware. I guess I was naïve to think a project like this would be inherently "safe" to run.

@ghost
Copy link

ghost commented Jul 27, 2023

This made me unwatch and unstar this repo. Never again on here

@xan1242
Copy link

xan1242 commented Jul 27, 2023

the dev that made this change deleted their Github account. I actually feel sad it went this far now

Good riddance. Man should've seen it coming from miles away...

You do realize that they were a pretty active contributor up until this point? It didn't need to go this far. A slap on the wrist was warranted at most.

I'd understand if they were a repeat offender or a troll, but they were an active developer contributing real improvements to the project.

I see this more as a loss than a win for the project (and open-source as a whole, he had some good projects). Let this be a lesson for the future.

@ParasiteXX
Copy link

This has to be one of the stupidest changes anyone has ever added to any program.. Good riddance you got kicked off the Xenia team..

@ghost
Copy link

ghost commented Jul 28, 2023

This has to be one of the stupidest changes anyone has ever added to any program.. Good riddance you got kicked off the Xenia team..

If you were talking to me, no, I didn't contribute to Xenia or Canary, I just quit watching the repo and unstarred it.

@ghost ghost mentioned this pull request Jul 28, 2023
@snoandpetals
Copy link

the dev that made this change deleted their Github account. I actually feel sad it went this far now

Good riddance. Man should've seen it coming from miles away...

You do realize that they were a pretty active contributor up until this point? It didn't need to go this far. A slap on the wrist was warranted at most.

I'd understand if they were a repeat offender or a troll, but they were an active developer contributing real improvements to the project.

I see this more as a loss than a win for the project (and open-source as a whole, he had some good projects). Let this be a lesson for the future.

A lot of us didn't want the dev removed, we were simply being vocal about a change that was harmful to Xenia. It's not us, but the Xenia-Canary team that decides the punishments.

@xan1242
Copy link

xan1242 commented Jul 28, 2023

This wasn't a punishment of any sorts. It was a decision brought by chris himself.

A lot of this being "simply vocal" is people coming from Twitter raging about this and going to directly harass him over this stupidity.

I'm not defending what he did here, it was absolutely stupid and petty. But let's just get the facts straight first and not be driven by emotion.

@haiku-balls
Copy link

jesus christ

@ddvarpdd
Copy link

I'd understand if they were a repeat offender or a troll, but they were an active developer contributing real improvements to the project.

Play stupid games, win stupid prizes. The author was willing to compromise the project over his grievances with mean end-users. Keeping him as an active maintainer is a liability regardless of quality of his past contributions.

@IruzzArcana
Copy link

the dev that made this change deleted their Github account.

Good.

@0x3C50
Copy link

0x3C50 commented Jul 28, 2023

the dev that made this change deleted their Github account. I actually feel sad it went this far now

don't feel sad, if a contributor decides to merge an almost malware-like piece of code into an open source project without discussing or even thinking about it, they absolutely deserve to be flamed for it. them being gone now benefits everyone else, but i know the idiot is still around somewhere. if you, the author of this pr, read this: everything that happened was deserved, and i do not feel bad about it in the slightest. go harass another open source project

@xan1242
Copy link

xan1242 commented Jul 29, 2023

Keeping him as an active maintainer is a liability regardless of quality of his past contributions.

I beg to differ.

He's a human being (right?). He deserves a second chance. You don't oust someone right away, even over a thing like this. This, while it is petty malicious code, it is just that. He didn't murder the project. He was just dumb enough to think it would go through.

What you do, after absolutely flaming them for their stupidity, is talk to them. Try to come to a resolution, try to correct their actions and then determine what to do next. This is exactly what should've happened not a day later after the first comment to this PR, but it didn't.

None of us know anything about exactly what transpired behind the scenes. But, from what I can tell from the outside - this being merged in the code for the whole 4 days before it was removed tells that this was mismanaged from everyone involved. Yes, this includes other team members and/or contributors who should've reacted. None of this would've happened if it was caught in time and talked through.

It's a "fool me once, fool me twice" situation. You can't base your judgment on one stupid move after many good ones.

If it comes down to his decision of being frustrated and leaving, then so be it, but let it be just that and nothing more.

This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet