Jump to content
LaunchBox Community Forums

Emulator Cores - An open letter to the developers


robwired

Recommended Posts

I remember reading this and thinking we would all come back to this discussion. When the other user posted I thought it might be a good time to revisit. If we aren't in the "longer term" yet, that's fine. I think I do understand from our discussion today that it's not just configuring the emulator cores but rather writing all the other stuff that's in an emulator that's the issue. 

Launchbox looks so beautiful and well done so it's easy to forget that the emulators are handling the input mapping, shaders, audio back end, etc.. and NOT Launchbox.

I do understand that this is quite an undertaking LordMonkus and appreciate you explaining it. I can see the amount of work involved in rewriting a simpler RetroArch.

I guess the only way to realize the vision that I have of drag and drop cores would be if RetroArch were to release two programs. The existing program and a separate version of it's program that would just be a core without an installer or its own interface. This core could then be imported into a Front-End such as LaunchBox. Then all of the code you are talking about would be there for front-end developers to work with.

Otherwise, we are back to Launchbox allowing the drag and dropping of RetroArch and managing the installation process, which is what it does now for all emulators. Maybe that process could just be made easier and seem more integrated into Launchbox.

Thanks much.

Link to comment
Share on other sites

I've had a few unexpected health issues lately that have, unfortunately, taken up a good deal of my time and energy of late so I haven't been able to be as active around here recently as I'd like. Thankfully they've mostly sorted themselves out at this point so things should be getting back to normal.

In any case, I just wanted to jump in here and say that while, on a basic level, the idea of simplification over convolution is both sound and understandable, the problem is that, as has been established multiple times just within the confines of this one thread, the real world doesn't always leave room for such things once you really dive into the finer details. Echoing @lordmonkus's sentiments, the utopian-altruistic-emulator-developer world that would be a prerequisite for what you're asking for simply does not exist. Feel free to read over this thread if you need any evidence of that - pay attention to the posts by RealLibretro. Real swell guy that one. byuu? The Higan dev? Complete narcissistic asshole that treats his own fans like utter garbage. The scene is full of nutcases, frankly; and I'd just as soon that @Jason Carr, being the nice guy that he is, not go near some of these devs with a 30-foot pole, let alone have the kind of entangled development relationship that you're talking about. And by equal measure, I'd just as soon those people not come anywhere near Launchbox's development. I'm content to let some of these guys duke it out in a war of their own making and let the chips fall where they may - we'll still be over here doing just fine with our popcorn and our sweet, meticulously organized library, that it just so happens we can hook whichever emulator we choose into.

And the alternative to that is...what? In-house emulator development? That's just not gonna happen. You understand that some of these devs, despite being borderline sociopaths, have dedicated literally years (more than a decade in some cases) to the development of emulators for single platforms right? And in some cases that's including multiple developers working on the project. That's not even remotely feasible or practical for what we're talking about.

Again, it's not that there's anything wrong with wanting things simpler, it's just that the reality of this hobby is far from simple, for social, technical, and even legal reasons. Is the current system perfect? Of course not, but it's by far the best experience I've ever had with any sort of front-end environment, both because of the relative ease of the software itself and because of our community which is one of the nicest and most helpful you'll find on such things. And as lordmonkus said, practically everything imaginable is already covered in existing tutorials, people just have to make the small amount of effort to watch and follow them; and if there isn't an existing tutorial, one of us can probably help get it sorted out anyway; and hey - that means we'll have something new that can be covered in a tutorial video :P

There are very real and tangible improvements that can still be made to Launchbox that would require only a tiny fraction of the kind of developmental effort you're talking about, and for most of us, those smaller improvements are going to be more beneficial than the kind of monumental overhaul that you're talking about. I also think the idea that the userbase would "expand significantly" as result of that kind of overhaul is pretty overstated. Emulation is, has always been, and by all accounts will remain to be niche. There's a particular group of people that are passionate about it, and a much larger group that simply doesn't care and will never care regardless of how painless you make it - these people aren't going to suddenly be super interested in X68000 emulation simply because you've streamlined the process a bit.

So strap on your nerd-goggles like the rest of us and jump in - you'll make it, I promise. There are plenty of skilled lifeguards around these parts.

  • Like 4
