Jump to content

OASIS (working title)


johnparker007
 Share

Recommended Posts

A bit more progress, the Hierarchy window now contains groups of Components :) 
image.thumb.png.2ee5f31f255421d97ea631f2fdb57fb2.png

  • Like 3

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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

Early test of using the Inspector (it's like the Properties window in MFME).  This is a very early WIP experiment, so everything looks crap and messy, but here you can see me swapping the assignments of the left and right reel numbers around.

 

  • Like 4
  • Awesome 1

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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

More work on Inspector functionality.  Still looks a bit messy, but I'm just focusing on actual functionality at this stage while I'm feeling things out :) 

 

  • Like 4

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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 progress :)  

Swapped out the non-user friendly 'RectInt' for Position and Size:
image.png.dc6b986c18c2dd78b5c26f7f72b23550.png

Made the placeholder indicator (the blue line on top of the tab) for the 'active tab' (it's just a placeholder, will make something better looking later):
image.png.d13ad58cf92cad0fe223c3eb90c122ae.png


Currently (also seen in last couple of videos), when I press keys destined for the emulation, they are triggering even when simple typing in numbers to a field.  The plan is to implement and Active Tab, so only one of the tabs is active at a time, it'll be the last tab window you clicked into.  That way, a window only processes keyboard inputs if it's the currently active window (like how it works in actual MS Windows).  Typing 1000 into a number field should not hold the first reel and insert 3x £1 coins (or set off the coin alarm) :) 

Vid:

 

  • Like 3

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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

The blue 'global active tab' indicator now implemented and working :) 

Here's a screenshot of me typing 1000 into the Reel X Position field, and you can see it's not done the previous annoying behaviour of inserting 3x £1 coins from the the zero key presses!  So now keyboard input can be filtered to the tab with the blue marker (of which there is only ever one).image.thumb.png.97abeec7c594ef1cc80aac0b5e5808f5.png

  • Like 1

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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

Made a start on the scrolling and zooming functionality :) 

 

  • Like 2
  • Awesome 1

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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

1 hour ago, nails said:

great updates, do you have a road map of what you have planned next for this ?

There is a lot of work to do building the Layout Editor.  This will allow for importing extracted MFME layouts to be converted to native Oasis layouts (to work in 3d machines like in Arcade Sim).

The 'extraction' will be performed by the MFME Extractor, which is already somewhat done, but will be rewritten with a focus on improved robustness as it's a flakey process.

There will also be a feature to generate MAME layouts - this will mainly be used for creating/improving internal text-only layouts, that are built into the MAME.exe itself.  This will indirectly help out with getting the emulation improved in MAME.

Using the same UI framework I'm building for the Layout Editor, will be a second application that will be the Cabinet Editor.  This will allow for importing 3d models in a generic format such as .fbx, to be converted to native Oasis cabinets (again to work as part of 3d machines like in ArcadeSim, housing the Oasis layouts).

The Machine Player will allow playing these 3d machines in a single machine mode initially, and also have VR support, along with various visual effect options (like Bloom etc).

Once this is all fairly solid, I will start development of the Oasis version of Arcade Simulator (I guess you could think of that as 'Arcade Sim 2'), to allow for the Arcade Sim experience with multiple Oasis machines... and that will ultimately get things that weren't in Arcade Sim 1, such as multiplayer, VR etc.

Also there'll be lots of surrounding work, things not thought of yet etc.

The key purpose of all this is that using the tools in the Oasis suite of FME software, the community will be able to convert existing MFME layouts, build new layouts, create new 3d cabinets, and build fully integrated machines that then work in the new Arcade Simulator... all without needing to touch any programming.

The full source code is open source, hosted live here: https://github.com/johnparker007/Oasis

This probably represents years of work, but I think it's what we need to take the scene to the next level, now we've seen the proof-of-concept the original Arcade Simulator represents :) 

Edited by johnparker007
  • Like 5
  • Awesome 2

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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...

Bit under the weather again, but hopefully on the mend soon :)

So a small tech update:  the original 'MFME Extractor' Windows-only optional module of the Oasis suite, is now to become 'MFME Tools'.  This MFME Tools module will contain the components of 'Extractor' and a new component; 'Injector'.

What this means is that in addition to being able to extract MFME layouts (using the copy of MFME v20.1 on the user's system), this will also be able to export/inject a 2d rendering of an Oasis layout back to MFME. 

Effects such as the realtime lighting of the 2d cabinet I think will be possible, though there is the issue of MFME slowdown when a lot of blended lamps are drawn at once.  I'm hoping it will lead to a workflow where even as existing 2d fake-perspective layouts are extracted then imported from MFME->Oasis, the lighting can be remastered along with the cabinet... and so then a 3d rendering of the cabinet would be displayed in 2d in the injected (i.e. exported) MFME layout.


This will allow continued support for MFME users where a layout has been created natively on Oasis, and the layout will also have time-consuming elements like live light reflections etc reflected in the parts of the 2d rendered cabinet, as rendered natively in 3d.

 Seems bonkers I know, but it's a logical extension as I'm figuring out the project architecture in terms of the Windows-only elements for layout artists to input/output work to/from MFME.

The Oasis Layout Editor module will use these components in the background, so it will be as simple as using the relevant UI in Oasis LE.  It'll also be usable in a 'standalone' mode, for those that may wish to build other things from this, for instance alternative MFME frontends like @appstrader's FruitBar (so in that example, he'd be able to build real animated lamp on/off attracts into the frontend by having full raw dumps of the layouts as .png and .json data etc).

Just a window for start as I am under the weather, but this is where all the ArcadeSim MFME IO systems will be ported to: :) 
image.png.4e45c29fa14a4be37439ed929d2ce799.png

To be continued, once I'm back up and at 'em - the first stage will be refactoring the MFME extraction system that ArcadeSim uses... 

Note that a user just wishing to play layouts in Oasis, either standalone or in 'AS2', will not need to download the optional MFME Tools module, this will only be of use to Layout Artists, and perhaps also layout converter scene members who will oversee converting MFME layouts to Oasis, along with enhancing them with the highest resolution source art we have etc.

Edited by johnparker007
  • Like 5
  • Awesome 1

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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

Still well under trhe weather, but hopefully on the mend soon, so in the meantime had a little mini-tinker :) ; 

