Jump to content

Development Updates


johnparker007

Recommended Posts

Another tech update :)  

I've got the new keyboard stuff basically working, so now the Arcade window has focus, and fakes the keys that are pressed/released through to the MFME window that is unfocused behind (before I was doing bad things to make that work).

Also - I've done a little more on this direct memory reading, which I'm hoping I can eventually get working enough (and automated in terms of finding the addresses).  The advantage is a very large performance boost, compared to the current system which screen captures the MFME window at 60FPS, then reads pixels from the texture of the captured data layout to determine lamps and reel positions etc.

In this vid you can see a test where I'm rendering the contents of the alphanumeric display.  A lot to do yet, for instance once I play some credits, it uses a different memory page (I think) so then the display is blank.  Plus, when there are stutters, I think that's probably where codes are being send to control stuff like fading the display up/down, flashing etc.


EDIT: Since posting this, I've found that I was reading from the emulated program RAM for the alpha-numeric display contents.  Having checked some other machines, this doesn't look to be usable, as for instance Monopoly Millionaire's Row is programmed in a different way, so doesn't have the raw text stored in the same way.  Still good to have memory reading working though :) 

I will see if I can find the MFME display component byte/pixel data instead, as that method would work across all machines, and get custom character support for free.  I've always got the dreaded slow screen capture technique as a fall back if I can't find a way...

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

Tech update - MFME memory reading research continues :)  (Apologies in advance, this stuff is getting more technical than the usual updates while I'm working out all the hacking stuff)

I've since found the raw pixel information for the Dot Matrix Alpha displays, so that should allow for pixel perfect rendering of the alpha displays (including flash, scroll, custom UDG characters)... though not alpha fades, though I'm sure I'll be able to track that byte down.

Also experimenting with lamp reading - this time in such a way that I can find the lamps each time.  Every time you boot MFME (or any Windows process on a modern version of Windows), the memory layout is shuffled around a bit, due to a security feature called ASLR.  It's there to stop casual hackers having an easy way to be able to get access to a specific part of memory each time a program runs.

There is a way to get around this however ;)  So I've been researching static pointers, and pointer chains, and have managed (just in CheatEngine for the moment), to get a 'dynamic' link to the address of the byte that shows the DirectX alpha value of the Collect/Cancel lamp of Eastern Fortune (I can use this information for rendering lamps).  It works if I keep relaunching MFME and still gets the value, even though it's moving around each time I relaunch :) Next step is using that pointer chain in code, to get that one test button being driven directly by the MFME memory instead of the slow window capture technique I currently use. 

A load more to do after that (to descramble the lamps to match, I believe they're currently in the order they were originally added to the layout), but I believe all this new memory reading work will make getting the realtime data an order of magnitude faster than the current system, so highly worth it since I'm past proof-of-concept stage now, and trying to get a solid foundation in.
 

 

Edited by johnparker007
  • 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

31 minutes ago, slasher said:

Microsoft will make things bloody awkward!

lol it's all changed now anyway!  Since my last post, I did some more work on this at 6am before I started my dayjob (because I'm insane and obsessive about hobby projects! ;) ).   I had a new idea to try - which worked, so I've found a faaaar more efficient way to do my screen capture, so the performance is almost as good as all the direct memory stuff I've been looking into.

So now, I don't have to do all that extra work with direct memory capture :D  and can carry on from where I was, which is great :) 

Next feature will probably be getting the alphanumeric dot displays going (including the fade effects)... 

  • Like 1
  • Awesome 1
  • Haha 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

2 hours ago, johnparker007 said:

lol it's all changed now anyway!  Since my last post, I did some more work on this at 6am before I started my dayjob (because I'm insane and obsessive about hobby projects! ;) ).   I had a new idea to try - which worked, so I've found a faaaar more efficient way to do my screen capture, so the performance is almost as good as all the direct memory stuff I've been looking into.

So now, I don't have to do all that extra work with direct memory capture :D  and can carry on from where I was, which is great :) 

Next feature will probably be getting the alphanumeric dot displays going (including the fade effects)... 

You just can't leave it alone can you?! Well good, keep up the great work!

  • Like 2
Link to comment
Share on other sites

Begun work on the alphanumeric dot display :) 
image.thumb.png.8c50e6b4135dc3d8ab28ddc17bf4c151.png

  • Like 2
  • 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

Still a bunch of things to do (this has all been somewhat manually set up, and doesn't take the colors/settings from MFME yet)... but it's showing signs of life in this first test :)

Merry Xmas everyone! 🎅
 

 

  • 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

23 minutes ago, A:E said:

Merry Xmas John ;)

Ive not looked at this thread for a few days.  Some insane work here mate.

FFS dude...   get a drink ;)

J

As is the way of Xmas day, it's 11:40am and I'm cracking open my first can ;)  Cheers! :) 

  • 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

2 hours ago, johnparker007 said:

Still a bunch of things to do (this has all been somewhat manually set up, and doesn't take the colors/settings from MFME yet)... but it's showing signs of life in this first test :)

