Jump to content

Zippy

  • Posts

    7,287
  • Joined

  • Days Won

    28

Posts posted by Zippy

  1. @Chopaholic watched your video now and is truly amazing how even though Chris is not with us in body his soul is still keeping that ugly monster "addiction" at bay for many across FME land, I don't blame you for asking him about future prospects of his even though you knew it might get you into hot water with him as been on that side of the fence too at one point a bit like pushing your luck with another quid in a fruit machine to see if it drops a streak or a load of repeats even if it means a long walk home at night. 

    One man, one purpose, many accomplishments, am proud to of been part of his world.

    In my thoughts still and much love!!

    Jason

    • Like 1
  2. 30 minutes ago, serene02 said:

    You’ll find a way I’m sure..  lol

    Enjoy the break mate ;)

    J

    You know him better than anyone I know so tell him to knock a head on it for now anyway.

    Your post did make me laugh, the guy is obsessed but I seriously don't blame him as this is no small task. Just want to keep putting that quid in eh JP trying to get that JP lol

     

    • Like 2
  3. 2 hours ago, woodsybaby said:

    Ok thanks, other than the labels being different I wasn’t aware the cabinet would be a issue? Other than the machines housing I don’t know what the difference in cabinets entails really!! Where would I get the roms in order to swap them? The legacy layouts contain all the created games etc, is there a section for roms as a standalone? Thanks

    No as they are all in layouts but you can request something in the Legacy Rom Support Area below (which has roms uploaded within it) and if someone does have them they will post them up, just don't continually request them in there as other members will see it, if no-one gets back to you then put a final post on your same thread in there after a few days have passed (well that is what I would do) just in case any member has them hasn't been on for a while, @hitthesix, @loo amongst a few others sometimes has a few roms tucked away but it is at their discretion if they want to upload them.

     https://www.desertislandfruits.com/forum/index.php?/forum/61-layout-layout-and-legacy-rom-support-area/

    What are you after specifically?

    • Like 1
    • Thanks 1
  4. 12 minutes ago, woodsybaby said:

    K cheers, the layouts created don’t always have the £5 jp versions which I’m after for several games (sad as it may be) and I was wondering if there’s rom collection area I can swap out roms myself from the list etc!?

    You can swap them if they are available but if the specific decaled layout hasn't been done you could be playing a 5 quid version in a 25 quid cab.

  5. 4 hours ago, johnparker007 said:

    Just been trying to keep up with all these bloomin' bug reports lol!  ...so everyone can enjoy a working arcade sim :)  It's no good if it's crashing all over the place ;) 

    Hey John you are doing me a favour, you know how much I've saved in my swear jar, the longer you take with AS the more I save, I win either way🤑

    • Like 1
    • Haha 1
  6. A great thread and post but am angered by the police and their poor actions had I of known I would of told you to take it to the Commissioner or Scotland Yard like I had to do once as had to wait for a police report for near 2 years for an accident involving the police's actions, very sorry you had to go through that but I think all Chris would of been bothered about is that his emulator is still working and fully functional. Also want to say a thank you to @johnparker007 for continuing the Islands legacy in trying to propel us into 2022.

    Long live MFME and MAME.

    • Like 9
  7. Felt the pinch of you not being around which is why I just couldn't comment here mate and just ran into this today with your friend Harvey putting a thread up to remind us of how much you are truly missed, we all express ourselves in different ways but the most important thing is when it is straight from the heart, a very very late Happy Birthday from me just don't hog the cake and the bottle of whiskey, once a sharer always a sharer.

    Much love:)

  8. No pressure bud seriously but percentage wise how far would you say you have come?

    Still impressed as per with your little minion here watching on.

    Said it a few times and will say it again computer shite can be seriously draining so hope you are getting good kip and vitality through you, sounds a bit soppy but it is true and sure Chris went through it multiple times that when you have a major task ahead of you you kind of forget about any and everything else, dedication is off the scales but sometimes you have to have a breather.

    Much love for your continuous updates and thriveness on this project my friend.

    Take care.

    Zippy🤐

    • Like 2
  9. 49 minutes ago, vectra666 said:

    Ooh well!! You know what you have to do then??

    Yep, he could always make a couple more layouts and listen and he wouldn't have to pay diddly squat and unless admin changes the game which I strongly doubt everyone just has to live with it.

     

    Zippy🤐

    • Like 2
  10. 1 hour ago, dave1438 said:

    hi,

     

    Is there anyway to change the win percentage on MFME?

    Please.....

    Tick S Door top left and go into configuration, use the dropdown box to choose what you wish but don't forget to uncheck S Door after.

     

    Zippy🤐

  11. 24 minutes ago, MikeyMonster said:

    My best in real life on a Big top was £75, £75 £52...... it had cost me a tenner......

    It was on unit 3... funny as fuck though cos i had been waiting for unit one... and a cunt I knew sprinted the length of the arcade to get on it before me whilst i was collecting a bank out on rollercoaster.

    I was cursing him and giving him some serious shit - i mean he knew i was waiting for it.... and what he did was totally against the players code.

    He lost over £100 on his... and whilst he was stuck on it... I cleaned up!

     

    Well that is karma for you, what goes around comes around but saying that it is spoils of war when it comes to that, had that a few times in my emptier days but just let them get on with it, not bragging but had other emptiers in a place where I went, this guy put all his dough in the one I emptied after as the old girl in the arcade working there re-filled it after I emptied it and he put all his dough in thinking he was getting a streak because it was banging down the back, I then re-emptied it, like I said it was everyone for themselves back then.

     

    Zippy🤐

    • Like 3
  12. I echo what has been said above but best thing to do is ask for each individual machine (preferably in the same thread). If it is something like Nudge Shuffle, Rat Race or some of those 80s techs it usually is in 10ps as that is how they were programmed, maybe it was the thought process of engineers or manufacturers to let the player think he had won loads with all those coins hitting the tray, fuck knows!

    If I find anymore like this I'll sling it up in a "fixes thread" unless someone else beats me to it then it will go there. It is usually older layouts made with v6 and older, things like triac/meter effects, shortcuts not added properly etc.

     

    Zippy🤐

    • Thanks 1
  13. 41 minutes ago, johnparker007 said:

    I don't think it would be all that fascinating haha, just a lot of programming/testing/swearing :) 

    Last night and this morning I wrote and tested the majority of this code block below, which is the new thing that does the 'deep searching' for the latest MFME exe on people's systems - here ya go, knock yourself out @Big J ! :) 

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using System;
    using Microsoft.Win32;
    using System.IO;
    using System.Linq;
    
    public class MFMEExeCopier : MonoBehaviour
    {
        public class PotentialPathData
        {
            public string Path;
            public bool SearchCurrentAndUp;
            public bool SearchCurrentAndDown;
        }
    
    
        public byte[] MFME_20_2_0_0_Hash;
    
        private List<PotentialPathData> _initialPotentialPathsData = new List<PotentialPathData>();
        private List<string> _foundLinkedPathsContainingMFMEString = new List<string>();
    
        private List<string> _recursiveSearchedDownPaths = new List<string>();
        private List<string> _recursiveSearchedUpPaths = new List<string>();
    
        private List<string> _searchedPaths = new List<string>();
    
        private string _matchedLatestMFMEExePath = null;
    
    
        private void Start()
        {
            TryToCopyMFMEExeIfNotPresent();
        }
    
        private void TryToCopyMFMEExeIfNotPresent()
        {
            if (MFMEExeHelper.IsLatestMFMEExePresent(MFME_20_2_0_0_Hash))
            {
                Debug.Log("MFMEExeCopier - latest MFME exe already present, doing nothing.");
                return;
            }
    
            Debug.LogWarning("MFMEExeCopier - latest MFME exe not present, attempting to find...");
    
            FindInitialPotentialPaths();
    
            SearchInitialPotentialPaths();
    
            if (_matchedLatestMFMEExePath == null)
            {
                SearchFoundLinkedPathsContainingMFMEString();
            }
    
            if(_matchedLatestMFMEExePath != null)
            {
                Debug.LogWarning("MFMEExeCopier - MFME exe found, copying from " + _matchedLatestMFMEExePath);
                File.Copy(_matchedLatestMFMEExePath, MFMEExeHelper.DynamicMFMEExePath, true);
                Debug.LogWarning("MFMEExeCopier - called copy, now MFMEExeHelper.IsLatestMFMEExePresent returning " + MFMEExeHelper.IsLatestMFMEExePresent(MFME_20_2_0_0_Hash));
            }
            else
            {
                Debug.LogError("MFMEExeCopier - MFME exe NOT found!  Search paths:");
                foreach(string searchedPath in _searchedPaths)
                {
                    Debug.LogWarning(searchedPath);
                }
            }
        }
    
        private void FindInitialPotentialPaths()
        {
            _initialPotentialPathsData.Add(new PotentialPathData()
            {
                Path = GetRegistryStringData("InstallPath"),
                SearchCurrentAndUp = true,
                SearchCurrentAndDown = true
            });
    
            _initialPotentialPathsData.Add(new PotentialPathData()
            {
                Path = GetRegistryStringData("PathName"),
                SearchCurrentAndUp = true,
                SearchCurrentAndDown = true
            });
    
            _initialPotentialPathsData.Add(new PotentialPathData()
            {
                Path = GetStandardInstallPathOnArcadeSimDrive(),
                SearchCurrentAndUp = true,
                SearchCurrentAndDown = true
            });
    
            _initialPotentialPathsData.Add(new PotentialPathData()
            {
                Path = GetRegistryStringData("BrowseDir"),
                SearchCurrentAndUp = true,
                SearchCurrentAndDown = true
            });
    
            _initialPotentialPathsData.Add(new PotentialPathData()
            {
                Path = GetRegistryStringData("ExportDir"),
                SearchCurrentAndUp = true,
                SearchCurrentAndDown = true
            });
    
            List<string> historyPaths = GetHistoryPaths(); 
            foreach (string historyPath in historyPaths)
            {
                _initialPotentialPathsData.Add(new PotentialPathData()
                {
                    Path = historyPath,
                    SearchCurrentAndUp = true,
                    SearchCurrentAndDown = true
                });
            }
    
            List<string> additionalFolders = GetAdditionalFolders(); // do this later as including SearchCurrentAndDown which is slow for what are probaly parent layout folders
            foreach(string additionalFolder in additionalFolders)
            {
                _initialPotentialPathsData.Add(new PotentialPathData()
                {
                    Path = additionalFolder,
                    SearchCurrentAndUp = true,
                    SearchCurrentAndDown = true
                });
            }
        }
    
        private string GetRegistryStringData(string key)
        {
            string registryStringData = (string)Registry.GetValue("HKEY_CURRENT_USER\\SOFTWARE\\CJW\\MFME", key, null);
            if (registryStringData == null)
            {
                Debug.LogError("MFMEExeCopier - couldn't get string data for key [" + key + "] from Windows Registry");
            }
    
            return registryStringData;
        }
    
        private List<string> GetAdditionalFolders()
        {
            // 'AdditionalFolders' is semicolon-seperated values e.g: C:\projects\Arcade_MFME\Layouts;C:\downloads
    
            List<string> additionalFolders = new List<string>();
    
            string additionalFoldersSemicolonSeperated = GetRegistryStringData("AdditionalFolders");
            if (additionalFoldersSemicolonSeperated != null)
            {
                additionalFolders = additionalFoldersSemicolonSeperated.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
            }
    
            return additionalFolders;
        }
    
        private List<string> GetHistoryPaths()
        {
            // in registry as history0, history1 ... history9
    
            List<string> historyPaths = new List<string>();
    
            for(int historyPathIndex = 0; historyPathIndex <= 9; ++historyPathIndex)
            {
                string historyPath = GetRegistryStringData("history" + historyPathIndex);
                if(historyPath != null)
                {
                    historyPaths.Add(historyPath);
                }
            }
    
            return historyPaths;
        }
    
        private string GetStandardInstallPathOnArcadeSimDrive()
        {
            const string kFixedRootPath = "MFME\\v20";
        
            string arcadeSimInstallPathRoot = Path.GetPathRoot(Application.dataPath);
            string standardInstallPathOnArcadeSimDrive = Path.Combine(arcadeSimInstallPathRoot, kFixedRootPath);
    
            return standardInstallPathOnArcadeSimDrive;
        }
    
        private void SearchInitialPotentialPaths()
        {
            foreach(PotentialPathData potentialPathData in _initialPotentialPathsData)
            {
                SearchInitialPotentialPath(potentialPathData);
    
                if(_matchedLatestMFMEExePath != null)
                {
                    return;
                }
            }
        }
    
        private void SearchInitialPotentialPath(PotentialPathData potentialPathData)
        {
            if (potentialPathData.Path == null
                || potentialPathData.Path.Length == 0
                || !Directory.Exists(potentialPathData.Path))
            {
                return;
            }
    
            if(potentialPathData.SearchCurrentAndDown)
            {
                SearchPotentialPathCurrentAndDown(potentialPathData);
            }
    
            if (potentialPathData.SearchCurrentAndUp)
            {
                SearchPotentialPathCurrentAndUp(potentialPathData);
            }
        }
    
        private void SearchPotentialPathCurrentAndDown(PotentialPathData potentialPathData)
        {
            DirectoryInfo potentialPathDirectoryInfo = new DirectoryInfo(potentialPathData.Path);
    
            RecursiveSearchDown(potentialPathDirectoryInfo);
        }
    
        private void SearchPotentialPathCurrentAndUp(PotentialPathData potentialPathData)
        {
            DirectoryInfo potentialPathDirectoryInfo = new DirectoryInfo(potentialPathData.Path);
    
            RecursiveSearchUp(potentialPathDirectoryInfo, true);
        }
    
        private void RecursiveSearchDown(DirectoryInfo directoryInfo)
        {
            if (!directoryInfo.Exists)
            {
                return;
            }
    
            if (_matchedLatestMFMEExePath != null)
            {
                return;
            }
    
            if(_recursiveSearchedDownPaths.Contains(directoryInfo.FullName))
            {
                return;
            }
            _recursiveSearchedDownPaths.Add(directoryInfo.FullName);
    
            foreach (DirectoryInfo subDirectoryInfo in directoryInfo.EnumerateDirectories())
            {
                RecursiveSearchDown(subDirectoryInfo);
            }
    
            if(_matchedLatestMFMEExePath == null)
            {
                string mfmeExePath = FindMFMEExePath(directoryInfo.FullName);
                if (mfmeExePath != null)
                {
                    _matchedLatestMFMEExePath = mfmeExePath;
                    return;
                }
            }
        }
    
        private void RecursiveSearchUp(DirectoryInfo directoryInfo, bool captureLinkedPathsContainingMFMEString)
        {
            if (!directoryInfo.Exists)
            {
                return;
            }
    
            if(_matchedLatestMFMEExePath != null)
            {
                return;
            }
    
            if (_recursiveSearchedUpPaths.Contains(directoryInfo.FullName))
            {
                return;
            }
            _recursiveSearchedUpPaths.Add(directoryInfo.FullName);
    
            DirectoryInfo parentDirectoryInfo = directoryInfo.Parent;
            if(parentDirectoryInfo != null)
            {
                RecursiveSearchUp(parentDirectoryInfo, captureLinkedPathsContainingMFMEString);
            }
    
            if(captureLinkedPathsContainingMFMEString)
            {
                FindDirectoriesContainingMFMEString(directoryInfo);
            }
    
            if (_matchedLatestMFMEExePath == null)
            {
                string mfmeExePath = FindMFMEExePath(directoryInfo.FullName);
                if (mfmeExePath != null)
                {
                    _matchedLatestMFMEExePath = mfmeExePath;
                    return;
                }
            }
        }
    
        private void FindDirectoriesContainingMFMEString(DirectoryInfo directoryInfo)
        {
            foreach (string directoryPath in Directory.GetDirectories(directoryInfo.FullName, "*", SearchOption.TopDirectoryOnly))
            {
                bool containsMFMEString = directoryPath.IndexOf("mfme", StringComparison.OrdinalIgnoreCase) >= 0;
                if(containsMFMEString)
                {
                    _foundLinkedPathsContainingMFMEString.Add(directoryPath);
                }
            }
        }
        
        private void SearchFoundLinkedPathsContainingMFMEString()
        {
            foreach(string linkedPathContainingMFMEString in _foundLinkedPathsContainingMFMEString)
            {
                if(_matchedLatestMFMEExePath != null)
                {
                    return;
                }
    
                DirectoryInfo potentialPathDirectoryInfo = new DirectoryInfo(linkedPathContainingMFMEString);
                RecursiveSearchDown(potentialPathDirectoryInfo);
                RecursiveSearchUp(potentialPathDirectoryInfo, false);
            }
        }
    
        private string FindMFMEExePath(string directoryPath)
        {
            if(!Directory.Exists(directoryPath))
            {
                return null;
            }
    
            if(_searchedPaths.Contains(directoryPath))
            {
                return null;
            }
            _searchedPaths.Add(directoryPath);
    
            DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
            foreach (FileInfo exeFileInfo in directoryInfo.GetFiles("*.exe"))
            {
                if(MFMEExeHelper.IsLatestExe(exeFileInfo.FullName, MFME_20_2_0_0_Hash))
                {
                    return exeFileInfo.FullName;
                }
            }
    
            return null;
        }
        
    
    }

     

    You pisstaker, you really dropped me in it, is this a ploy to shut me up roflmfao.

    Awesome though mate still whatever the fuck it is.

     

    Zippy🤐

    • Like 1
    • Haha 1
×
×
  • Create New...