Jump to content
LaunchBox Community Forums

Lagging Game/Platform Cycling in BigBox


Guwanges

Recommended Posts

OK, first, I know this is an issue that's been touched upon. I've read many of the replies to these concerns.

Most of the replies are in the form of "trim down your image cache" or "upgrade your system."

 

I am very pleased with BigBox, so I'm commenting on this because I want to see it get better and think it should be better in this regard for the several reasons.

A) Let's recall why people are using BigBox. It's mostly to catalogue and launch old emulated games. Most of these games can be emulated on hardware from a couple of decades ago (as I did on my machines in the early 2000's).
B) It's reasonable to assume most people choose old systems, hand-me-downs and so forth to run these old games, reasoning that they don't need a powerful/expensive computer which will be costly to maintain.
C) There should be ways to optimize image display considering that similar cataloguing apps and, indeed, websites running in browsers, function perfectly fine on far less powerful systems such as my old iPad mini.

Of course I don't know how BigBox was developed under the hood, so by definition I'm speaking without knowing. However, I'm also a developer myself and understand these types of bottlenecks always have some solution which doesn't involve absurd amounts of compression.

One big optimization I feel is obvious is delaying populating game data (images and text) until the wheel stops cycling for a set interval (.5 seconds, perhaps).
As it stands, BigBox is constantly trying to load selections... even when I haven't stopped long enough to imply a selection was made.

This slows things down considerably.

Another is to use predictive caching so BigBox pre-loads only the most likely data to be called next (EG: the adjacent games to your current position).

Another is asynchronous loading using multiple cores, removing a big cpu bottleneck.

 

My point isn't to tell the dev how to do their job or even how exactly to solve the problem but rather to dig a bit deeper into these optimizations which I'm sure are still there to be made.

My development philosophy is to develop for the lowest most common target group; the hardware specs which are at the lowest end of the most common setup.

I think it's safe to say this would be somewhere in the realm of a dual core computer that's about 8 years old.

Being that that's less than the power of my current machine and BigBox is struggling to keep up, I think more work towards supporting this lower end needs to be done.

 

EDIT: I should probably mention my setup specs:

CPU: AMD FX6300
GPU: Dual HD6150
RAM: 8GB
HDD: 120GB Sata SSD
 

Edited by Guwanges
Link to comment
Share on other sites

I won't get into a debate about this stuff here but all I can say is that I have run BigBox on less than ideal hardware with tweaks mentioned in the Performance thread. I won't be repeating them here but setting image quality to medium had a huge impact on speed and doesn't look any worse than higher quality images.

25 minutes ago, Guwanges said:

B) It's reasonable to assume most people choose old systems, hand-me-downs and so forth to run these old games, reasoning that they don't need a powerful/expensive computer which will be costly to maintain.

This is a myth perpetuated by uninformed click bait internet articles. Yes you can run emulators on old low end hardware but the quality of it is trash. Now I am in no way saying that people need high end powerful PCs to do some emulation but if your CPU cannot handle something like Higan or Mednafen Saturn you really should look into a better PC and that PC will be more than fast enough to run BigBox, especially when you throw a (by todays standards) low end graphics card, say a GTX 1050.

I always tell people when they ask what hardware they should buy that they should get the best they are willing to throw money into. A more powerful CPU will never go to waste in emulation, especially as you move up the food chain to more modern and accurate emulators. That extra CPU will make your life so much better and you can use that extra power in Retroarch to reduce input lag which in turn makes your gaming experience that much more enjoyable.

Just throwing a 10 year old junker PC at a TV and calling it a day is just asking for a bad experience. This is what happens when "hardware purists" try out crap like this or a RaspberryPi and then turn around and shit on emulation and say it's "awful" and "laggy".

As for BigBox, we all know it's not the most performance friendly out there but it offers way more features than any other frontend out there and is constantly updated at an extremely rapid pace while others remain stagnant and for all appearances dead except for maybe a small update once a year.

Edit:
I should also add that performance is always something Jason looks into improving where he can see gains to be made, it isn't something that is just ignored.

Link to comment
Share on other sites

It's kind of funny what you said about the myth of not needing a beefy system.

It's funny because it's the reason I made the post to begin with.

I was simply blown away at how I could run all of my cores for all of my games at max, no frame drops, vsynced and perfectly smooth.

