On the Atariage forum i've read that someone had the same problems and solved it by upgrading his hardware from a pi3 to the pi4. On the other hand I downgraded the retropie version to the 4.5.1 and now everything works great. I'm no expert but i can guess that 4.7 is pre-compiled for the pi4 so on a pi3B+ is buggy. The 4.5.1 version of retropie is the last one made explicitly for the pi3. Since all the others emulator works reasonably well, i think i'll stick with it.
All this is doing is running the right command, explicitly getting input from the tty, and tying file descriptors to the log.
I ran the command from the console and it worked fine without redirecting STDIN/STDERR. It also worked fine just redirecting STDOUT (fd 1). But every time I redirected STDERR (fd 2), I got a segmentation violation.
Not sure what exactly the widgets have to do with this, but apparently they do. If anybody wants a strace of this I would be happy to provide.
I hope this is helpful, and again, thanks for the fix!
@Muteki correct. These files are mostly copyrighted (there's a few cases where vendors have permitted distribution), so we can't install them automatically.
Some systems run without. Eg. Zx spectrum, as the bios is included due to being permitted by the copyright holder (in this case Amstrad). Or because they use a replacement copyright free bios. Eg. There is one for the Amiga for example.
How are you changing the emulator configuration ?
Since you're using the lr-atari800, there's a Core option that sets the machine type, when you change that option it should be automatically saved. Is this how you change the machine type ?
Just wanted to chime in here and say that I had this same exact problem, and this same exact solution fixed it for me. And the weird thing is that I definitely had 5200 stuff working previously. This problem only just started happening for me. Very weird.
Atari 5200 controllers aren't implemented at all. There is no analog input into the system.
If you use something with analog, it's converted to digital first, which is why so many games don't work properly (Super Breakout, Missile Command, etc)
Basically it's an Atari 800 emulator (Which had digital 2600-style joysticks and a keyboard) with some 5200 stuff slapped-on.
If you have a keyboard attached, Numbers work from the keyboard. For instance, LEO in countermeasure is 123.
lr-atari800 issues are almost always challenges with quirks of the original hardware, especially the fact that there are many versions. This is where all the things like cart autodetect for 5200, dealing with alternate versions of the OS, dealing with BASIC or not, etc, all come from. You actually run into many of these on the actual original hardware too (the infamous "Translator disk" for example).
Basic stuff like controls is now pretty sorted, as of last year, except for the 5200's analog stick in a small handful of games.
This isn't to say that there aren't some emu issues -- there definitely are, especially with the slightly older version of the mu that Retroarch uses.
Things like Atari 5200 cart autodetect don't work reliably because the person who coded it originally tied the autodetect table to filename, for example. But given that there are many alternate dumps of ROMs with and without headers, even a checksoum solution would need to be pretty extensive.
I strongly suggest people who are interested in Atari 8 bit emulation take a look at the guides in my signature, and in particular use the script I wrote. It makes most everything pretty seamless on the computers, and walks you through building a 5200 library that just loads without fiddling with anything.
@jthomas5150 If you press F4 in emulationstation then you can quickly find out how your keyboard is configured (by trial and error). For example on my big keyboard almost none of the symbols on my keyboard coincide with the symbols that appear on my tv screen when I press them.
@mitu Thanks for replying. My gamepads mirror each other, and have the same number of buttons installed and mapped to the same keys. I'm aware that the gamepads won't work correctly if there are any differences at all. In fact, I had to add two extra buttons to the player 2 USB encoder in order to make it mirror the player 1 USB encoder precisely. Initially, we had installed two extra joypad 1 buttons to serve as a hotkey/escape and as a pause button, but they wouldn't work without identical buttons set up in joypad 2. The joypad 2 buttons are actually inside of the cabinet, because there are no holes for them on the control panel. I've already used jstest many times, too. So, I can promise that the two joypads are configured identically, and I haven't set up any player 1 buttons in the 800/5200 emulator that map differently from player 2. I know better.
I really do think the problem is that the Atari 5200 emulator isn't yet set up to recognize multiple fire buttons for player 2. I found a discussion on this forum from May 2016 entitled "Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol), hat start and exit buttons" where user jfroco discussed a new port of Atari800 that added trigger1, trigger2, asterisk and hash support for joystick buttons, but only for player 1. A later post from user Veramacor (April 2017) detailing atari800.cfg settings also reflected trigger1 and trigger2 support on Joystick 0, but not Joystick 1. Then, in May 2017 user Used2BeRX asked user future.child if they would be able to properly code the player 2 controller to allow two-player games. It's not clear from the subsequent conversation that this ever got done in the way I'm discussing here.
I'm guessing from this discussion and my experiences this weekend that the Atari800 emulator must still be in that same developmental place, because when I tested the 5200 Moon Patrol ROM (I do own an original cartridge), sure enough, player 1 could use the second trigger (button X on my arcade cabinet config), but not player 2. The X button did nothing for player 2. Again, I'm not having this problem in any of the other emulators I'm using with Retroarch (MAME2003, MAME 2003-Plus, Final Burn Alpha, MAME2010, Stella, CoolCV, or the NES and SNES emulators). On those emulators, all buttons work the same for both gamepads. There are no discrepancies.
However, if someone can verify that they are able to use both fire buttons for both player 1 and player 2 in Atari 5200 Moon Patrol (one to fire, one to jump), RealSports Football, etc., I will be more than happy to try to get it working for Player 2 in Retropie. I just haven't seen anyone confirm that there is trigger1, trigger2, * and # support for Player 2 in the 5200 emulator. The only evidence I've found is that there isn't such support, and I don't want to spend days futilely trying to set up something that isn't actually supported. In fact, a post from three months ago said that the controller upgrades future.child made from 2016-18 aren't part of the current libretro version of atari800. (That thread also suggested that RealSports Football is viewed as a lost cause because of its need for keypad input.) Maybe the best way to ask this question is, does Moon Patrol work properly for player 2 on the 5200? Can you jump and fire?
The gui isn't letting me map keys to buttons - I can map controller buttons to key strokes but I think the 5200 emulator is looking for input from a keypad and not a keyboard - I'm really new to this, so I'm probably missing something simple.