If we’re talking about preservation, which is kinda why Retroarch exists in the first place, I think using AI may become an issue in the long run. It’s not a hammer you bought, it’s a tool you rent. Anyway those bubbles will resolve themselves in the long run I think.
I don’t think there’s anything inherently bad with AI-generated code as long as the developer feels responsible for it. However, there is a risk that AI would attract contributors who don’t know what they’re doing. Their code may look fine, but do they understand it ? Incompetence is harder to spot. At least before AI you could tell just by looking at badly written code.
You can still tell bad code from good code just by looking at it. AI doesn’t magically make bad code look good and I doubt the RA devs will just blindly merge PRs without reviewing them first. It’s very obvious when someone who doesn’t know what they are doing has their code reviewed.
Yes, we’re pretty much all using AI to varying degrees and with varying comfort levels regarding the implications. I’m not that worried about people not using RetroArch over it, as we’ve been on the receiving end of a dozen or more cancellation campaigns by now for various b.s. reasons. One more isn’t going to matter, I don’t think.
That said, anybody who wants to is welcome to fork RetroArch for this or any other reason. Forking is the lifeblood of open source, and we believe in open source. However, RetroArch is a massive program, and the libretro ecosystem is bigger still, and spite doesn’t provide enough nourishment to feed that beast.
There may be license issues in the future as the copyright stuff shakes out, or sustainability issues if/when the AI-as-a-service bubble bursts, and we’ll deal with that as it comes, but right now, we see it as an opportunity–potentially short-lived–to do a lot of things we’ve always wanted but lacked the time and manpower (and, admittedly, in some cases, the expertise) to accomplish.
Maybe ai will accelerate compatability for older systems. Claude how do I make this work on windows xp & 7 devices when it only works on windows 10 & 11. This could be a great improvement for compatability support. I wouldn’t knock ai coding it’s the future & everyones going to use it.
Granted not everyone will be the best prompter & we will have some sloppy code a lot of it actually practice in the prompt language & how to address it will only improve peoples skills with it.
The only thing i worry about is regressions. It’s possible to have regressions without AI obviously but i feel like AI will make the chances worse.
Then it’s handy they back up old Versions so IF it Happens you can get last stable version
AI can make Progression Faster as well so it’s pretty much wait and see what happens
Considering how many things have recently been added to RetroArch and how many issues have been fixed, the AI [integration] doesn’t seem all that bad. Thanks to AI, we have updated many cores, such as the Atari800 or Hatari, which have been forgotten for ages. Furthermore, new cores are constantly being added, like the recent ones for PCSX2, Cemu, and RPCS3.
The reason cores like LRPS2 and most of the newer cores for newer systems (PS2/GC and upward) is because the standalones that they’re based on only supports Win 10 and up. So the cores usually inherits that as well due to dependencies and such (I didn’t test cores like Xemu or Cemu on pre Win10 systems but I’d really be surprised if they worked on Win 8/7)
Up until recently, I was also still using a much older Windows version. Honestly, the fact that all the newer emulators/RA cores didn’t work on older Windows has a lot to do with why I made the jump to Win 10 (though I’ll likely start maining Linux before I jump to 11). Hell, even MAME dropped support for pre Win 10.
Though AI has really sped up the portage of standalones to cores recently…I don’t know if it could just as easily turn a core or standalone that requires at least Win 10 and make it run on say Win 7. That’s probably more complex.
To answer the regression worry directly: for 1.22.2 last year, we had zero CI regression tests. Before release, the maintainer would just take a random commit, test it on their PC, go ‘works for me’, and ship it. That was the process. Today there are over 100 regression tests, run on every commit and PR. Every change is still reviewed by a human, who is responsible for what gets merged. That part hasn’t changed.
If anything, we want to increase backwards compatibility, and AI gives us the chance to optimize for older hardware and APIs that we never had the manpower for before. That’s been the real story this year. AI let us finally tackle things we always wanted to do but couldn’t, for lack of contributors with the time and skill. It has also brought in new contributors who otherwise wouldn’t have joined. We’re not alone in this: MAME, PPSSPP, Flycast and Linux all take AI-assisted contributions now (or use it directly like in PPSSPP and Linux’s case).
Like hunterk said, there are open questions that we’ll deal with as they come. But the goal is the same as always: a better experience for the end user. We want the next stable to be a big step up in quality, which is also why it’s taking a bit longer.
Try the nightlies to get a taste of what’s coming. If something breaks, please report it so we can fix it before the stable.
Not sure why LibretroAdmin and Hunterk feels like they need to, justify it…
It’s not like, the complainers are supporting the project, aren’t they?
On this, I can’t wait to: “Make Dolphin and Citra work in Windows 7, full speed and make no mistakes”… jokes aside, I do hope Libretro/Retroarch devs manages to implement further optimization with AI assistance.
Because they care about the community, as much as the community cares about the project. And this is a good sign to me. When people have concerns, doesn’t it make sense to discuss, explain and sort it out? I don’t think the community has to pay money in order to discuss issues or what bothers them.
By support I don’t mean monetary support… I mean, are these complainers even contributing something to Retroarch itself? Are they at least trying to fix the very stuff they complain about?
In this month I’ve witnessed so much drama regarding AI asistance/help/ussage in software and everything ends up in:
- AI? Then it’s “Slop”… until it benefits me, then it’s a great work.
Just look at the decomps and ports that took place recently, how many of those get’s pumped weekly? I personally don’t use them and never will, but forum users falls in either “anything AI is “slop” unless I like the product”… so no… even if “the community cares” then provide something useful to Retroarch/Libretro instead of complaining about what the actual devs are doing with their project. Or complain all you like, but prove you can do better.
There’s no actual discussion… most people complaining about stuff with AI aren’t:
- Real users of Retroarch because “it’s ugly UI and too difficult to use”.
- Real contributors.
- Never have wrote even a “hello world” in their lives.
Edit: Want a fresh reminder on why I don’t think a discussion is even valid?
AI Generated Overlays “Nice Work We’re contributing to the project”: AI Overlays
AI Generated Shader “How dare you! You don’t even type code” : [Release] AI-Generated Lightweight GLSL Shaders for Low-End Android
They/me are users so they have a Right to ask Questions and get them Answered
Nobody owes anyone anything here. This is my hobby, so nobody gets to tell me how to do it. They can choose to use (or not) the things I make and share, but that’s as far as the relationship goes.
Sometimes, writing the code is the hobby, and using AI to do it doesn’t make sense because it’s the process that’s important rather than the outcome (e.g., this is how I feel about shader code). Other times, the end result (i.e., the finished program/feature) is the important part, and the code is just the way to get there. If AI gets me to that result easier/faster/better, it often makes sense to use it (this is how I feel about most other code stuff in RetroArch).
My concerns about people using AI to develop stuff is how it will affect the long term maintainability of the software. For shaders it doesn’t matter, they are self contained and if there’s a bug in one of them, people can always use another. The issue is more with using AI code in cores and particularly in the libretro libraries and RetroArch frontend.
Using AI to produce code means someone has to understand it to review it effectively. If the person who used AI doesn’t do that, someone else will have to. If that’s not done, it leaves a maintenance time bomb for thee future.
Any idea of ‘you submitted the code, you’re responsible for it’ does out of the window when a person who uses AI to generate code doesn’t understand coding well enough to even attempt to review or debug it.
Very few people like reviewing other’s code and whilst fixing knotty problems has some appeal to some people, even they prefer writing new stuff. Expecting volunteers to spend lots of their time reviewing/fixing a deluge of AI generated code risks discouraging them from engaging in the project - to the long term detriment of the project.
A few replies i’d like to address without quoting them. It’s good to show you care about the community & pointed out how you want to increase backwards compatability; I do believe that AI increases those chance because there are those who are only doing it for themselves & always update those type of contributors I believe are just trying to make a name for themselves without caring about the software or the community fully. There is always never enough contributors with the same goals in mind so it’s hard to make those things possible when every person’s opinion is diverse from each other & everyone thinks they know enough to say things like it’s impossible or it’s just not gunna work.
Coding has taught me anything is possible if you have the will for it research & development is key to every project. So I could appreciate AI assisting because it’s not judgemental it’s an assistant to solve the predicament. The models can get better but the user of AI assistants is what can generate good or bad results by the context of the instructions.
That’s a way of saying if it ain’t precise then the results won’t be nice. As someone who has read a little bit on image generations prompt language I learned that it’s pretty complex you need to be very precise & there are formats in the prompting language which tell the AI importance of priority which the average user does not use these formats they write paragraphs & believe that alone is good enough. More people should try to understand the formats when prompting as this plays a role in code generation just like it does in image generation.
As to the other subject around contributors, complainers, & hobbyist it’s a hobby when you do it for yourself but the moment you decide to put it out there in the internet open to the world it’s no longer a hobby it’s a project. When you put a project out there you are putting a product out into the world the product will be used because it exist to the public to me that’s basic consumerism. When you do that you are a service no matter what your intentions are expect to be customer service when you go public.
Everyone has the right to give feedback & criticize what is public all of that should empower you to want to be better, do better, & make the project a better success for all. If you cannot comprehend that all of this is to be expected or if your intent is not to be a service for the public then please do not put your stuff out there. Keep it all at home work alone or along side your llm or real life one friend who want to work with you on your hobby because that’s what a hobby is a hobbiest is not trying to be a service they are doing it just for them.
The whole AI is slop until it works for me yes it’s true not everyone is a coder, there will be average people or half wayers I like to call those who can read code to a certain extent somewhat understanding what’s happening but not fully enough to write or contribute to themselves or others will use AI. As I mentioned above the complexities of prompting there will be alot of average people who don’t understand & will produce sloppy code from generations assuming it works & pushing it out there as is. We seen some of the jokes out there haven’t we?
Coders have a new job field ai fixers they get paid to read ai slop & fix the code. The debates on if AI is ready yet, will ai ruin every project if everyones using it, the expectency of failure or regression these are all wrong ways of thinking about it. The questions to ask is what model are they using, how developed is that model, the author who uses that how skilled are they actually, & does the author use the complexities & formatting when prompting generation fully?
Those are the real factors that determine if the results are going to be slop or not. To simplify it in metaphor ai models are like swiss army knives theres many made by different brands that do put different tools on their swiss army knife, the person who got the swiss army knife may not know how to use every tool on it but they do have all those tools available to them.
I don’t mean this as an attack, but this characterization ignores the role of collectivism and the concept of the commons, and it renders all production transactional, which is exactly in opposition to the ideas behind open source and copyleft.
End-users thinking they get to dictate how open source developers spend their free time is what drives devs to quit contributing to open source altogether.
Again, if you like to use the things I make and give away for free, you’re welcome to, but this does not entitle you to anything beyond what’s outlined in the license. If that’s not an arrangement you’re comfortable with, you should stop using open source software and instead stick with commercial software where you can “vote with your wallet” and hassle their customer service department until you get your money’s worth.
I disagree with that it’s not that people are ignoring the role of collectivism as for the rest of what you said I think your stance on it makes production transactional. Praise me or pay me & I will continue to do what I think what’s best for everyone other wise i’ll continue to do whatever I want only for me. That’s what i’m getting from it; end users you mean the people using your product are not dictating how you should spend your free time they are wanting the complaints to be heard & the issue to be solved. Nobody is coming to your house dictating you or forcing you to do anything they will seek the alternative if you fail to provide.
As I said those devs who are contributing for praise or to make a name do not truly care about the software. They seek recognition or some sense of approval if they quit because they aren’t getting it. I don’t think consumers are believeing they are entitled because they complain & express it.
You don’t have to pay to express a problem but if you did pay for it then you probably should get your money back. My hobby is wood crafting I make wooden objects for me I don’t advertise or put my creations out there because I have no desire to sell them or make a name for myself. But if I did & I got complaints about the craftsmen ship like a wooden guitar I made isn’t edged perfectly or seems uneven I wouldn’t tell them if you don’t like it to go to a commercial craftmenship shop like J.M Stewart or C.F Martin.
I know I ain’t perfect & I am doing it for me I can improve & be better but when I decide i’m gunna put it out there this is what I do on the internet it no longer is for me I am asking to be known as a service to the public. There will always be complaints & criticisms how we handle it is what counts.
I recommend you google “why do open source devs quit?” I assure you: “lack of adulation” ain’t it.
Using your woodworking analogy: let’s say you live by a bus stop that has no bench. You commonly ride that bus and get tired of standing there, so you decide to build a bench to sit on while you wait. At first, you carry it with you back and forth, but from your window at home, you see kids and old people having trouble standing there, too, and you think “other people could probably use a place to sit, so I’ll just leave my bench there and maybe they can sit on it, too.”
Later, an Amish guy knocks on your door and says “did you use power tools to make that bench? You should not use power tools in your woodworking because I don’t like it, and I’m going to tell other people not to sit on your bench because it was made with tools I have deemed unethical.” [this is for illustrative purposes only; Amish people don’t usually care if other people use technology, and some even use power tools themselves, just powered by compressed air instead of mains electricity]
How would this make you feel? Have you invited this man to tell you how to do your woodworking simply because you left a piece of it where someone else could (at their option) find value in it, as well? Are you further obliged to not only listen to him, but to indulge him?
Your earlier comments suggest the answer would be ‘yes’, and you never would have left the bench there in the first place because of that risk, kids and the elderly be damned. But is this the world we want to live in?