On top of that, I've eliminated all lag by implementing runahead along with GPU sync, and even (very costly) frame delay.

Honestly, my 7 year old budget system is performing incredibly.

It's the cycling of a few image assets choking Bigbox in contrast to this performance that made the matter stand out to me.


I should point out that all of my cores that I run are for games previous to 2002.

PSX, Saturn, and even some Wii games run perfectly fine but not with runahead implemented. Fortunately for me that's not much of a concern as these systems don't interest me as much.

 

I saw your previous posts on the matter and honestly, though it was extremely helpful and thank you for that, it just highlights how absurd the situation is to me.

I do appreciate your input, however, and I will try running the images to medium quality again to see if it makes a significant difference at little or no cost (but I'm gaming on 43" TV so, I'm guessing not).

 

Thanks again.

Edited by Guwanges
Link to comment
Share on other sites

You said you have dual HD6150 graphics cards, do you mean 6450 ? I googled HD6150 and found nothing but 6450s. If they 6450s those are weak as hell with 1 gig of DDR3 vram and BigBox does benefit from a decent video card (one with ddr5 vram). Also BigBox does not take advantage of dual graphics cards as far as I am aware of, software has to be written to take advantage of it.

1 hour ago, Guwanges said:

On top of that, I've eliminated all lag by implementing runahead along with GPU sync, and even (very costly) frame delay.

How high can you set your frame delay on an AMD 6300 CPU ? On my 8350 I was not able to go very high on the good cores, at best I was able to manage 5 or 6 before encountering audio issues.

Link to comment
Share on other sites

It's an HD6410D + HD6450

Total performance is probably not much better than a single GTX460.

I'm able to set Frame delay to 6 by default for almost every game. I came across one game that buckled: Espgaluda.

So I set it to 4 as default to cover my bases (and, honestly, 1 or 2ms doesn't produce benefit as much as the cost demands).

And actually I mixed up my systems when it comes to CPU. Turns out it's an ever older CPU. A4-3400

So, you can imagine how happy I am with finally getting a lagless setup that can play all of my games on this discarded little PC. Super impressed with Retroarch!

Link to comment
Share on other sites

15 minutes ago, Guwanges said:

It's an HD6410D + HD6450

Yeah both cards have ddr3 vram which is old and very slow, this is the bottle neck and source of your performance issues in BigBox.

18 minutes ago, Guwanges said:

I'm able to set Frame delay to 6 by default for almost every game. I came across one game that buckled: Espgaluda.

So I set it to 4 as default to cover my bases (and, honestly, 1 or 2ms doesn't produce benefit as much as the cost demands).

That's a very low frame delay, you aren't removing a lot of input lag with that, a good modern Intel or AMD Ryzen will get you much higher. On my Ryzen 2700X I can go as high as 12-14 on certain cores.

Link to comment
Share on other sites

Agreed that removing 4ms isn't very much (maybe it compensates for the USB controller lag).

However, the differential on the system you're quoting is 8-10ms, which is just over half a frame. And the cost is probably 1000% of my system cost.

I think the lag reduction goes like this in terms of value:

1) Runahead. At minimum 16ms. In some cases 50ms+. Very cheap.
2) GPU Sync, 3 frames. This for me almost removes vsync induced lag. Probably another 16ms-32ms on average. Also cheap.
3) Frame delay 15. Can remove no greater than 15ms. Expensive. And useful only if there is further lag at the hardware level to be removed that (1) and (2) didn't reduce to 0ms.


Come to think of it, this poses an interesting question whether Frame delay can compensate for vsync lag. If so, then it certainly can be made more useful. As it stands I don't notice its impact. I can detect as little as 1 frame (16ms) of lag quite easily, but less than that is very hard to notice.

 

Edited by Guwanges
Link to comment
Share on other sites

12 minutes ago, Guwanges said:

2) GPU Sync, 3 frames. This for me almost removes vsync induced lag. Probably another 16ms-32ms on average. Also cheap.

Are you talking about Hard GPU Sync Frames ? If so this should be set to 0 for minimal input lag, setting it higher induces more lag for performance gains.

Link to comment
Share on other sites

Yeah, thought you'd mention that.

I know that's what everyone says, but I am absolutely certain it's the reverse for my setup.

I've experimented a lot with this and it's definitive that the higher setting reduces lag for me.
 

