Jump to content

Development Updates


johnparker007

Recommended Posts

Quick tech update - a lot of research still going on here with this video LOD idea to allow having many video games running onscreen at once, stretching off into the distance in large open rooms etc.  Been hitting some blocks here and there, but I have managed to get 144 screens running 60FPS MAME (attract perfect loop videos via the new video lods), including performing seeks 😎

 

  • Like 7
  • Awesome 1

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

Another tech update on the video LODs R&D :) 

Here they can be seen sort of working - so they are using the blurrier videos as they get further away, a bunch of bugs and issues to resolve yet though, and more tests to do... but looking like something that might work!

A bunch of fudged numbers that need tuning, plus some bugs, and stutter around screen edges when things come into view, also, needs pre-warming, so this will probably require a good amount of RAM for lots of different videos.

Also quite a bit of video storage per game with this approach, probably something like 8MB-20MB per game... but if I can make it work, I think it'd be worth it for the effect.

  • Like 5
  • Awesome 1

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

Many Vulcan Venture attracts in large arcade environment:

A bit of stutter that I hope is due to running in the editor... can't make a build until my PC has run many hours of transcoding to convert the vids.

Potential showstoppers still lurking that I'm aware of:

- the videos processed in this way may end up larger than expected, hoping around a very rough guess of around 400MB for the 64 initial video games.

- there is some pre-warming time required per machine, I am unsure how long this will be (it will happen at the end of the current loading process, I believe I can automate it).  If it's crazy long like 5 minutes+ that's a bit of a showstopper, as this is no longer GU accelerated for technical reasons, so it hammers the CPU.

- it's stuttery in an actual build.

I wouldn't be surprised if this is still an early iteration of the process, to try get it where it needs to be :) 

Edited by johnparker007
  • Like 6
  • Awesome 1

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

Potential showstopper 'it's stuttery in an actual build.' -  this is only one attract, but it does run very smoothly in build doing the large room stress test... fingers crossed this will translate to 64 different games... :) 

Other changes worked out, with the new planned pipeline, quality will be sharper than previous demo, and hopefully will come in around half the size (so ~250MB for 64 game ~1 minute attract loops).

Quick hack test - smooth running in build, close up videos better quality


Bear in mind this is a stress test, in normal arcades (that don't have 150-200 games visible on screen at once), it should be much less demanding... GPU decoding doesn't seem to be the best option at this time, but CPU decoding seems 'manageable'.

Edited by johnparker007
  • Like 4

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

Quite an achievement to get that many videos playing onscreen at once, especially in h264! I still have nightmares about that format back when I was an edit technician, double-digit seek times were not uncommon in very large files, even on top hardware...

Out of interest, what encoding settings are you using?

If you haven't tried it already, disabling b-pyramid will help get the size of your decoded picture buffer down, you might want to check the maximum reference count as well, a higher count will give you much better compression on videos with lots of flat shading (i.e. animation) but the CPU has to go searching multiple frames when decoding.

Perhaps, have a play around with the deblocking filter, it's normally quite a small CPU hit but if you're decoding hundreds of videos simultaneously that can add up.

It's been a long time since I did any work with encoding/decoding, so I'm probably re-stating much of the obvious here, anyway, your progress is very impressive aesthetically and technically, can't wait to see how this progresses 😀

  • Like 3
Link to comment
Share on other sites

1 hour ago, Cranium said:

Quite an achievement to get that many videos playing onscreen at once, especially in h264! I still have nightmares about that format back when I was an edit technician, double-digit seek times were not uncommon in very large files, even on top hardware...

Out of interest, what encoding settings are you using?

If you haven't tried it already, disabling b-pyramid will help get the size of your decoded picture buffer down, you might want to check the maximum reference count as well, a higher count will give you much better compression on videos with lots of flat shading (i.e. animation) but the CPU has to go searching multiple frames when decoding.

Perhaps, have a play around with the deblocking filter, it's normally quite a small CPU hit but if you're decoding hundreds of videos simultaneously that can add up.

It's been a long time since I did any work with encoding/decoding, so I'm probably re-stating much of the obvious here, anyway, your progress is very impressive aesthetically and technically, can't wait to see how this progresses 😀

Hiya :)  Thanks for those detailed suggestions, sounds like you know your stuff man! 

