Scripts No Longer Work From OS
Hello,
My backstory
I have a very strange issue that I cannot figure out. I am not new to MiSTer, I have been using it for many years now, building one of the best devices I have ever owned. Luckily I jumped on this when you could buy a complete setup for a couple of hundred bucks. I’m by no means an expert, especially with my layman code knowledge. But I can normally read code etc, just have no idea where to start writing it. In the past my knowledge was based more around the Retro online game-servers, HyperSpin, Launchbox, AttractMode etc and the Emulation side of gaming/computing. Thus why I love the new breakthroughs with MiSTer.
I’m simply trying to explain I’m not a complete noob with zero experience, but I’m no pro. I can normally figure issues with logic, known issues and of course Google/Discord/These forums. But this one has me stumped. I asked on the Discord and they have been amazing (as always). But due to the way Discord works my overly long (as you can see) explanations can get lost in the scrolling chat. I don’t want to be “that guy” who spams walls of texts or bumps my issue annoying everyone. So hopefully this makes more sense and if has/does happen to someone else, it could help others.
My issue in detail
First off my MiSTer setup is working fine. However the main issue is no scripts will work whilst in the OSD. I have tried all the scripts, none of them trigger anything at all. If I click on any script it simply shows me the Linux terminal for a second or two, then boots me back out to OSD as if nothing happened. If I spam the script over and over on the same script four to five times, it gives me a blinking “_” (underline) in terminal and sticks until I press all buttons on pad and again returns me to OSD as nothing happened.
In OSD I cannot run any updates, configure the system or run any maintenance. It is a pain in the ass, but everything else works perfect. It still plays each core, all games, computers. It connects to the internet no problem and other than scripts works as expected.
What have I done?
First off I thought it was a file structure issue. As the internet works fine I FTP’d into the system. Scripts are all there as expected (/media/fat/Scrpts), can’t see any obvious format/naming/location issues.
Next I thought it may be the scripts being corrupted themselves. I SSH’d in through terminal and tested running scripts, boom, they work.
So next, I thought is could be fixed running an update. I ran update.sh, ran fine, but still no OSD fix. Did the same for update_all.sh and same. I figured if anything was missing or corrupted it would overwrite. Not sure if it has hash/names/file/structure checks. It updated everything etc, but no change to issue.
Not knowing if this can check from hash/data if a script is corrupt. I manually overwritten a few scripts through FTP from (Github) fresh files replacing my own. Exact same issues.
So I thought this could be a weird power issue and somehow Linux could be demanding? As like most of us I have plenty of USB components hanging off the hub. So I had a spare power pack, I switched it, nothing. I then used my “upgraded” power pack from www.MiSTerFPGA.co.uk, unplugged everything but the controller. Still nothing.
Next I reached out for help on Discord. A friendly and helpful person there suggested I should backup my mister.ini file and rerun the system making a new default .ini. But again, nothing
A option I have thought about is a corrupted/broken SD card. Valid option, but from my experience with these all the way back to PSP hacking days is some signs this could be the case. Over the years, I’ve found if a card corrupted with bad sectors or flash it degrades quickly, 90% of the time it’s simply inaccessible. Even if they do work, giving more issues the more it’s used degrading and effecting speed and file systems very quickly until finally inaccessible. I have been reading and writing, using games and systems using/moving huge chunks of data for over a week now. Other than this one issue it’s been fine.
Why not just run it from SSH from now on and stop crying like a baby?
Well, I take my MiSTer to events, parties to show off examples of systems and of course the MiSTer itself. I also try to show how to get things working for others with guides and reviews IRL/YouTube for many things. With all this in mind, if I have to pop up a SSH terminal on another device just to pair a controller it will just confuse everyone. Plus “it’s just not cricket”.
Why not just Mr Fusion and start a fresh install?
From my (layman) knowledge, there is no stable way of just re-installing the main backbone of MiSTer files and folders. My experience from Arcade Front Ends and Emulation is simply downloading a fresh file structure and overwriting an existing file structure will cause more headaches. Hyperlinks leading nowhere, configs and structures no longer logic to my already configured setup.
I could start from scratch. But my setup is 2TB’s. Given only 1TB of this is the SD card, but anyone who has tried to fill a 1TB SD card with data, even in 1 chunk will know how long and annoying this is. As I’m doing this to fix an unknown issue I can’t just duplicate my drive. I would have to re configure each and every core again and upload each system one by one from my backup data file system.
I know, this could be the only option to fix this. But this is the very last option I would do. The whole reason I love the MiSTer so much is the ability to learn, configure, maintain and setup countless computers and consoles learning something every day about said systems. This includes the MiSTer itself. I have gone through each and every system the MiSTer can run configuring and setting them up as I like them. I love to find out, not just what settings to change to make them work. But why the settings make them work, learning along the way.
Maybe it’s just my stupid mind. But to me, reformatting would be like having a leaky tap, then knocking my house down with everything inside it and getting someone to rebuild it from scratch. Sure, my tap works again, but it’s a bit overkill. When I could have learned what makes a tap leak and learn how to fix a washer. Not only saving time and money, but now being able to fix my own tap, other peoples taps and even share my tap fixing knowledge with others. Hopefully building an entire army of tap fixers all fixing together!
So yes, I would love to be able to fix my script folder.
My current system
DE-10 Nano (obviously)
Digital Hat
BliSSter powered Hub
Upgraded power supply
128mb RAM
1TB external SSD
1TB SD card
My actual build is quite vanilla. I have a few unstable builds, just Saturn and N64 .rbf in an unstable folder. Other than that, pretty default I just update_all.sh for the actual MiSTer code itself.
Conclusion
If I had to guess, it’s some random file/config somewhere that has been corrupted/moved/deleted by me or an update/setting that is failing the scripts to launch in OSD (obviously). My issue is I don’t know what triggers after a script is launched. I know it’s the code in the script which I’m guessing would be a direct call to the scripts code making that side of the problem unique. As this effects all scripts even after replacing with new scripts, it must be something in the call from OSD to launch scripts, not the scripts themselves.
I do not know how the OSD works to make calls and although I could go down that rabbit hole. I don’t want to start looking though code on my default build causing more issues. The whole point of this is being an “example” build.
Have I just typed out a passage of war and peace to say “My Scripts folder isn’t working from the OSD, how do I fix?”? Yes, yes I most definitely have. But hopefully it’s just saved many other peoples time asking questions already answered. Plus anyone who Googles this issue may get more info themselves. I definitely talk too much, but if that fixes my scripts folder, maybe helps someone else, maybe finds a bug…. It’s all good.
Thank you for reading my problem and Godspeed!