Jump to content

OASIS (working title)


johnparker007
 Share

Recommended Posts

I've not been up to doing much at all in the way of coding recently, hopefully slowly on the mend though :)  And as such, I've been starting planning the next step in the 'Arcade Simulator' journey...

Taking Arcade Simulator as our proof of concept (that we can run a large multiplayer arcade in realtime on a consumer PC with fruit machines and video games) - I think the plan should now be to build this into a fully open source project (hosted on github), that will be broken up into sub-projects.

Just some initial thoughts on how this will be structured:
image.thumb.png.86a4332e3b5ab364ed5af970926d2485.png

This will be a large slow project!  But at least we have now seen from Arcade Simulator that it is all actually possible, I honestly didn't know currents PCs were yet fast enough to run all those machines, back when I started it all :)  

As there will be separation between the 'apps', this will hopefully make it a bit more accessible for coders, for instance someone might be keen to work on the machine library app, but not be comfortable with 3d game coding, so that now won't be an issue.

Also, this new project will be taking on the hard issues, such as people not being able to convert a fruit machine layout of their own from MFME format to something that can ultimately run in the arcade.  I will still be using the existing 'MFME window scraping' technique for the extractor, as it does work, but I will add in various safeguards to try make it as safe as possible, things like:

- scrape a layout a little slower
- if a human generated mouse/keyboard input is detected, abort scraping
- continuous 'window focus' watchdog strategies to detect desyncing during scraping
- a warning popup to be ok'd that shows at start of every extraction; "This is experimental, while safeguards have been implemented, there is the potential for data loss, use at your own risk!"


It will all take a long time to set all this up, and port the existing Arcade Sim systems into OASIS (especially assets that are licenced on a 'per seat' basis - in some cases I may be able to work with those asset creators on a solution to allow for use in open source, otherwise we need to roll our own)... but, the idea is that the project will ultimately no longer hinge on me doing it all!  As now we have the working proof of concept in Arcade Sim, it makes most sense long term to build a future-proof platform - so if I were to meet an untimely demise in the future (RIP Chris) - the project could continue to grow and develop.

The name OASIS came from the book Ready Player One :) 

"This is the Oasis.  It's a place where the limits of reality are your own imagination.  You can do anything, go anywhere.  Like the Vacation Planet.  Surf a 50-foot monster wave in Hawaii, you can ski down the Pyramids, you can climb Mount Everest with Batman.  Check out this place.  It's a casino the size of a planet!  You can lose your money there, you can get married, you can get divorced, you can...you can go in there.  People come to the Oasis for all the things they can do, but they stay because of all the things they can be: tall, beautiful, scary, a different sex, a different species, live action, cartoon, it's all your call.  Yeah, that's me...well, that's my avatar, at least until I feel like changing it.  Except for eating, sleeping and bathroom breaks, whatever people want to do, they do it in the Oasis.  And since everyone is here, this is where we meet each other.  This is where we make friends."
- Wade Watts talking about the OASIS

Edited by johnparker007
  • Like 20
  • Awesome 3

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

Built out the basic base applications for Oasis Hub, Layout Editor, MFME Extractor, MAME Builder, using the Arcade Sim icon design approach (a bit like the Adobe Creative Suite approach to icons).  Here are the four apps with their icons on the taskbar:
image.png.70ffce3cbbec83ab6295065f9f925265.png

Started developing the Window/UI system, also added in a performance monitor, and a debugging console:


As this is open source, I am having build/adapt things from other copyright-free systems, and roll my own.  Will be continuing with the Window system, with draggable resizing, minimise/maximise/unmaximise/restore next, plus design better icons for the topright window buttons, these are placeholder...
 

  • Like 5

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

On 10/06/2023 at 16:11, spa said:

You could have just called it...

'Better than life' - Red Dwarf lol

I'd hate to get smegged over by the Inland Revenue on that one though! :4_joy:

Joking aside, looking forward to the progress of this as time goes by John; every success to you along the journey. :3_grin:

 

  • Like 1
  • Haha 1
Link to comment
Share on other sites

Hmm on reflection, while I was originally gonna go all Unity for editors and tools (for the easy cross-platform goodness)... having had a look at how involved recreating a UI like that is, I'm now thinking these will be Windows apps, built in C# and .NET, and they will have the ability to embed a Unity process renderer (such as a 3d machine renderer in the Layout Editor) within that interface.