Ok so in the end, I am not actually using GPU-accelerated h264;

"double-digit seek times were not uncommon in very large files, even on top hardware"

I found the only really way to effectively combat this using h264 on GPU was to go for forced keyframes, which of course then made the file size larger, as really they want to be on scene changes... I got it working 'ok', but once I started scaling further up (more screens) it was still breaking down.

So, then I did some tests with VP8 (google's open source version of h264) - and I don't know what they did differently in their implementation, but it seeks much faster (without needing to force keyframes)!  Which is amazing, as that's what I need for the technique I'm using to get all those videos running.  And with some less intense quality settings (like shown in the most recent video above), I am hoping to get the attracts for the 64 initial games down to around 200-250MBish.

So while h264 is a great codec, google's VP8 seems to be a clear winner of the two in terms of seek times, whilst also being able to have a smaller file, due to no keyframe-forcing needed for fast seeking once cached.

It's generally down to h264, h265 (sort of) or VP8, as I'm using the Unity game engine to make this in, and it has best support currently for h264 and VP8.  h265 is even worse for seeking, due to even more temporal frame stuff (costs more cycles to decode a seek point).  At some point in the distant future when it's all working well on PC, there may other platforms supported and hopefully the same VP8 decoding seek speed would be present there... though with the copyright issues surrounding like, everything in Arcade Sim, I wouldn't be able to put it on PS5/Xbox/iOS, so it'll probably be Mac/Linux/Android (if it seems worthwhile in the future).

How I am getting all those videos running at once, is by creating the original arcade resolution video, for when you are close.  Then as you move further away from the videogame screen, it drops to a half-resolution video (and again two more times).  So I background seek the next resolution down, and once I can see it's successfully decoded a frame, I stop the current video, and switch to rendering the half resolution video.  It's barely noticeable (though I haven't tuned the crossover distance thresholds yet).  There are more tricks I can do such as blending between the two over a threshold distance, to really get the crossovers invisible, but that would cost a little more CPU overall.  A 'nice to have' setting for later.

Still not counting my chickens though, I may hit some other bottleneck once I've further developed the new pipeline, and got the other games in a stress test scene - fingers crossed though! :) 
 

Edited by johnparker007
  • Like 6
  • Awesome 1
  • Confused 1

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

@johnparker007 Loving the way your arcade is progressing... I had an idea!

so far you have:

🍓 Fruit machines in MFME,

👾 Arcade machines in MAME,

so how about...

📌🎱 Pinball machines in Visual Pinball ?

I dare say only top spec PC's could run all that, mind - but would'nt that be awesome!

I'd deffo need a new PC... I run MFME on the newest PC i have which is a 2007 Dell XPS 420 8Gb Ram, Q6600 so yeah.. i best do some overtime at work and get saving!

Cheers.

Gary

🍒🍒🍒

  • Like 1
Link to comment
Share on other sites

1 hour ago, johnparker007 said:

Hiya :)  Thanks for those detailed suggestions, sounds like you know your stuff man! 

Ok so in the end, I am not actually using GPU-accelerated h264;

"double-digit seek times were not uncommon in very large files, even on top hardware"

I found the only really way to effectively combat this using h264 on GPU was to go for forced keyframes, which of course then made the file size larger, as really they want to be on scene changes... I got it working 'ok', but once I started scaling further up (more screens) it was still breaking down.

So, then I did some tests with VP8 (google's open source version of h264) - and I don't know what they did differently in their implementation, but it seeks much faster (without needing to force keyframes)!  Which is amazing, as that's what I need for the technique I'm using to get all those videos running.  And with some less intense quality settings (like shown in the most recent video above), I am hoping to get the attracts for the 64 initial games down to around 200-250MBish.

So while h264 is a great codec, google's VP8 seems to be a clear winner of the two in terms of seek times, whilst also being able to have a smaller file, due to no keyframe-forcing needed for fast seeking once cached.

It's generally down to h264, h265 (sort of) or VP8, as I'm using the Unity game engine to make this in, and it has best support currently for h264 and VP8.  h265 is even worse for seeking, due to even more temporal frame stuff (costs more cycles to decode a seek point).  At some point in the distant future when it's all working well on PC, there may other platforms supported and hopefully the same VP8 decoding seek speed would be present there... though with the copyright issues surrounding like, everything in Arcade Sim, I wouldn't be able to put it on PS5/Xbox/iOS, so it'll probably be Mac/Linux/Android (if it seems worthwhile in the future).

How I am getting all those videos running at once, is by creating the original arcade resolution video, for when you are close.  Then as you move further away from the videogame screen, it drops to a half-resolution video (and again two more times).  So I background seek the next resolution down, and once I can see it's successfully decoded a frame, I stop the current video, and switch to rendering the half resolution video.  It's barely noticeable (though I haven't tuned the crossover distance thresholds yet).  There are more tricks I can do such as blending between the two over a threshold distance, to really get the crossovers invisible, but that would cost a little more CPU overall.  A 'nice to have' setting for later.

Still not counting my chickens though, I may hit some other bottleneck once I've further developed the new pipeline, and got the other games in a stress test scene - fingers crossed though! :) 
 

Before I got into psychology, I worked in television, so I was immersed in codecs and their inner workings. Having been out of that game for a few years I'm definitely getting rusty though 🙂

It sounds like you've got it working much better though, and thank goodness - there was something really rather mesmerising about seeing all of those flickering attract screens peeling off into the distance.

I couldn't say for sure, but I suspect your seek-times have massively improved, in part because of their strict frame referencing, and golden frames (caching for keyframes). Have you figured out why it's running so slow on the GPU? I suspect that's probably down to the decoder implementation in the hardware, perhaps you could utilise that for the very low-res videos playing in the distance, if CPU use becomes an issue?

I think you mentioned it in an earlier post but have you had any idea about sound yet? I've been working on procedural arcade ambience generator that uses the sounds from the machines like instruments to create procedural background audio depending on which 'zone' you're in (and what machines are nearby and active).

It's amazing to see new life being breathed into emulation, looking forward to seeing more updates 🥳 

  • Like 2
Link to comment
Share on other sites

1 hour ago, MPU_FIVE said:

@johnparker007 Loving the way your arcade is progressing... I had an idea!

so far you have:

🍓 Fruit machines in MFME,

👾 Arcade machines in MAME,

so how about...

📌🎱 Pinball machines in Visual Pinball ?

I dare say only top spec PC's could run all that, mind - but would'nt that be awesome!

I'd deffo need a new PC... I run MFME on the newest PC i have which is a 2007 Dell XPS 420 8Gb Ram, Q6600 so yeah.. i best do some overtime at work and get saving!

Cheers.

Gary

🍒🍒🍒

Pinball is planned for (longterm, many other things to work on first, plus VPE is still in very early dev itself) :) ...using the upcoming VPE project: 

 

52 minutes ago, Cranium said:

Before I got into psychology, I worked in television, so I was immersed in codecs and their inner workings. Having been out of that game for a few years I'm definitely getting rusty though 🙂

It sounds like you've got it working much better though, and thank goodness - there was something really rather mesmerising about seeing all of those flickering attract screens peeling off into the distance.

I couldn't say for sure, but I suspect your seek-times have massively improved, in part because of their strict frame referencing, and golden frames (caching for keyframes). Have you figured out why it's running so slow on the GPU? I suspect that's probably down to the decoder implementation in the hardware, perhaps you could utilise that for the very low-res videos playing in the distance, if CPU use becomes an issue?

I think you mentioned it in an earlier post but have you had any idea about sound yet? I've been working on procedural arcade ambience generator that uses the sounds from the machines like instruments to create procedural background audio depending on which 'zone' you're in (and what machines are nearby and active).

It's amazing to see new life being breathed into emulation, looking forward to seeing more updates 🥳 

It's not running too slow on the GPU in terms of playback, just the seek times... I already have it set up so I can swap different 'video LODs' to use different codecs easily later (i.e. like you say, it may be that I an use GPU for distance LODs, or even start a distant LOD on CPU, while GPU syncs in the background on same LOD then swaps over)... since GPUs will keep getting stronger in time (with the parallel architecture), while CPUs not so much.  So then offloading some work to the GPU may be a thing I implement, but it's all fine tuning for later... and of course provided I don't hit any unsolvable showstoppers (I don't think this technique has ever been done before, so there could be something lurking when I scale up after the new conversion pipeline stuff is done).

For the sounds, yes there is a plan very much like that - so for the attract 'perfect loops' I also have the audio, so each will be compressed as mono, and then I'll simply use the Unity engine's 3d sound system and then add a few tweaks of my own.  So in theory if someone has surround sound speakers, when Outrun is behind them, the Outrun sound will mainly come from the rear speakers (and get quieter as they walk away from it, while machines they are approaching will get louder).  The sounds should be in sync with the attract videos, each game will have a code-based clock that I'll be ensuring its own audio/video track stay sync to (thanks to fast seeking now seemingly working).  I was initially looking at 28 sound channels allocated to mono attracts, and then that may have a setting to be adjustable (so you could hear >28 machines around you at once, if your PC is up to it), I will have to see what the deal is with hardware vs software mixing, CPU hit etc.  

Plenty of work to do, but hopefully fun times ahead! :) 

