Jump to content

Development Updates


johnparker007

Recommended Posts

On 01/06/2022 at 15:41, Spidy21982 said:

@johnparker007 nice work. is your converter the same as the agemame layout tool ? i thought the agemame layout tool is an editor for mame like mfme where you can build from ground up that i could try.

greetings spidy

 

I think the agemame layout tool is a different approach, I think it is like you say for building layouts.  I am sure it will be very out of date by now, as much or more than the mfme2mame stuff.  Quite a bit of the internal recommended MAME .lay specification has changed now.

To convert 'modern' MFME .fml to another system, such as Arcade Sim machines, or MAME .lay, it is problematic.  I have something that is very unstable, and requires remote controlling PC running MFME - there is no tool available at present to build .lay from .fml.

I may look into this one day but it's going to be very complex/time consuming to make something that would work like a layout converter tool for .fml.

If anyone who can reverse-engineer/program reading wants to get into this, just to get to the data stream needs to first decode the protection that Chris put in after the mfme2mame project.  Then after that there would be more steps (unpack to universal format, then build lay from there) - but that's what would be needed to build a .fml -> .lay raw file to raw file standalone converter.

The next level up from there would require using MFME v20 as part of the process.  So the you would launch MFME with the layout, then hook into the raw memory space, and with stack pointers etc, you could find the start of the loaded layout.  Then it would be a case of pulling that out of memory, and again writing a translation layer, to pull that data back to a 'universal' format.  From there, then building the .lay.

Arcade Sim project uses the next layer up, as it was the safest (in terms of my time) was to do it, which launches MFME, then uses custom screen scraping and keyboard/mouse control to manually extract all the information to a dumped layout.  I then read that dumped layout to build the Arcade Sim base machine elements... then other stuff from there to deal with perspective and 3d cabinet etc.

I don't have time to build such a tool though unfortunately, as like I say, it would likely be 6 months minimum of work in my spare time, plus there could be the risk of problems (unextractable/difficult to extract stuff).  But it could all likely be built, given time/skill - really not a beginner programming project either! :) 

FWIW for any future coder mulling over doing this - it'd probably be least headache to go for the middle ground:  use MFME v20 to load the layout, then extract the loaded layout, but directly from RAM.  So then it would be very quick and stable, and don't have to worry about the .fml file format. 

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
[ 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 quick tech update :) ...after a break last week, I've continued looking at the work to help with MAME MPU4 efforts.  I am heavily leaning towards retiring the old version of mfme2mame converter in favour of bring all this into using my Arcade Sim internal 'flakey' converter.  This is because: 

- original mfme2mame is locked to mfme 9.4, so misses a lot of newer layouts on existing techs, plus of course entire new techs (Scorpion 5, Proconn etc)
- I was intending to implement scraping of 'classic' elements like text boxes, labels, text buttons one day in AS converter, to have Classic layouts playable in AS, on perhaps a retro PC in a back office off the main arcade area.  So that would be work that would help another part of AS
- I can port and improve the XML generation code as c# in AS source, rather than the very grotty Delphi C it's currently in, which is also needing to be run+debugged in a Windows virtual machine running Windows XP
- I need to write new code for dumping platform-specific config data (MPU4 reel config/hopper config etc), this is very useful for automating the building up of the existing/new MAME drivers (in MAME the games have their hardware configs in source, not in the layout)
- the 'DX generation' that some people have asked about is imperfect in the original mfme2mame.  I'd rather get that written ('perfectly') in the new codebase

The big con is that this will take longer than originally planned - but that seems to be the case every time I look at doing something! 

There are at least 170+ working games to play in Arcade Sim currently, so there's plenty to keep people going :)  For those interested, here's some of the MPU4 work that's been going on (not mine, this is David's) - a renewed focus on Chr chip lamp data grouping and other cool stuff... https://github.com/mamedev/mame/pull/9893/files

So I have a lot of work ahead, but we will be having playable classic layouts in AS on a retro PC terminal as one result of this (along with of course drastically improved MPU4 compatibility via MAME when I get time to get that working via 'native' libRetro emulation, like how the video games work).

  • 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