I've not seen a technical description of what this does exactly so it's possible people are just floating around the same bad information on this.

By the way, just tested reducing image quality to medium and it does seem to make things load snappier. And I was a bit surprised to see the visual hit wasn't that bad at all. Thanks for the tip!

Link to comment
Share on other sites

screenshot_70.thumb.jpg.b6082698101c9b596f12a7fc8c5b608b.jpgThat means it's buffering frames ahead of time which means it's adding input lag.

https://forums.libretro.com/t/question-about-gpu-hard-sync/567/3

There are many threads on the Retroarch website talking about this and everyone confirms that 0 is the best and everything else is adding more lag while boosting performance. I Have experienced this myself with the Beetle (Mednafen) Saturn core on my old 8350. That CPU rides the fine line on performance for that core, with Hard GPU Sync Frames 0 I will get some audio crackle, setting it to 1 removes the crackle.

13 minutes ago, Guwanges said:

By the way, just tested reducing image quality to medium and it does seem to make things load snappier. And I was a bit surprised to see the visual hit wasn't that bad at all. Thanks for the tip!

Good to hear, if you can find an old 1 gig ddr5 vram video card to throw in your system (preferably Nvidia) that will help performance in BigBox. I have an old 1 gig Radeon with ddr5 vram in my ancient toaster I mentioned in the performance thread and it really helps.

Link to comment
Share on other sites

I decided to do a frame-by-frame analysis test of GPU Sync 3 Frames vs GPU Sync 0 Frames.

I was hoping it would be definitive by eliminating subjective experience, but unfortunately I could only record at 30FPS and the results were not conclusive.


However, the analysis results (admittedly crude) between 3  vs 0 frame in this test were pretty much exactly the same.

My test case was ESPrade which has a notorious 3 frames of PCB lag.

 

I was happy to verify that I eliminated that lag entirely and got next frame results, even with Vsync enabled.

Now, of course it's a 30FPS test and so it's possible that there's still 1 frame of lag that I'm not noticing, but since the results were consistent against many button presses, I think this is not likely. Probably the average lag was something like 8ms total.

 

Subjectively, I still feel the difference between 0 frames and 3 frames is much more favourable when set at 3 frames.

I notice this mostly with joystick movements in shoot-em-ups. Blazing Star in particular is a noticeable difference.

I've attuned my sensitivity to movement in these games over decades, so I do trust my experience. It doesn't appear subtle to me, it's around 1 frame of (perceived) lag.

I notice this on both of my emulation systems, so it's unlikely the results are completely setup specific.

 

My theory is either GPU sync is poorly documented (indeed, I see the same lines being parroted about setting to 0 frames, but never traces back to an official documented source), or something about setting to 0 adds variable fluctuations in the results. Just like how the brain can lag compensate, it can also probably produce the perception of increased lag if it doesn't have a steady source. This would make sense as our brain's lag compensation (along with its other pattern based systems) are heavily dependent on consistent patterns.

Edited by Guwanges
Link to comment
Share on other sites

Oh the ddr3 vram graphics card is most definitely the bottleneck when it comes to BigBox, that is very old and slow when modern cards have moved on to ddr5.

I'm not interested in debating your theories on what can be read and inferred in RA itself from it's description of what Hard GPU Sync Frames does:screenshot_70.thumb.jpg.511e050b29c5d0dfde14c57e886fb313.jpgThis reads to me as the CPU runs ahead and calculates frames holding them in buffer, this means there has to be more input lag.

I have done manual input lag testing, I don't have the equipment to do scientific to do what Brunnis has done. I have gotten my input lag as low as it can be on a PC with a software based emulator without using Run Ahead, I view that as cheating but that's just my personal opinion on that.240p-MD-Genesis-1.14-170601-013815.thumb.png.009fa8565ce61002478a760276ac1de6.pngAlso since I use a G-Sync monitor the Frame Delay setting does nothing for me.

Link to comment
Share on other sites

Just a quick update on the original problem of laggy system/game cycling in BigBox.

I downloaded the update yesterday and - I don't know if someone was listening to my concerns or it was just happenstance - but everything has been fixed!

The wheel/images behave far smoother. Almost flawless. Certainly on par with what I would expect from my aging system.


I knew there were performance gains still to be had. Kudos to the developer for finding them and double kudos for (it seems) listening.