Edited by johnparker007
  • Like 10
  • Awesome 1

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

More work on the video LODs - new pipeline creating these ones.  As all these generated perfect loop lods are matching lengths, it's no longer resetting when videos go off-screen, now each keeps internal clock to tie video to (in prep for syncing with the audio).  They're all started with a completely random time in this test.

 

  • Like 6
  • Awesome 3

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

With some manual work, now have a rough test of unique attracts per machine, all using the new VLOD system - seems to be holding up well :) (I had a concern it would break down and stutter with different video on each machine)

 

  • Like 7
  • Awesome 2

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

2 hours ago, nails said:

this in credible work - thank you!

it did make me that (regarding to your 140+ screens) that will we really have that many running?

 

i can almost feel the button thrashing of track and field already!

 

I've done so many screens as this is a 'stress test'.  When making these custom rendering solutions, the best way to see if it'll be 'fast enough' (so a medium spec PC won't blow up trying to run it!), is often to overload it, and see where the performance bottlenecks are.

Fortunately - this 'vlod' approach does now seem to be holding up well, and looking ok (still needs some tuning to improve blurry screens at certain distances).  It does use the CPU instead of GPU, but apart from that, it's finally working how I want :)  I ran it on my lower end PC which has an older weak 3 core AMD CPU - and it still just about maintained 60FPS during the test.

Next up... I can hear the attract sounds and music calling me to implement... ;) 