Link to comment
Share on other sites

Well said and glad you are feeling better.

I was trying not to name names of devs and their.... well let's just say quirky personality and behavioral traits.

Let's just talk about Retroarch here for a moment since it is one of the more seemingly complicated emulators out there for the "average" user. Out of the box aside from downloading the cores you need and dropping bios files in the \system\ folder it just works, no controller config unless you have crazy controller setup.

Now for people like me who want to tinker with it and fine tune it to my system there are plenty of settings to fiddle with such as reduce audio latency, hard gpu sync and frame delay just to mention a couple off the top of my head, not to mention the stuff I need to get into for G-Sync.

I know there are a lot of things in there that many people find overwhelming and up until recently all those settings you see in it's menu you are left guessing as to what they all do. But if you look into the nightlie builds for what is coming up each menu item now has a small line of text telling you what each setting does. This should make people lives easier.

Now I said that out of the box Retroarch pretty much just works and it does on my main gaming rig but on my lower end HTPC I just built and installed everything it required some more tweaks to get things running as smoothly as I wanted because we are now talking about the world of Windows based PCs. It's this crazy possible combination of hardware and operating systems is why the PC side of things becomes more tricky and accounting for it all is a huge job.

Something else that the average person doesn't know and maybe don't even care about Retroarch but they should know and care about is beyond their UI is they have done a lot of work on the v-sync side of things and the way sound syncs up. Emulation is not like normal programming where you just write code and compile an executable and it just works. Emulation is about tricking a piece of software (game rom) into thinking it is running on real hardware and all the timing issues that those original systems operated on. If these timings are off then the game has problems and glitches ranging from minor to extreme. This is why you see the more complex emulators like Higan (Snes emulator for those that don't know) requires a 3 GHz cpu to run every single game at 100% speed, think about that for a moment, a 3.5 MHz system requiring a 3 GHz modern CPU to run at full speed. Then you get people who don't know any better thinking that a CPU with 8 cores and a high end GPU should be able to handle an emulator better when in reality a GPU does nothing for the emulation aside from resolution scaling and shader. A GPU does absolutely nothing for the emulation itself and neither does having an 8 core CPU. Most emulators don't even use a dual core CPU (some do). Why is this ? Again it all has to do with the emulated systems timing and the way the original hardware functioned. It is much easier to keep the timing in line on a single or dual core CPU, once you start trying to spread the original hardwares functions across multiple cores of a CPU it becomes much more difficult to keep it all in sync. This is also why Saturn emulation took so many years to get to a point today where we can actually call it "good". The original Saturn hardware had 2 cpus and 2 vdps (video display processors, sort of like gpus) in it. The system was so complex for it's time programmers back then even with documentation from Sega had a hell of a time making games for it. Emulators developers generally do not have access to this documentation and they have to figure it all out on their own.

This is why implementing and maintaining libretro core into Launchbox is not such simplistic task. I have no idea how deep Jasons knowledge of programming goes but I do know that emulators are not written using the tools he uses to make Launchbox.

@robwiredI saw your posts over on the Retroarch forum but you left out the major issues at hand here. How much time their devs put into the Retroarch UI and all their other stuff outside of the emulator cores themselves. You also did not ask about the policies surrounding the use of libretro cores into a commercial product such as Launchbox. I am certainly not going to delve into the legalities and finer details of GPLv3 licensing but you can if you really feel like you want to, here is the web page for it https://www.gnu.org/licenses/gpl-3.0.en.html

Link to comment
Share on other sites

So I just wanted to say a bit about this forum thread, I have been reading this one and following it. At this point this thread has become nothing but nonsense. @Zombeaver although your points are valid you honestly come off as condescending and long winded not as a helpful moderator, you sound like the developers you are talking about that you say are jerks.  Using big words and writing books just makes someone like me who isn't as emulation or front-end savvy as yourself not even want to ask for your help or even read your forum posts. And I actually have a high enough IQ to understand what you typed, in other cases some of the newer people reading this may not understand a word of what you even typed. I think @Lordmonkus was handling this thread ok and I'm hoping it's done with because honestly it just makes you guys look argumentative and combatant.

Link to comment
Share on other sites

6 hours ago, lordmonkus said:

It's this crazy possible combination of hardware and operating systems is why the PC side of things becomes more tricky and accounting for it all is a huge job.

Yep. I mean my gosh how much of that have we already seen just with Launchbox itself across multiple hardware and OS environments? Jason's already dedicated a significant amount of time just to optimizing it to accommodate as wide a range as possible, and that's without the additional layer of complication brought on by individual emulator implementation.

1 hour ago, Temp said:

So I just wanted to say a bit about this forum thread, I have been reading this one and following it. At this point this thread has become nothing but nonsense.

What it's become is academic. That's what it's been for a while now.

1 hour ago, Temp said:

@Zombeaver although your points are valid you honestly come off as condescending and long winded not as a helpful moderator, you sound like the developers you are talking about that you say are jerks.  Using big words and writing books just makes someone like me who isn't as emulation or front-end savvy as yourself not even want to ask for your help or even read your forum posts. And I actually have a high enough IQ to understand what you typed, in other cases some of the newer people reading this may not understand a word of what you even typed.

I'm not sure what prompted all this BS but I'm quite sure it wasn't necessary. I'm sorry you found it condescending for me to state the reality of the situation with verbiage that's more elaborate than you'd like. That's just the way I talk - both on and offline. I'm extremely detail-oriented, period. I've found that to be an asset in a variety of settings but certainly not the least of which is emulation, given the amount of minutia it often presents. That's not going to change nor will I be apologizing for it.

At no point have I ever told someone here "No, I'm not going to help you." or "Why can't you figure this out?" or "Git gud." In fact, I've always made it a point to do whatever I can and take as much time as is necessary to get the issue resolved so long as it's within my ability. Why? Because the emulation scene is chock full of actual condescending elitist jerks that would sooner tell you to pound sand than take the time to be even remotely helpful; and I hate that shit. If you or anyone else chooses not to take advantage of the resources available to you (video tutorials, written tutorials, and these forums), that's on you - not me or anyone else. Nobody's going to be able to help you address questions that you don't ask.

1 hour ago, Temp said:

I think @Lordmonkus was handling this thread ok and I'm hoping it's done with because honestly it just makes you guys look argumentative and combatant.

Huh? I don't even disagree with @robwired in sentiment. I don't think anyone here does. I have no problem with streamlining (so long as meaningful functionality isn't compromised) or with improving efficiency. Those are good things! At the same time, I'm not going to blindly endorse something that sounds nice in theory but simply isn't realistic or when the ramifications of what's being proposed aren't being taken into account.

Link to comment
Share on other sites

At no point did I ever say you are not helpful all I'm trying to say is you come across in your VERBIAGE as being condescending and I'm not trying to put you down but this is the kind of attitude that truly makes the world an unhappy place to live in. Feel sorry for you taking what I'm saying the complete wrong way. There is a way to be kind and professional to someone asking for help and honestly sometimes you don't come across that way. If you cannot take constructive criticism from someone then you probably should not be a moderator for a public forum where you will get all kinds of different people asking for help not just holier than thou people who spent 24 hours a day tinkering with emulation. Very sorry that you feel the need to demean me on my opinion on how you make yourself sound.

Edited by Temp
Link to comment
Share on other sites

I was reading this thinking, really "we" can't do that much about any of this, other than go begging to the developers asking to make things easier. Personally I think all developers try their hardest to bring us the best and simplest program they can. 

I would love to make things easier, I got into emulation less than a year ago. Had a terrible time trying to learn everything mad some bad hardware choices, got all my programs in a pickle gave up on so many attempts to get controls and games working well. Decided to go with a Nvidia Shield which has a whole new set of issues.

(I even setup a website for doing guides just because I think there is not enough information out there) 

 

the point being emulation for non PC people is really hard if you want EVERYTHING and 100%. Probably will be for a while yet.

As a user community (emulation as a whole not just Launchbox) can WE do something to make things easier?

It is the settings of emulators that are the problem right?

they mainly work of text based files?

Can we not make packs of settings that are drag and drop? 

Adding stuff with launch box seems fairly simple (sorry not a LB user)

then just drop in a settings pack and your almost good (controls is an issue)

I'm sure there are MANY more people that could give a little time to that than there are developers writing code

 

Link to comment
Share on other sites

12 minutes ago, Thatman84 said:

As a user community (emulation as a whole not just Launchbox) can WE do something to make things easier?

Yes - provide as much useful information as possible in order to ease the process as much as is feasible; which is what's already taking place. Yes, the video tutorials are designed to be used in conjunction with Launchbox, but in general they're still applicable whether you use Launchbox or not - they just include instructions for incorporation into Launchbox which you're free to disregard (with the caveat that in a few cases there are some nifty little tricks that are part of Launchbox that make the process significantly easier). The first 2/3 of the Amiga tutorial I did is completely independent of Launchbox and in no way requires it in order to get the emulator and games running.

23 minutes ago, Thatman84 said:

It is the settings of emulators that are the problem right?

Yes and no. That can certainly be a big issue, but in some cases there's more to it than that. Bios files, the hardware and software that you're running the emulators on, etc. There definitely are some cases though where one or two knobs just need to be turned but people aren't aware of it.

27 minutes ago, Thatman84 said:

they mainly work of text based files?

It depends on the emulator but typically yes.

28 minutes ago, Thatman84 said:

Can we not make packs of settings that are drag and drop? 

In most cases, I don't think so. The primary reason is that in the most consistently problematic (or at least fiddly) emulators there is no one-size-fits-all settings solution. Retroarch, DOSBox, PCSX2, and Dolphin are all examples of this. There just aren't simple set it and forget it settings for these; in some cases from one game to the next, let alone from one computer to the next. The best we can do is make an effort to explain what the settings do in order for people to make more informed decisions. I'm pleased to see that RA has been working to improve that recently. That stuff's been far too opaque for far too long, honestly. Some of these will always require some amount of experimentation and testing though, simply because what works in one case won't necessarily work in another. Having the kind of "packs" you're talking about would really only work in a situation where there are definitive settings in all situations; and in most cases where that'd actually be feasible it probably wouldn't be for the emulators that you'd actually want these packs for. And this is of course ignoring the fact that there are myriad cases in emulation where things are just purely subjective (in terms of visuals, certainly), which doesn't exactly lend itself well to "this is what everyone should use."

I like the idea, I just don't think it'd work in the current emulator ecosystem.

Link to comment
Share on other sites

Thanks for the reply

 

yeah I know what your saying about settings being subjective, but I really think that sort of thing really think there is legs in it. Personally (without much experience) do you not think a settings pack of different levels could cover most systems. Low end settings medium and high end. Along with the tutorials.

 

i here what your saying about Brads tutorials being somewhat universal. I watch the the ones on the systems I'm setting up just incase there are tips, which there always are. :) 

 

to continue this conversation of making things easier (as per OP's sentiment) 

where do you guys have written tutorials around here? I have seen @lordmonkus say earlier there's written stuff. I prefer that over videos because of rewinding or going back and forth over a day or two.

 

would you guys be interested in forming a tutorial creator cross community group if we had a platform? Some way to help all Frontends and emulators independently. Something I have been thinking about. (Not to take time from any place but attempt to globally help out)

(There's less tutorial creators in this scene than developers and theres not many of them!!)

back to to the settings packs...

if they were a thing maybe it could be a simpler task for Jason to embed/adjust emulator settings from within Launchbox. So once you have the system setup to launch Launchbox can automatically change settings in the emulators by way of editing their settings files. Till a big task but maybe a handy feature if launchbox could read the users hardware "score" then change a few things to suit. Again for the per game settings this would be harder but maybe something to think about long term.

Edited by Thatman84
Link to comment
Share on other sites

My thoughts would be to at least shoot for something minimal that already works in an existing product and hopefully isn't so much work that it would be impossible to add to LB.

OpenEmu is very popular for Mac users because it is pretty easy to use. I use both Mac and Windows.

All OpenEmu has that LB doesn't have, is the following, and this is why it's so easy:

- a list of cores in the ui that you can simply click Install buttons for (i believe it keeps these updated automatically because I have the latest mednafen with Saturn support in mine now and i didn't before)

- a simple ui that shows if any bios related files are needed for any of the installed cores and tells you the specific file names you need to "acquire" and drop into the OpenEmu gui

- global option to play all games fullscreen or not plus a toggle any time you want

- a default display filter (i think this is a shader in RA terms). and in each game you can easily choose between 14 popular "shader" filters for the game simply by clicking on the one you want to try. boy does this make things easy for people like me who are never going to try out 550,000 possible shaders and just want one that looks fine without having to download or know anything at all about a shader!

- last but not least, a Controls ui. by default it automatically detects out of many supported controllers and autoconfigs them for you across all cores/games. it also lets you EASILY change these mappings per emulator in a super simple ui. it also lets you EASILY set keyboard keys instead of using controller. and the ui for this is outstanding. it shows the actual controller pic in the mappings config part of the ui and highlights each control you want to map, which is super awesome for people who have no dam clue what an analog stick, dpad, or other is, like i didn't at first.

 

That's about it. It's overall configurability and customization doesn't even hold a candle to LB. That's probably because OpenEmu isn't a cabinet front end. It's just a super easy emulation system to run on your computer with easy setup and without frills.

Nirvana would be Launchbox plus this minimal set of easiness. 

The OpenEmu ui I speak of is ridiculously minimal and easy to use, nothing like RA. For those who want RA level of configuration, they will use RA. But for a huge population of people who just want to play their games and have them look pretty good without investing their life into setup, this easy minimal ui approach satisfies this. 

Jason obviously will do what he feels is best for his software. I am not trying to force anything on him or the rest of you guys. I am just giving my feedback as others are, so he can read it and do with it what he will.

Link to comment
Share on other sites

12 minutes ago, Thatman84 said:

i I guess it's still the same problem here of the unlimited hardware and software combinations in Windows based systems that make it hard to achieve that OpenEmu feel

i don't really think this issue is any different on windows or mac. you have to have controller driver support on both OSs for the controllers to work. if you have that, who cares what the OS is as it shouldn't matter. LB can support the same controllers just as easy as OpenEmu.

for the filters/shaders, i'm not 100% sure if varied hardware matters either, but i really doubt it in general.

for what we are talking about in this thread, i really don't buy that the broadly supported hardware on windows is the problem to making things easier on windows. we're just talking about using controllers that need driver support on either system, a cpu to do work (they both use intel CPUs), and sometimes a video card, which is handled by the video drivers anyway. we're talking mostly about the application level in this thread. i don't think LB runs at the kernel level or includes drivers for devices.

yeah, you can have mixed results from emulation itself between Mac and Windows and Linux, but so what. you get what you get there regardless of what we're talking about here, which is just making application level setup easier. 

 

Link to comment
Share on other sites

Ok this is getting ridiculous. You people are now comparing OpenEmu to Launchbox which are 2 completely different programs doing 2 completely different jobs. If you are going to compare OpenEmu to something compare it to Retroarch.

Hardware and operating system differences make a huge difference when it comes to programming on a platform. With a Mac you know pretty much exactly what OS version and hardware configuration you are targeting where as on a Windows based PC you have 3 or 4 and sometimes even more potential versions of Windows to code for and then you have the different versions of DirectX, OpenGL and other hardware drivers to worry about. Yeah this is an advantage to the Mac in some cases but also a detriment to it.

Go try and run the CRT-Royale or Kurozumi shader on an integrated GPU or even some budget low end one and see how well that runs for you. Also try all the different shaders available in Retroarch on both Nvidia and AMD GPUs, you will find out pretty damn fast that it matters quite alot. Also try running Mednafens PSX core on a 2 GHz CPU compared to ePSXe on the exact same CPU.

You want to point out what OpenEmu does that Launchbox doesn't ? Let's point out what Launchbox does that OpenEmu doesn't.

Launchbox lets you run any emulator you choose. The single biggest reason to use Launchbox right here. Does OpenEmu support a choice in Playstation or N64 emulator ? Does it support emulators like PCSX2, Dolphin, Cemu, Citra, Daphne, DosBox. Looking at their homepage and wiki it looks like they don't even support Mame in their non dev builds.

Launchbox lets you run any other program you choose, like Windows games or even launch movies if you so choose.

Launchbox lets you use it from the couch with a controller.

Launchbox gives you awesome themes.

Launchbox has 1 developer (a single developer, not a team) that is working constantly to make it better and implement things that everyone wants.

Launchbox actually has a forum board like this that will not only support you in setting up Launchbox but more often than not we even support people in setting up emulators. How many other products forum boards will help out with products that aren't their own. Go right on over to Retroarchs forums and ask for help with front end help or other emulators, I can tell you right now you will not get the same treatment over there. That is not to say they are pricks or assholes but they are under no obligation to help support products that aren't theirs.

Does OpenEmu have a forum board to help people ? I couldn't find one.

If you somehow think setting up Launchbox is so difficult please go try setting up HyperSin and RocketLauncher or any other front end for that matter. Please do not compare Launchbox which is a very open ended front end with a huge amount of customization options for users to a locked down emulator with a basic front end. Launchbox is by far the easiest to set up front end out there that at the same time allows so much user customization and options in what emulators the end user gets to pick. Seriously, I cannot even think of a single emulator that you cannot somehow shoehorn into Launchbox yet, yeah some require some extra work like SSF but the option is there for the people who don't have the hardware to run Mednafen for their Saturn games.

  • Like 3
Link to comment
Share on other sites

The problem with all this is that Launchbox keeps getting compared, incorrectly, to something like Retroarch or OpenEmu - they're just not the same thing at all. Launchbox shares more DNA with Windows Explorer than it does with Retroarch. At the end of the day it's basically a visually-appealing organized collection of shortcuts. It takes X and throws it at Y, and possibly injects Z (launch parameters) into the chain if you so choose, and that's it (just like a Windows shortcut). It doesn't emulate anything. It doesn't even have to be used with emulators at all if you didn't want to - you could throw in a bunch of CBR (comic book archive) files and associate them with CDisplay if you wanted to. Because again, all it's doing is taking one thing and throwing it at another, with a pretty UI on top.

If you wanted a greater amount of granular control over the emulators themselves, you could always look into something like RocketLauncher; it does a number of things that are being discussed here, but if simplification is what you're looking for, that's certainly not where I'd start.

EDIT: Aaaaaand I was a minute too late in posting haha.

Link to comment
Share on other sites

Mac emulation is abysmal compared to Windows so OpenEmu is a good choice for people like minimal setup... much like LaunchBox is for those that don't want to deal with HyperSpin.

No the programs are nothing alike. There are pluses and minuses for both. I can tell you I switched from a Mac based HTPC running OpenEmu to A Wintel setup mostly because of Launchbox. 

Link to comment
Share on other sites

19 minutes ago, lordmonkus said:

Ok this is getting ridiculous. You people are now comparing OpenEmu to Launchbox which are 2 completely different programs doing 2 completely different jobs. If you are going to compare OpenEmu to something compare it to Retroarch.

@lordmonkus, respectfully, I'm afraid you are really missing the point of what's being said to some extent. I'm surely not comparing. I am simply using Openemu as an example (examples are helpful) of how they made some things easy that yes even LB has the ability to do (with some work of course!). And I surely am not saying OpenEmu is better than LB. And I don't buy the hardware excuse at all for what we are talking about. Again, we're talking about the LB front end application level. We are not talking about programming an actual emulator here. I hope you get the point.

  • Like 1
Link to comment
Share on other sites

Also @zombeaver, @lordmonkus, and @dos76, please know that even though we may or may not have an agreement on this topic, the three of you have helped me immensely with my LB stuff (and even related software that is not LB) and I truly appreciate all your help, as I'm sure everyone else does. :D. So thank you!

Link to comment
Share on other sites

@lordmonkus & @Zombeaver I think you guys are not quite reading these posts correctly.

I looked at openemu, it does look like a Retroarch frontend. 

If in the future Launchbox runs out of Frontend features to add it may be worth incorporating stuff similar to OpenEmu even if only for the big multi platform emulators like retroarch and MAME. Maybe Jason could do it better than they do

Edited by Thatman84
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...