Merry Xmas everyone! 🎅
 

 

Based on the recent Betcoms I knew exactly what that was saying - they didn't really change the attract alpha messages for YEARS! 

Smashing work as always. 

Can of Real Ale I hope?

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

4 minutes ago, slasher said:

Based on the recent Betcoms I knew exactly what that was saying - they didn't really change the attract alpha messages for YEARS! 

Smashing work as always. 

Can of Real Ale I hope?

Yeah the Betcom alpha coding isn't too fancy, just one fade after 'PRESENTS' - I noticed Monopoly did a few more effects (vertical scroll on if I remember correctly), and I think Flamin' 400 used some custom graphics, rather than just standard character set.  Since I'm back to window capturing the data layouts now I've got it working much faster, we get all those fancy effects 'for free' as the excellent MFME has done all the work already :) 

Thanks man, and the session cans for today are John Smith's Extra Smooth 🍻

 

  • 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

2 minutes ago, johnparker007 said:

Yeah the Betcom alpha coding isn't too fancy, just one fade after 'PRESENTS' - I noticed Monopoly did a few more effects (vertical scroll on if I remember correctly), and I think Flamin' 400 used some custom graphics, rather than just standard character set.  Since I'm back to window capturing the data layouts now I've got it working much faster, we get all those fancy effects 'for free' as the excellent MFME has done all the work already :) 

Thanks man, and the session cans for today are John Smith's Extra Smooth 🍻

 

BFG are probably the ones that do the most alphanumeric display work. Theirs stretch/bounce/squish/flash/fade text loads in the newer games. Reflex I imagine most of theirs will be standard ASCII characters anyway.

John Smith's, really?! I am disappointed.

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

4 minutes ago, slasher said:

BFG are probably the ones that do the most alphanumeric display work. Theirs stretch/bounce/squish/flash/fade text loads in the newer games. Reflex I imagine most of theirs will be standard ASCII characters anyway.

John Smith's, really?! I am disappointed.

Looking forward to seeing them in action once I've done the rest of the work on implementing the test demo from the vid! :) 

Sorry man, I know it's an amateur ale, but I can only deal with weak stuff these days, and John Smith's is 3.6% ;)  I do treat myself to (local) Bradfield Brewery ales once in a while... some of those real ales get up to like 6% and I start going loopy! :)

  • 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

Just a fun update on that display, as I've had a festive  amount of seasonal grog 🍻:) 

I realised it was all set up to do gameplay with zero changes required, so here's that new WIP alpha display in some gameplay action:

 

  • Like 5
  • Awesome 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

Just a tech update, started tinkering again after a nice long programming break over the holidays :) 

So before I roll out the dot alphas from the recent videos properly, I want to speed up the generation/regeneration of the 3d machines from the layouts (so I can move into getting ~50 unique machines in the arcade from the current 5 test machines).

Main plan is to implement screen scraping of the delphi font, then also have an option to not save out/process any images that already exist (from previous conversion run).  Those two features should take processing of a pre-processed machine down to 4-5 mins from like 35-45 mins.

I did some provisional rough test scraper code for the numbers, handcopying, much like making the old ZX Spectrum character graphics from my childhood :)

image.png.542325798531c3b8db23c1eb6bebbd08.png

That seemed to work fine, so I've now grabbed all the characters and worked out their dividers:

image.thumb.png.5092ebb7421751f21d0915816a87a0fc.png

Fortunately Delphi uses ancient font rendering techniques, so there's no font smoothing and no dynamic kerning (so it's easier to scrape).  So once I can program this, it'll allow for grabbing any text from the MFME UI very quickly (compared to the current approach of sending various keypresses with delays to grab text to the copy buffer, one field at a time).

  • Like 6

[ 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

38 minutes ago, Big J said:

After what you have given to us (or at some point will) you deserve the break.

Hope you had a good Christmas and New Year @johnparker007 even with this shitty virus hovering over all our heads?

Had a nice relaxing Xmas/New Year thanks, hope you had a good one too! :) 

  • 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

Not getting as much time to focus on this project at present, but still tinkering along with small bits :) 

So the new MFME text scraper is just about working now (full ASCII character set)... testing it on this reel component, the approx 12 numerical text fields I scrape so far - old system took around 4 seconds, new system takes like 1/60th of a second.  Very satisfying speed increase (it all adds up when there's usually at least 200 components per layout) :) 

Will be continuing to finish this up and refactor some of the 'data entry' stuff to share some coordinates... then onto image caching, for more speed ups to the conversion process (which is currently torturously slow).

image.png

image.png

Edited by johnparker007
  • 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

Added a couple of new machines (Snakes & Ladders and Trail Blazer) to test out the new (much faster) MFME text scraper - everything seems to have come out in the right place so working well :)

(Trail Blazer - the sound is very quiet, I actually thought it didn't have sound when I was recording.  I will perhaps be able to code something to fix this issue of different volume levels between different machines...)

Edited by johnparker007
  • Like 3
  • 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

  • Reg changed the title to Development Updates
×
×
  • Create New...