Atari 5200: New version of Atari800 (Beta): two triggers (Moon Patrol!!!), hat start and exit buttons
-
@Used2BeRX
As requested i have made an updated version with the following modifications:- When player 2 presses the joystick trigger it automatically disables player1's joystick 2nd axis as input for player 2 until restart of the emulator.
- Joystick buttons can be mapped to Numeric buttons 1, 2 and 3 (for i.e. Beamrider, Congo Bongo) .
New config parameters:
SDL_JOY_0_SECOND_AXIS_ENABLED=1 SDL_JOY_0_DIGIT_1=0 SDL_JOY_0_DIGIT_2=6 SDL_JOY_0_DIGIT_3=7
As far as i can tell it all works as intended (or at least nothing major is broken).
Comments or suggestions are welcome. -
@future.child So, just being clear here, all I need to do to for all of this is to add those 4 lines of code into my atari500.cfg? That's amazing.
The 2nd player controller still isn't configured though, right?
Also, you say that the numeric buttons "can be" mapped. They aren't with this addition? How do I map them after adding this code? Thanks!
-
@Used2BeRX All you need to do is replace the binary and add the 4 lines to your config file.
to install the binary :
cd /opt/retropie/emulators/atari800/bin/ sudo cp atari800 atari800.original sudo wget https://github.com/futurechild/atari800-rpi/blob/master/atari800?raw=true -O atari800 sudo chmod +x atari800
2nd player should all work as intended, if there is no player 2 you can use the 2nd axis on the first controller.
If there is a second player he/she can disable the 2nd axis input by pressing the trigger1 button. -
@future.child Okay... well here's my results.
1 player - The right joystick is not responsive to the player's inputs. It is "working" somewhat though because you constantly fire diagonally to the NW.
2 player - I plugged in the 2nd player controller and the controls are split and everything seems to work right on the games that you can actually start up 2 players. Read below for specifics on games.
Robotron 2084 - It's possible to play 2 players, but the controls don't shift to the 2nd player. Both players move with 1 joystick and shoot with 2nd joystick. The original game was likely programmed that way. You don't use #2 to select 2 players in this game. It is an option you can scroll through with the # pound sign.
Beamrider - Left trigger selects 1 player/level. Right trigger selects 3 player/level. No way to select 2 player/level. You can't select 4 players either, but I can't ever imagine a situation in my life where I'm actually going to have 3 other people who want to sit down and play Beamrider with me. :)
Ballblazer - This seems to work perfectly now. I can control movement and ball shot with both players. (you don't press 2 for 2nd player on this game. It is part of the options that you can scroll through before beginning a match when you choose either "human" or a different level of "droid" for either player.
Congo Bongo - Can't select 2 players. 1 player works fine. From what I can tell Left Trigger = 1, Right Trigger = 3. I can't figure out what 2 is mapped to.
Space Dungeon - Right Trigger is definitely 3 in Space Dungeon because it brings up "Demo Mode". Can't figure out how to start 2 players in Space Dungeon though. Left Trigger does nothing. Title screen says "1" for 1 player version, "2" for two players and "3" for demonstration, but above that it says "Press start for 1 player game" so start button selects 1 player.
Maybe something is wrong with my controls in the atari5200.cfg? Could you post your controls scheme part for me to compare mine too? In the meantime, maybe you could try these games on your own and see if you're having any of the same issues.
We're almost there! :)
EDIT: Assuming nothing else changed in your configuration file for the joysticks, I did notice that both the "SDL_JOY_0_DIGIT_1" and the "SDL_JOY_0_ASTERISK" are now both mapped to "0" Maybe there is a conflict there?
I'm kind of baffled about this though. I've tested my controller and I know that LT is "6" for my controller. and SQUARE is "0" for my controller. I would have thought that "2" would work on the LT, 3 on the RT and the conflict would be "1" and "ASTERISK" both sharing the SQUARE button......
EDIT2: I made it so SDL=JOY_0_DIGIT_1=12, which is the "Home Button" on my joystick Now what happens is the LT and Home are for 1 player, and RT is still for the number 3. I think possibly you coded in the number 1 twice and didn't code in the number 2?
-
@Used2BeRX
My button mapping is like this (ps3 controller):SDL_JOY_0_DIGIT_1=0 // triangle SDL_JOY_0_TRIGGER1=1 // circle SDL_JOY_0_TRIGGER2=2 // cross SDL_JOY_0_ASTERISK=3 // square SDL_JOY_0_HASH=4 // left shoulder SDL_JOY_0_OPTION=5 // right shoulder SDL_JOY_0_DIGIT_2=6 // left trigger SDL_JOY_0_DIGIT_3=7 // right trigger SDL_JOY_0_SELECT=8 // select SDL_JOY_0_START=9 // start
I did just now make a new version because the hash and option buttons no longer functioned correctly.
Installation procedure is the same as described above.
Maybe this will also fix a few of your issues as well. -
@future.child This build still has the robotron problem. You just automatically fire to the NW in both robotron and space dungeon, and the 2nd player just moves to the NW on ballblazer. Your old build the other day did not have this problem.
I'm going to test the 2 player stuff on the other games and see if that's fixed. I'll edit this post with that testing if you haven't responded yet.
-
@Used2BeRX I just found out numerical input 1 and 2 is not working in space dungeon atari 5200 mode.
I'll see what's going on because in atari 400/800 mode they work correctly, as does 3 in both modes.As for robotron, controller input is working correct for me, are you sure your analog stick is center calibrated ?
I remember having issues with my previous old controller not keeping it's center calibration while functioning correct on the ps3.
I don't know if there's a calibration utility available for retropie ?And afaik for robotron joystick1 is for movement and joystick2 is directional fire, even in 2 player mode.
-
@future.child Yep. That makes perfect sense. I'm using 5200 carts in 5200 mode. 2 doesn't work at all. For whatever reason, the left trigger does work for number 1, but that's not what you intended. Number 3 does work on all games with the right trigger though.
Nevermind about the Robotron controls not working. User error. I somehow reverted to an old controller config that didn't even have the "HAT" line in it. I don't know if just missing that line created the problems or if it was something else, but it's working as designed again.
-
@Used2BeRX Great, I'll see if i can have the numerical buttons sorted.
I think i found the cause (i mapped the numerical buttons to the atari keyboard ....which the 5200 doesn't have).
A new version will be available sometime tomorrow. -
@future.child Sweet man. Looking forward to it. I'll have time to test it out and let you know how it works after you post it. I'll keep a lookout. :)
-
@Used2BeRX I just uploaded the new version with fixed numerical buttons 1-3.
They should now function correctly on both the 400/800 and 5200 (they at least do so for me).
Installation procedure is the same as described previous. -
Perfecto!
2nd player joystick hijacked with just one controller plugged in for Robotron 2084 and Space Dungeon (and also Ballblazer). It splits perfect when you have the 2nd player joystick plugged in. (I didn't test plugging it in mid game, but for sure when you start with both plugged in it works).
1, 2 and 3 are now working as designed and were tested in Beamrider, Congo Bongo and Space Dungeon.
All of my testing was for the Atari 5200 emulator. I'm not personally using the Atari800.
Thanks so much man!
EDIT: I don't know how you guys go about these things in here, but my vote is that your update as it is now should be part of the official updates for the emulators. I don't see any downside to it, and it's so much better with these additions.
-
@future.child Well...... care to try one more?
Are we able to program controls to pressing the sticks down?
I'm going through testing games now and already noticed that in order to play Defender you need at lest 4 mapped. 1=1 player easy, 2=1 player normal, 3=1 player hard, 4=2 player easy, 5=2 players normal, 6=2 players hard. Damn lazy programming... ;)
I was thinking about Miner 2049er too. I'll have to play it again, but I think there is a level where you need 4 and 5 for the elevators. Even more of a bummer, I think you need 1-9 and 0 for the last level, so there would be no way to play that game without a keyboard :(
Was just wondering if we could at least map 4 and 5 to the joystick presses. That should cover just about every game except for Miner 2049er and weird ones like Space Shuttle that nobody would probably ever play anyways.
-
@Used2BeRX Thanks for testing and your upvote.
I doubt plugging 2nd controller mid emulation will work as detection only takes place at startup.
Removing controllers mid emulation is a bad idea as the emulation crashes (taking out emulationstation with it).As for buttons for numerical input 0 and 4-9, i can add them but there are limits to how many physical buttons are present on the controller (for now i have two (thumb)buttons left on my controller).
I think it would we easier to have a (numerical)keyboard connected to the pi and use that for those few titles that need them.And configuring the controls by pressing sticks (buttons ?) down is out of the question as i would have to add a lot of code and incorporate it into the menu, it is far easier to edit the config file or use something like the python script jfroco wrote.
-
@future.child No problem man. And I'm serious, if it's possible, your updates should be part of the official package. I'm all the way up through Meteorites on the official 5200 library testing and everything is working great. Everybody who goes through the trouble of adding this emulator to their setup should benefit from your upgrades.
I still think it might be nice to put 4 and 5 on the thumb buttons that we're not using, but other than that I can't see any other things.
I'm assuming that there is no way that anybody could fix the controller sensitivity on this emulator, right? I don't see any options for it in the emulator. Here's a list of games that there are problems with that: Castle Crisis, Centepede, Galaxian, Kaboom!, Missile Command, Pole Position, RealSports Tennis, Super Breakout.
There are also some issues with Pengo and Quest for Quintana Roo. I'll have to go back to them and let you know what they were. I can't remember and I didn't put it in the notes. I'll update this post if you haven't replied.
EDIT1: Yeah... I'd LOVE to see 4 and 5 added. I just played to level 3 of Miner 2049er and there are 4 elevators and you use numpad 1-4 for them. I believe that this is the highest the numbers in that game go until the 10th level. I only ever got there a few times when I was a kid, so I don't think a lot of people would get that far. I'd just have to mention to my brother that if he gets to the last level he better have a keyboard.
EDIT 2: Pengo, Pole Position, Galaxian.... Somebody I know who worked on the XBox fixed these but had this to say about the Atari800 emu: This is due to the games incorrectly detecting the presence of a trackball and switching into trackball mode. Galaxian has the same problem I t hink, but it's not as noticeable. It is a problem with the atari800 core. (The problem with Galaxian is that sometimes when you start a new game the controls are all messed up until you die once. You have to reboot and keep your fingers crossed, or just wait till you die 3 times and start a new game).
EDIT3: Nevermind about Quest for Quintana Roo. Any game programmed lousy enough to need 6 buttons to do basic functions is just going into my list of non-working games in that category along with RealSports Football and Space Shuttle.
-
@Used2BeRX I'll add numerical 4 and 5 and map them to left and right thumb.
As for the controller sensitivity, the analog sticks have a range from -32767 to 32767, where 0 is center position.
The emulator is written so that dead zone is -10000 to 10000 (or about 1 third) and ignored.If your center is off more than 10000 your controller requires calibration or is defective.
can you post the results of : jstest /dev/input/js0If any axis is above or below 10000 it will register as movement in the emulator, i have not found a way to calibrate controllers within retropie (but then again haven't been looking very hard either).
-
@future.child Thanks for adding 4 and 5. (You don't think anything would change where I should re-test all the games, do you? I'm just about done re-testing all the 5200 games now).
You're talking over my dumb head now with the sensitivity stuff. I can actually control all of the games, as in things move the direction I want them to move and nothing automatically pulls in any direction, so my controller should be fine. It's just way too sensitive, so none of the games I listed are actually playable.
Any ideas about the trackball issue thing for Pengo, Pole Position and Galaxian?
-
@Used2BeRX when you say too sensitive, you mean you want a larger dead zone ?
I think i can add a config parameter which allows for a dead zone of 2 thirds instead of the default 1 third. -
@future.child It's hard to explain.... let me give a few examples by game.
Missile Command - Pretty much any direction you press the cursor is immediately at the edge of the screen in that direction. You are unable to slowly move the cursor anywhere in the middle of the screen.
Super Breakout/Kaboom! - Same thing pretty much, except it's only on the horizontal axis. You're almost immediately left or right whichever way you press the joystick.
Centipede - The only game in the whole bunch that could be considered barely semi-playable. You can go all directions like Missile command, but at least it's a little slower so you can see the movement instead of the immediate cursor to the end of the screen movement like in Missile Command.
EDITED TO ADD: Just FYI, I've completed testing on the official 5200 games and there are no issues other than the ones we had before that I've already mentioned. So good news is you didn't break anything.... at least on the 5200 :)
EDIT2: BTW... did you notice this thread I made? https://retropie.org.uk/forum/topic/10406/making-premade-gamelist-xml-with-xtra-media-collections/5
I put a release for the 7800 with a preconfigured XML and tons of artwork and videos and other Xtras. I'm going to put one together for the 5200 as well when we're done here and I'm finished testing games. (No Roms/bios included). I'll have datfiles in them to build a romlist that will work with the setup, although for the 5200 you'd need to rename them by hand likely because all of my roms were headered to automatically run with Allitra.
Not sure if you know anything about scripting XML stuff, but you seem handy with code. If you could help automate the process for me I could start working on larger systems like the NES and SNES. (Read the thread if you're interested)
-
@Used2BeRX The new version has been uploaded with numerical 4 and 5 support.
Same installation procedure, new config parameters:SDL_JOY_0_DIGIT_4=10 SDL_JOY_0_DIGIT_5=11
As for testing: if it works in one rom it will work for other roms as well, so no need to test them all, just pick a few at random.
For the sensitivity problem, I get your point, the cursor movement is way too fast for gameplay.
I have no real experience with the 5200 (i was a 800xl kid back then).
Was missile command playable with digital joystick or did it need analog input (trackball, mouse, analog joystick) ?
I think the 5200 had a digital joystick, but am not sure.
On the 800xl missile command is well playable with digital controller.I do not think this is easily fixed, i will dig deeper in the code and see what i can do.
In the meantime you can map a mouse input to joystick1 to have it playable.Edit: I just found out the 5200 had analog joysticks, this emulator uses a mouse as input for this.
I think it will be quite difficult to have native analog controls.
I'll keep digging in the code too see if it can be done, don't hold your breath as it may take a while (if ever).
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.