Link to comment
Share on other sites

I noticed this as well. I spend a lot of time in bigbox, and for a long time there would quite consistently, say every 15 seconds, be just the slightest moment where my controller would become unresponsive. It's hard to describe, but it would be like click right on stick (bigbox moves) click right (bigbox moves) click right (nothing) sometimes maybe two consecutive clicks would not read in bigbox. And I'm not talking about fast clicking.

However, I didn't read the changelog in the last update, but this seems to have been fixed completely now. It's quite a small thing that makes a huge difference to the experience.

For the record, this problem would occur in my small launchbox build, I think about 700 games total, I turned of all transitions and use medium box art CriticalCids theme, put launchbox on a dedicated SSD, and my computer specs are:

i5-3570k 3.40 ghz

with a GTX 1060 6gigsram

with 16 gigs of total ram. 

It did seem like an optimization issue, but it does seem to be ironed out now. :D

 

 

 

 

Edited by fromlostdays
Link to comment
Share on other sites

@fromlostdays Good to hear! The guy who replied before, though helpful, shrugged it off as mainly a problem with my system specs. I knew it didn't add up.

And, from the looks of your system, you'd think it should have performed perfectly given it's at least 4 times more powerful than mine.

I totally know what you were experiencing. It got to the point where I was very deliberate with every tap on the joystick, or used the mapped page-up/page-down buttons.

I still get a few hitches here and there. And sometimes I end up with the wrong box art left over on whatever I selected. But it's miles ahead of what I was experiencing before.

Edited by Guwanges
Link to comment
Share on other sites

1 hour ago, Guwanges said:

It got to the point where I was very deliberate with every tap on the joystick, or used the mapped page-up/page-down button

Same. And I couldn't find any trigger that would cause it. For a while I tried to tie it down to bigbox maybe loading a bigger video size but it would be different games every scroll. Maybe some of it was your system, or exacerbated by it, because I just spent 5 minutes scrolling through all my platforms at various speeds and it didn't happen once. I can also fast scroll through all the games without it hitching at all. Of course, only time will really tell. You can try turning of all the transitions as well in Bigbox. I've actually come to think it looks better, cleaner without them. It might solve that box art problem you describe. 

At any rate, this just keeps getting better for us controller/couch junkies!

   

Edited by fromlostdays
Link to comment
Share on other sites

2 hours ago, Guwanges said:

The guy who replied before, though helpful, shrugged it off as mainly a problem with my system specs.

No, I did not shrug it off as a problem with your system specs but it is very tough to troubleshoot these kinds of issues when we have no idea what is actually happening on your computer, we have no clue what other software you may have running in the background that may be interfering or causing conflicts. I will stand by my statement that your graphics card is a huge bottleneck in your system when BigBox does make use of the graphics card.

We can only say that these sorts of issues are not happening for the vast majority of people who use LB/BB so if it was the software itself then there would be far more people encountering these kinds of issues.

Now it is possible that the latest update which included an updated VLC solved the problem for you, but that is only a guess. VLC has caused some issues in the past for some users but not for other (like myself) which is why the Windows Media Player is also an option.

Link to comment
Share on other sites

1 hour ago, Lordmonkus said:

No, I did not shrug it off as a problem with your system specs but it is very tough to troubleshoot these kinds of issues when we have no idea what is actually happening on your computer...

We can only say that these sorts of issues are not happening for the vast majority of people who use LB/BB...

Now it is possible that the latest update which included an updated VLC solved the problem for you...

The system is bare bones. Disabled almost everything on startup other than what's required. No antivirus. 0-2% idle CPU usage. Nothing's interfering.

I don't know what the majority of people are experiencing because you'd have to poll a considerable amount of users to get a sample on that. Lack of complaints isn't evidence of absence. To me it's a big deal and even I almost decided not to bother with signing up on this forum and mentioning it.

I don't use any videos, so VLC is of no consequence.

Otherwise my setup is pretty spartan. Maybe 100 games spread across 8 systems or so. Minimal image's downloaded/cached. Low graphical settings.

Again, most of it can't be a system issue as I'm running my emulated games and steam games no problem. No throttling issues of any kind.

Also, the user above had a GTX1060 and reported the same issue, so.

And I decided to install the update when "wheel optimzation" (or some such note) was mentioned in the change log.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...