So rather than the previous video, the interface will actually look a bit more like MFME :)  As it'll just be Windows stuff - here's an example of something I knocked up before using that:
image.thumb.png.84dc819608f2d4eefe807b26a5b881ec.png

So the UI for the tools, they will look and handle much more like the standard Windows interface (and will only run on Windows for now).

Edited by johnparker007
  • Like 5

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

47 minutes ago, spa said:

Sounds great mate, but sounds like a ton of work!

For sure, this will be a long project that I'll work on as I can.  But I think it's the best way... so once I've got the bones in so it can build 3d cabinets/layouts into some optimised form the Unity-based Arcade Simulator/Machine Simulator can load... there's lots of potential that way (I'll also of be doing support via dedicated apps in the suite for 'importing' MFME layouts, and building MAME layouts :)) ...once it's running arcades, I might get lucky and pick up a game coder or two who want to get involved which will speed things along...

On my previous UI post, I've been researching, and I now think the best solution for the non-Unity apps in the Oasis suite is an open-source UI system: https://www.avaloniaui.net/.  Allows for cross-platform in the future...

Edited by johnparker007
  • Like 4

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

On 12/06/2023 at 22:32, Altharic said:

Excellent work been trying to fly the flag for fme and I have been asking about black box in mame sadly I feel like I am being ignored :(

It'll get there, the wheels turn very slowly in MAME-land, they've got a bit stuck with that commit due to samples I believe, really crappy for code contributors like @SomeRandomGuy though :(  Haze has been saying to be more lenient on FME wrt MAME standards, but Cuavas runs such a tight ship, it can cause discouragement unfortunately...

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

Bit of a tinker with Avalonia, this is planned to be the cross-platform open source UI framework that the non-Unity Oasis apps will be built with...

 

  • Like 3

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

On 15/06/2023 at 21:32, johnparker007 said:

It'll get there, the wheels turn very slowly in MAME-land, they've got a bit stuck with that commit due to samples I believe, really crappy for code contributors like @SomeRandomGuy though :(  Haze has been saying to be more lenient on FME wrt MAME standards, but Cuavas runs such a tight ship, it can cause discouragement unfortunately...

Problem is in the case of FME it feels very almost personal take Scorpion 6 there is nothing in this driver that could possibly cause an issue yet tomorrow is its 2 month anniversary of being dumped there and left to rot.

https://github.com/mamedev/mame/pulls?page=2&q=is%3Apr+is%3Aopen

  • Sad 1
Link to comment
Share on other sites

2 minutes ago, Altharic said:

Problem is in the case of FME it feels very almost personal take Scorpion 6 there is nothing in this driver that could possibly cause an issue yet tomorrow is its 2 month anniversary of being dumped there and left to rot.

https://github.com/mamedev/mame/pulls?page=2&q=is%3Apr+is%3Aopen

It's certainly not personal, it's just that MAME is getting so big, it seems harder and harder to add or change stuff without causing a potential issue somewhere... and not enough people to code review, as ya know, Haze's SC6 initial skelly driver work should just go straight in really, he knows what he's doing... not sure what best solution will be, it may end up getting forked at some point (like PinMAME, I guess there could be a FruitMAME or SlotMAME...) at least then things could actually go in, and release exes could be built!  Far from ideal though...

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

2 hours ago, Altharic said:

Fruit machines etc used to be separate from mame then they decided to merge gambling games into mame (or in this case not)

 

https://agemame.mameworld.info/

Fruit machines are fine in MAME - lots of benefitting from improved emulation in other areas, it's just a shame how it's hard to get those commits actually into the code!

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

After looking into Avalonia UI for the Layout Editor component of Oasis, I've realised that getting the rendering of 2d/3d layouts and machines will be kinda painful and hacky, so I've fallen back to Unity... going to repurpose a different abandoned open source UI system, needs work but the bones are ok, and should be enough to get some basic tests going... here you can see the menus rendering above the 3d cubes, which render above an Oasis desktop background - this approach will work on all platforms, not limited to Windows:

(Logo is just a placeholder I grabbed from online :) )

  • Like 3

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

Further UI tests - foreground 2d layer (the large green circle in front of the 3d cubes), basic tree view of component hierarchy with some dummy data

 

  • Like 2

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

Found and changed various color code to change the cross-platform UI in development to a dark theme, looks a lot more chill for making layouts :) 

 

  • Like 5

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

  • 2 weeks later...

There's been a little more tinkering with the layout editor, video shows the beginnings of importing an 'MFME Extract' to an Oasis Layout:

 

  • Like 6

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

A little more tinkering - status bar at bottom and test of a basic zoom function:

 

  • Like 4

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

  • 2 weeks later...

@Altharic it finally got merged!  Nice one @SomeRandomGuy thanks for your awesome work on the driver :) 

https://github.com/mamedev/mame/pull/10417

  • Like 4
  • Thanks 1
  • Awesome 1

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

Well, well, well, it took a damn while, but the first part of Black Box is now officially in MAME. At some point I'll deal with the stepper reel games too, but for now it's done. Haven't posted here in a while too, and as far as my free time for fruit emulation stuff goes, I'm still somewhat busy :D. University stuff I took care of for the summer, but then came an internship right after that. Fortunately though I'm very nearly done with it and will finally have some more time available very soon.

I didn't sit idle for the last few months though, in fact I got work done on bits of MPU2 here and there as time allowed. The few Barcrest usual suspects that are dumped such as Spot Light and Rock On run, plus a couple Dutch machines too. Right now I'm dealing with this weird thing from Leisure Games. One of the Dutch games is kinda interesting - the ROM that was uploaded was called Silver Star, but it's actually Super Star, which seems to be one of Barcrest's very first MPU1/2 releases ever. There's a list of old Barcrest machines with their release dates floating around and it's the first game on that list, I was wondering the whole time what it was, but seems that mystery is now solved. Here's the flyer:

Spoiler

1337030025_SuperStar.thumb.jpg.55034db6747f771bb148c01b5bc42967.jpg

At first I thought it was also Barcrest's very first CPU-based fruity ever, but that honor seems to go to a machine called Top Twenty, which looks like this:

Spoiler

1407723570_TopTwenty.thumb.jpeg.7cfd7213bbe22ac627cd62eddf4b5f5f.jpeg

Also saw what @johnparker007's been cooking, OASIS looks promising. The whole Arcade Sim-as-a-prototype thing makes sense, starting over takes longer for sure, but doing things more properly and learning from the first time definitely helps in the long run, plus it being open source is also very nice. Excited to see the converted layouts in MAME once that day comes :), together with all the other arcade stuff too of course. Get well soon!

  • Like 5
  • Awesome 2
Link to comment
Share on other sites

16 hours ago, SomeRandomGuy said:

Well, well, well, it took a damn while, but the first part of Black Box is now officially in MAME. At some point I'll deal with the stepper reel games too, but for now it's done. Haven't posted here in a while too, and as far as my free time for fruit emulation stuff goes, I'm still somewhat busy :D. University stuff I took care of for the summer, but then came an internship right after that. Fortunately though I'm very nearly done with it and will finally have some more time available very soon.

I didn't sit idle for the last few months though, in fact I got work done on bits of MPU2 here and there as time allowed. The few Barcrest usual suspects that are dumped such as Spot Light and Rock On run, plus a couple Dutch machines too. Right now I'm dealing with this weird thing from Leisure Games. One of the Dutch games is kinda interesting - the ROM that was uploaded was called Silver Star, but it's actually Super Star, which seems to be one of Barcrest's very first MPU1/2 releases ever. There's a list of old Barcrest machines with their release dates floating around and it's the first game on that list, I was wondering the whole time what it was, but seems that mystery is now solved. Here's the flyer:

  Hide contents

1337030025_SuperStar.thumb.jpg.55034db6747f771bb148c01b5bc42967.jpg

At first I thought it was also Barcrest's very first CPU-based fruity ever, but that honor seems to go to a machine called Top Twenty, which looks like this:

  Hide contents

1407723570_TopTwenty.thumb.jpeg.7cfd7213bbe22ac627cd62eddf4b5f5f.jpeg

Also saw what @johnparker007's been cooking, OASIS looks promising. The whole Arcade Sim-as-a-prototype thing makes sense, starting over takes longer for sure, but doing things more properly and learning from the first time definitely helps in the long run, plus it being open source is also very nice. Excited to see the converted layouts in MAME once that day comes :), together with all the other arcade stuff too of course. Get well soon!

Awesome continued work on the MPU2 stuff man! :)  

  • Like 1

[ Arcade Simulator ] Pre-alpha installer: https://tinyurl.com/2kcrkprh | Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

 Share

×
×
  • Create New...