Updated MX app cion to MT; set up initial fields and options for this new combined MFME Tools module (for both Extraction and Injection of layouts).  Once I'm back in the zone, I will comment the convertinmg/porting/improving of the extraction code from the system side of AS over to this new Oasis module...

image.png.da1dffdc906ebca35b85b850655ee2d4.png

Edited by johnparker007
  • Like 5

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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...
Posted (edited)

Minor tech update for those interested :) 

Have ported over the system from Arcade Sim alpha, that hunts out the MFME.exe from the user's machine, for those users wishing to extract layouts (this will be done via a 'native' dialog within the Layout Editor itself, the standard Windows UI is provided for future use/testing):

 You will see the MFME.exe appear in the folder local to the MFME Tools module on launch, also the text box populates.  Next steps are:

- porting a paired down project to encapsulate the necessary .dll 'detouring' to control a custom copy of the Windows Registry (as used for Arcade Sim alpha)
- copying the .gm to the MFME Tools copy and cleaning out the ROM refs etc, we don't want the layout trying to boot/doing popups related to missing ROMs
- launching MFME with the detour hacks in place with a controlled 2x popup max

After this there is much more, to build the robust version of how I was extracting layouts, to be covered in future tech updates :) 

Edited by johnparker007
  • Like 2

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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

Add handy console to the standalone GUI for MFME Tools.  This log is also available to Layout Editor (when MFME Tools is invoked from there for layout extraction) which will also have its own output console as a dockable tab.
image.png.7f2929f50d69b043215e0c87d792386f.png

  • Like 5

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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

Posted (edited)

Another tech update :)  We now have a custom dll working, this is so that the MFME Tools copy of MFME.exe will not interact with the actual MFME registry (it doesn't do the 'turbo startup' stuff as we aren't using MFME for any actual emulation, just for the layouts).  Also the early stage of the extraction process now working, to launch MFME using the custom Oasis Windows registry:

Here you can see various stages logging out their info to the Windows GUI version of MFME Tools (this window will be hidden when extracting layouts via Oasis Layout Editor):
image.thumb.png.0d168179806b0927356728ab7e334dc6.png

Quick vid of the above:


I also have pulled over the system for sending 'fake' mouse/keyboard input (used to control MFME for extracting/injecting layouts).

The next big task now is to tackle rewriting a new improve system for capturing the content of the MFME main and child windows - the previous system was very Unity-specific, and this MFME Tools module is non-Unity by design... so that will probably take quite a while to develop, though we'll see... maybe it won't be too bad :) 

Edited by johnparker007
  • Like 5

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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

Posted (edited)

Got a chance to do a start on the rewrite of what (should be) the reliable Window capture system.  Here you can see it has acquired the 'Window Handle' of the launched layout.  That Window Handle is the connection to be able to capture the window contents which is the backbone of how the extractor(and injector) works:
image.thumb.png.2d4c2903db23f46901d0120775ca4e29.png

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
[ 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

  • 1 month later...

Been feeling a bit better, so got some more progress on porting/converting the MFME Layout Extractor from the old ArcadeSim project to the new MfmeTools application (this is a 'standalone' Windows-only component of the Layout Editor, which is a cross-platform component of the Oasis suite).

Work ported so far, allows for a little more progress in this test extraction, is now puts Mfme in Edit mode, and copies off lamps to the background:


Next, is to get the Window Handle of the Properties window, and then from there, it's working on the new window capture system itself, as I need to get:
- window position/size from the handles
- getting window content as a bitmap
- redo the old scraping of the component name (used a fuzzy OCR in old system, this needs converting to my Delphi font scraper, as everything else uses)

  • Like 7

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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 small tech update on this project :) 

I have the general custom window scraping written (so it can grab the RGB value of specific pixels from the various MFME windows).

Currently working on integrating that functional scraping code into MFME Tools - the first use of which will be to simply scrape the component number from the properties window (so we can 'rewind' back to component #1 after getting into Properties - this is how I found it best to do under the Arcade Sim Layout Scraper).

The plan is that this custom scraping code, whilst also being complete independent of Unity (MFME Tools is written in C# as a Windows executable), will also provide missing stability, as the scraping system I used under Unity to drive Arcade Sim and also the layout extraction, had a tendency to crash!  So hopefully when this is fully developed, I can leave it with a massive batch of DX layouts, and it will not crash even after many hours of extracting...

Commits are all here for those interested in the code, this is all open source: https://github.com/johnparker007/Oasis/commits/main/

Edited by johnparker007
  • Like 2
  • Awesome 1

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  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 bit hacky, but more progress on the MfmeTools Extractor.  Usually when right-clicking the left side of the layout to pull up the Properties window, we land straight on the first component (the background).  This isn't always the case though, sometimes there might be a component like a checkbox there.  So we must get back to the first component...

I've added a large 'dummy test' lamp on the left of this Andy Capp layout I'm testing with, so we can test getting back to the first component.

Here is the new window scraping code getting its first use, watching the component number change while clicking left, until it sees it has successfully reached the first component:

 

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
[ 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...