P.S. The Arcade Simulator Corporation takes no responsibility for any keyboards broken playing Track & Field 😛 

Edited by johnparker007
  • Like 3

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

only `slightly` off-topic, but have you seen the demos of unreal engine 5? i guess their show case is that a `home computer` made the CGI effects of the person in the back seat of the car with neo and trinity. 100% computer generated person who was never there.

now i can see every machine ever created one side, and every video game and pinball table the other.

quite an attract mode ! 

  • Like 1
Link to comment
Share on other sites

7 hours ago, nails said:

only `slightly` off-topic, but have you seen the demos of unreal engine 5? i guess their show case is that a `home computer` made the CGI effects of the person in the back seat of the car with neo and trinity. 100% computer generated person who was never there.

now i can see every machine ever created one side, and every video game and pinball table the other.

quite an attract mode ! 

 

7 hours ago, serene02 said:

I’ve seen that demo.  Parts are interactive I believe. It is a scripted experience a real open world game wouldn’t run as nice I don’t think.  Still, stunning to watch.

J

Yeah Unreal can do some pretty neat stuff, as @serene02 says though, it's a just a scripted demo.  AS will be staying Unity for the foreseeable future, but it wouldn't really make that much difference to the visuals either way at this stage if it was on the other one...

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

 I've done a very initial test of a sound system - definitely needs more work and tuning, but certainly gives you an hint of that classic arcade cacophony ;)   There is some minor distortion, desync (to video), wasting half the channels on attracts that are pure silence, part-manually built, iffy fall off curve, the list goes on!  Plenty to do, should hopefully be able to get it all sounding good with more work though.

