Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/01/21 in Posts

  1. 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 That seemed to work fine, so I've now grabbed all the characters and worked out their dividers: 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).
    6 points
  2. Had a nice relaxing Xmas/New Year thanks, hope you had a good one too!
    3 points
  3. Fancy having a life outside of DIF!!!!!!!!!!!!!!! Glad you're well mate, relaxing is the way forward I think
    2 points
  4. 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?
    2 points
  5. I have thanks and going to let you get back to what you do best, put a smile on all our faces. Stay safe bud.
    1 point
  6. 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:
    1 point
  7. As is the way of Xmas day, it's 11:40am and I'm cracking open my first can Cheers!
    1 point
  8. 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!
    1 point
  9. 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.
    1 point
  10. 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...
    1 point
×
×
  • Create New...