[ 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, johnparker007 said:

 a renewed focus on Chr chip lamp data grouping and other cool stuff... https://github.com/mamedev/mame/pull/9893/files

 

Is there anything there that could help me with the differences between real and MFME?

 

(Once the work on the boardmaster 4000 work is done, I am thinking of writing a testbasic program for it so it can get the real lamp tables out of real chr chips easily in a few seconds, this might speed along working out what is going on hopefully)

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

1 hour ago, andrew96 said:

Is there anything there that could help me with the differences between real and MFME?

 

(Once the work on the boardmaster 4000 work is done, I am thinking of writing a testbasic program for it so it can get the real lamp tables out of real chr chips easily in a few seconds, this might speed along working out what is going on hopefully)

You might be interested in this 'grouping' work that's going on - so if the start of the challenge/response data is same (differing lengths) that seems to link to same lamp tables - as if they're using same Chr across different machines, and sometimes perhaps doing a physical mod to slightly adjust something elsewhere (or not) e.g:
 

// these can be identified as games expecting a chr response starting with
    // 00 84 94 3c ec 5c ec 50 2c 68 60 ac'
    // Big Bandit (Nova) "BIG 0.4"
    // Crown Jewels (German) "GCN 0.9"
    // "GCN 1.1"
    // Action Note "AN 1.2"
    // Card Cash "CS 1.9"
    // Bank A Note "BN 1.0"
    // Money Maker "MMK 1.6"
    // Dutch Wild Mystery "DWM 1.8"
    // Let The Good Times Roll "GTR 2.0"
    // "GTS 1.0"
    // "GTS 0.2"
    // "GTR 1.1"
    // Jackpot Gems "RRH 0.1 / CG4 0.1"
    // Jackpot Gems Classic "GTC 0.1 / CG4 0.1"
    // "HGE 0.1 / CG4 0.1"
    // Jolly Gems "GEM 0.7"
    // "GMS 0.5"
    // Hit The Top "HT2 0.1"
    // "HT5 0.1"
    // Nudge Nudge Wink Wink Classic "CN3 0.2 / NN4 0.2"
    // "CF3 0.2 / NN4 0.2"
    // "CH3 0.2 / NN4 0.2"
    // "CH3 0.1 / NN4 0.1"
    // Ready Steady Go "RGO 0.8"
    // "CGO 1.1"
    // "DRR 0.2"
    // "HJJ 0.1"
    // "HJJ 0.2"
    // "PPL 0.2"
    // "RGT 1.0"
    // Magnificent 7s "MA7 1.6"
    // "MAS 1.3"
    // Make A Mint "MAM 0.4"
    // "MMG 0.5"
    // Pot Black "PBS 0.6"
    // "PBG 1.6"
    // Place Your Bets "PYB 0.7"
    // "PYH 0.6"
    // Cloud Nine "CT3 0.2"
    // "CT2 0.2"
    // "CT5 0.2"
    // Tutti Fruity "F1U 0.1"
    // "F2U 0.1"
    // "F3U 0.1"
    // Cash Attack "CSA 1.2"
    // "CAA 2.3"
    // Red Hot Roll "HHN 0.2 / CR4 0.2"
    // "CLD 0.3 / CRU 0.3"
    // "HHN 0.3 / CR4 0.3"
    // "RRD 0.3 / CR4 0.3"
    // Up Up and Away "UPS 2.2"
    // "UUA 2.2"
    // Hi Jinx "JNX 1.0"
    // "JNS 0.3"
    // Cash Lines "CLS 0.4"
    // "CLI 1.2"
    // Lucky Strike "LSS 0.7"
    // "LST 1.0"
    // 10 X 10 "T2T 0.1"
    // "T3T 0.1"
    // "TST 0.1"
    // Boulder Dash "BLD 1.0"
    // "BLS 0.2"
    // Hot Rod "ROD 0.4"
    // Buccaneer "BUG 0.5"
    // "BUS 0.2"
    // Bagatelle "EL1 0.1"
    // "EL2 0.1"
    // "EL3 1.0"
    // The Crystal Dome "CD2 1.2"
    // "CD2 1.0"
    // "CD2 0.2"
    // Cash Machine "CMA 0.8"
    // "CMH 0.7"
    // Top Tenner "TTS 0.4"
    // "TTH 1.1"
    // "TTH 1.2"
    // Ten Out Of Ten "TOC 0.4"
    // "TOT 0.6"
    // Everyone's A Winner "ENN 0.1 / ER4 0.1"
    // "EON 0.1 / ER4 0.1"
    // "EUN 0.1 / ER4 0.1"
    // Let The Good Times Roll "GTR 2.0"
    // "GTS 1.0"
    // "GTS 0.2"
    // "GTR 1.1"
    // Super Streak "CS4 0.2 / CSP 0.2"
    // "CS4 0.2 / EEH 0.2"
    // "CS4 0.2 / STC 0.2"
    // "STC 0.1"
    static constexpr uint8_t m4dtri98_characteriser_prot[8] = { 0x03, 0xAF, 0x87, 0xAB, 0xA3, 0x8F, 0x87, 0x83 };

 

David also notes about potential for payout effects (though again as previously explained, the patched ROMs do not access the Chr chip any longer, so behaviour in emulator should be the same we think... I've far too much work on to get back into all that discussion, and buying machines etc lol! :) ).  Good luck with those repairs :) 

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

@andrew96 This might be of use to you, this just came up over on mame dev.  So apparently, the MPU4 Video title 'Vegas Poker' by Bwb, there is a prototype board, and on that board the pal is actually unprotected, and has been dumped - here is the dump :) 

ic18-palce16v8h.zip

Pretty cool, shame it's Bwb rather than Barcrest, but even so, someone dropped the ball back in the day! ;) 

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

@Altharic There's a bit more going on in the past 6 months or so :)  At the same time, it's a massive amount of work yet to be done (years with people actively working on it).

Some stuff is feeding back - for instance the Classic Adders & Ladders layout, the lamps are wrong on it (all versions right back to the classic pre-dx source layout), and then the Chr lamp data is also wrong, but in such a way that the correct lamps actually light (just a couple are wrong).  This is not 100% guaranteed, but we believe this is actually the correct Chr lamp values for the A6L 0.1 ROM (used in the MFME layouts):
image.png.ea2afd0744c23d007ead05cbf3092347.png

I've built a chr-free version (of A6L 0.1), that a guy on the mecca is going to burn and test, he'll be happy if it works, as he doesn't have a Chr chip, but otherwise his Adders & Ladders is a complete working machine!

At some point (provided the lamps are verified) if someone wanted to have the MME layouts truly accurate they could plug these Chr lamp values in, then manually refigure out the lamps.  I think on a couple of board square anims etc, there are currently lamps that flash up in the wrong place, which would in theory be fixed by using the correct lamp assignments and Chr.  It's subtle though, I only know as I've studied this layout in some depth...

EDIT: Just remembered I played a full feature board on this in a recent AS gameplay video (ignore the fact I have additional reel lamps behind the number reel, that's an unrelated bug).

So watching from 34:52: https://youtu.be/dTWk4gIJCuM?t=2092

You can see the number reel is not lit, then as I advance up a couple more rows to go past £3.60, the number reel lights up.  This is one of the subtle issues from the incorrect lamp assignments/Chr lamp values combo currently in place - subtle but it is there! :) 

 

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
[ 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, johnparker007 said:

@andrew96 This might be of use to you, this just came up over on mame dev.  So apparently, the MPU4 Video title 'Vegas Poker' by Bwb, there is a prototype board, and on that board the pal is actually unprotected, and has been dumped - here is the dump :) 

ic18-palce16v8h.zip

Pretty cool, shame it's Bwb rather than Barcrest, but even so, someone dropped the ball back in the day! ;) 

Oh cool!! it is these chinks in the armour that helps! sadly the BWB chr chip is a standard pal chip where thee Barcrest ones are not (they are a custom made device similar to a PAL but more complicated inside)

 

thatnks again! 👍

  • Like 1
Link to comment
Share on other sites

6 minutes ago, andrew96 said:

Oh cool!! it is these chinks in the armour that helps! sadly the BWB chr chip is a standard pal chip where thee Barcrest ones are not (they are a custom made device similar to a PAL but more complicated inside)

 

thatnks again! 👍

Ah ok - so even an unprotected Barcrest couldn't be dumped then... with the new Chr grouping work David is doing, that could potentially lead to another chink in the armour one day - as he is looking for more patterns, as this Chr grouping and Chr 'almost groups' with one line low seems to be relatively new territory.

One day someone with determination and skills might be able to use the patterns + maths + GPU acceleration to brute force or somehow get back to the original equation that drives them - optimistic I know, but you never know! :) 