You'll want speakers on or headphones in to check this early buggy audio demo out :)

EDIT- removed video, sounds is worse on playback than when I recorded it - need to figure the basic distortion issue out

 

Edited by johnparker007

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

Audio test :)  It's overall far too quiet, desync, and other problems, but much less distortion issues, needs more work...

 

  • Like 4
  • Awesome 3

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

:wow: Awesome work @johnparker007, reminds me of the mint arcade in Rhyl back in the day, having all these games in @Spidy21982 cabinet will look so :cool2:. Have one question will I have to have Mame to play these ?. Never Dabbled with it is it complicated to set up ?.oops that`s two questions 🤣.I play most of these games on a super console x which has everything set up from the get go, I also have a bubble bobble themed 2ply button deck with pandora box dx which my wife bought me for Christmas from a company called bitcade it has just over 3000 games she paid £350, more money than sense 🤣.She must really love me 😍.

  • Like 1
Link to comment
Share on other sites

2 hours ago, Ginge said:

:wow: Awesome work @johnparker007, reminds me of the mint arcade in Rhyl back in the day, having all these games in @Spidy21982 cabinet will look so :cool2:. Have one question will I have to have Mame to play these ?. Never Dabbled with it is it complicated to set up ?.oops that`s two questions 🤣.I play most of these games on a super console x which has everything set up from the get go, I also have a bubble bobble themed 2ply button deck with pandora box dx which my wife bought me for Christmas from a company called bitcade it has just over 3000 games she paid £350, more money than sense 🤣.She must really love me 😍.

Thanks man :)  And yes, they will ultimately be going in @Spidy21982's Goliath cab, they should look great :) 

The plan is that you'll not need to set anything up, they'll just work the same as the fruit machines.  Initially keyboard controls, then at some point later support for joysticks etc.
 

51 minutes ago, headcook said:

Hi all

 

Just got back with my touch screen monitor off ebay.

Fired up the arcade sim in portrait mode but nothing moves video wise. Still takes coins etc and plays but I can't see it.

Any ideas pls?

 

Thanks

James

Hmm... if I ask a couple of questions please:

- what resolution is the touch screen monitor running at

- if you put the monitor back into landscape under Windows, then relaunch Arcade Sim, does it then definitely work ok?

- 'nothing moves video wise' - do you mean that you can walk around fine, just that the machine that you are playing has no lamps flashing (but all the others do)?

- is the touch screen portrait monitor your primary monitor?

Cheers :) Hopefully we can troubleshoot the issue, as it can work on my admittedly limited test of one single computer lol ;) 

  • Like 1

Arcade Simulator
Pre-alpha installer: http://arcadesimulator.net
Known Issues: https://tinyurl.com/yz4uom2e
Donation info: https://tinyurl.com/yzvgl4xo

Fruit Machine Database 
Initial google sheets WIP: https://tinyurl.com/2c5znxzz

Link to comment
Share on other sites

×
×
  • Create New...