zerojay / RetroPie-Extra

A collection of unofficial scripts for adding more emulators/ports/games to RetroPie.
MIT License
313 stars 104 forks source link

Joystick Support for RoTT #92

Closed dudleydes closed 4 years ago

dudleydes commented 8 years ago

I am not able to select Joystick Enabled from the Option menu. Are joysticks/gamepads supported in RoTT?

If it's not possible, then I have found another source which claims to do so.

https://github.com/JohnnyonFlame/RoTT

I am happy to test running your script with the new source. Would it be just a case of changing lines 22 and 23 to the following?

git clone https://github.com/JohnnyonFlame/RoTT.git

zerojay commented 8 years ago

Not exactly. I'll update the script.

zerojay commented 8 years ago

This is going to take a lot more effort than just swapping the source as the source itself has fundamentally changed. I have to rewrite the script to get it to work with this repository.

dudleydes commented 8 years ago

I've tested the rott-darkwar and rott-huntbegn binaries built from the first version of your script and all I'm getting is a black screen. There is sound but no picture. The binaries do recognise a joystick (IN_Startup: Joystick Present is reported in the console) which the binaries built from icculus source did not.

I notice that JohnnyonFlame's other repos are mainly ports for the GCW Zero, then I noticed that there have been GCW Zero modifications made to the source code. The repo isn't labelled like the others otherwise I wouldn't have made the suggestion.

If it's possible to build working binaries for the pi from this repo, then it may be better to put on your to-do list. There's no rush.

zerojay commented 8 years ago

Good news: I know why you had problems with the executables. By default, the github repo has its default CFLAGS set for the GCW Zero. After a 'make clean', the CFLAGS are much better for us, the game runs, joysticks are seen and usable and the game runs beautifully.

I will have to make a few tweaks to the install script as it appears that I can no longer define a directory for data but that should not be a big deal. I'll update this script and throw it into the master branch probably sometime tonight.

Thanks for finding this and for your patience while I worked on other things in the meantime.

dudleydes commented 8 years ago

I am still struggling to build a binary that gives me a picture.

I've tried the latest script in your rott branch, just the source and build functions using retropie-package.sh script before copying the binaries to a folder in my home folder that I'm using for testing.

I've tried to build from source using the command line, using make clean, then make, even explicitly setting the following cflags before running make clean.

export CFLAGS="-O2 -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard"

What am I missing?

zerojay commented 8 years ago

I'm not sure what the issue is. I did drop my thinking that there was a CFLAGS problem, however. I don't know, but it just works for me here. I'll try to get back on this shortly.

zerojay commented 8 years ago

I wonder if your issue with the screen is because of the screen resolution change made in that fork for the GCW Zero.

In rott/winrott.c, int iGLOBAL_SCREENWIDTH = 320;//bna val 800 int iGLOBAL_SCREENHEIGHT = 200;//bna val 600

Change them to width of 640 instead of 320 and height of 480 instead of 200, recompile and see if that fixes your graphics issue.

dudleydes commented 8 years ago

Thanks for the suggestion. By editing the screen resolution in the config file, I was able to get a picture at 320x200 but not at 640x480. I tried your suggestion of editing rott/winrott.c and recompiling but that didn't seem to work either.

I then checked the commits and found that earlier versions of the repo were available. I decided to build binaries from one of these to see if something got broken along the way. I tested the repo as of 2 Jan 2013 and it works. I am playing RoTT at 640x480 with my PS3 controller! The resolution of the game seems more consistent with the original rather than being stretched to fill the screen. Also the earlier repo makes it possible to play with a PS3 controller as the latest version seems to have the accelerometers enabled.

A minor issue is that a lot of text gets written to the console on launch. I'll see if there's a way to quieten the output.

I understand you will be away for a while so good luck with your move and new job. I'll test the other early repos to find out where things got broken. If necessary, I'll create a fork of working code and finish the scriptmodule. Hopefully I'll have put in a pull request for when you return. Thanks for the great work.

zerojay commented 8 years ago

I stayed looking into this a bit last night. I have a repo that has the gcw changes rolled back. Maybe give it a shot?

http://github.com/zerojay/rott/

dudleydes commented 8 years ago

No good, I'm afraid. It's one of these commits that's breaking things.

dudleydes commented 6 years ago

I have managed to add joystick support for RoTT using the Icculus port and xboxdrv so, if there's no demand from other users, this issue can be closed.

zerojay commented 4 years ago

I got this working with joysticks. There's just some issues with building retail vs. shareware which I think I will split into two scripts and also some minor screwing around with data file placement but I shouldn't be far from submitting something that works.

zerojay commented 4 years ago

Removed the old rott.sh script. Added rott-darkwar and rott-huntbgin. Includes joystick support.