[ 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
[ 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 this is it! everything helps for sure! I have also heard that barcrest sometimes used the same chr chip in different games, It could be they got a bit lazy towards the end when they knew MPU5 was on the way so they put less effort in perhaps, that's my guess!!

  • Like 1
Link to comment
Share on other sites

Mini tech update on the work going on wrt layout extraction/MAME stuff... thanks to the talented @SomeRandomGuyIdk, I got to experiment with the decrypted data stream on the new .fml format, as a potential for replacing my 'flakey but working' extractor.

While it's possible to develop, I'm looking at going back to my flakey one... as it could end up being months of work - the benefit would be a standalone program that can open a .fml + .gam, and write out a 'universal' layout format (like my flakey program does now).

The problem is the time to develop - as once it's done, I really don't think it's get much use to justify putting everything on hold - though it would of course be a superior solution.

Here's some example of the output (very basic initial header reading):
172728166-41dbfde5-a71f-4c76-90b5-135aa6bf166d.png

So it gets that data without having to launch/screenscrape/remote control MFME.  It reads from the .fml (an extra step is involved with a patched MFME though it'd probably be possible to eliminate that step if I had the time to develop the decoder). It's definitely cooler, but reverse engineering the entire loading logic and internal delphi/mfme memory structures - it's just too a high time cost to continue with at this stage, for not enough gain.

So the plan is to go back to the slightly flakey but working technique.  Not the most exciting tech updates at the mo, no eye candy lol!   But work continues... :) 

Edited by johnparker007
  • Like 2
  • Thanks 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
[ 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

29 minutes ago, johnparker007 said:

Mini tech update on the work going on wrt layout extraction/MAME stuff... thanks to the talented @SomeRandomGuyIdk, I got to experiment with the decrypted data stream on the new .fml format, as a potential for replacing my 'flakey but working' extractor.

While it's possible to develop, I'm looking at going back to my flakey one... as it could end up being months of work - the benefit would be a standalone program that can open a .fml + .gam, and write out a 'universal' layout format (like my flakey program does now).

The problem is the time to develop - as once it's done, I really don't think it's get much use to justify putting everything on hold - though it would of course be a superior solution.

Here's some example of the output (very basic initial header reading):
172728166-41dbfde5-a71f-4c76-90b5-135aa6bf166d.png

So it gets that data without having to launch/screenscrape/remote control MFME.  It reads from the .fml (an extra step is involved with a patched MFME though it'd probably be possible to eliminate that step if I had the time to develop the decoder). It's definitely cooler, but reverse engineering the entire loading logic and internal delphi/mfme memory structures - it's just too a high time cost to continue with at this stage, for not enough gain.

So the plan is to go back to the slightly flakey but working technique.  Not the most exciting tech updates at the mo, no eye candy lol!   But work continues... :) 

one day you need to write yourself into code and that way you can double your output ;) 

  • Haha 1

living the dream

 

Link to comment
Share on other sites

3 minutes ago, woodsy said:

one day you need to write yourself into code and that way you can double your output ;) 

That would be very handy! :) 

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

Thanks to @Amusements for showing me this - a dodgy pirate site selling USB sticks with pinball / MAME / MFME, using an (old) Arcade Sim screenshot for their website art!


image.thumb.png.30ae51681fabd83a30d65ee8afcd6674.png

Edited by johnparker007
  • Sad 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
[ 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, johnparker007 said:

Thanks to @Amusements for showing me this - a dodgy pirate site selling USB sticks with pinball / MAME / MFME, using an (old) Arcade Sim screenshot for their website art!


image.thumb.png.30ae51681fabd83a30d65ee8afcd6674.png

Is this that dodgy twat we’ve tried banned from Facebook 

off to Facebook to search and report it

Edited by vectra666
Link to comment
Share on other sites

30 minutes ago, vectra666 said:

Is this that dodgy twat we’ve tried banned from Facebook 

off to Facebook to search and report it

Or ask for a share of the profits, what with the state of things I image the 23 pence from his total sales would come  in handy. People surely know it’s free after a Google search

@Amusements you do know you don’t have to buy your layouts after releasing ;) haha 

Edited by woodsy

living the dream

 

Link to comment
Share on other sites

×
×
  • Create New...