Daphne . Arcade joystick orientation wrong.
-
@bbrueck In
jtest
, press the button you want to use and note its number. As it is described indainput.ini
, you'll have to add1
to this number (button0
injtest
becomes1
indainput.ini
and so on).In every line unter
[KEYBOARD]
the third number is the controller button number. The two numbers before that are keyboard codes.For example, to map button 3 (jtest) of your controller as the first start button in Daphne, the line would read
KEY_START1 = 49 0 4
, with 49 and 0 being irrelevant keyboard codes for that function. -
@bbrueck said in Daphne . Arcade joystick orientation wrong.:
Total Noob here, my apologies if I'm asking in the wrong place. After an hour of internet sleuthing, this thread seems to be most active around this issue. Ive just got into the retropie world. Have a Pi4 running a 64g virtualman image file. Daphe Games all load fine. Im trying to configure my arcade stick to work with them. Im using a madcatz xbox 360 arcade stick. Ive got the dainput.ini file open, and no clue what the numbers should be for this stick. running jstest only shows -32767/32767 for the stick and all the buttons only show as on/off. Where do I go from here? I have not updated anything from the original image file I loaded. Thanks for any help!
As @Clyde mentioned - that's all you need to do. Look carefully at your
jstest
output as you hit/hold the buttons, you'll see the button number that's the button corresponds to. Also the +/- 32767 is the expected output for the X and Y axis of the joystick, no concerns there.Now - there is also a nuance with the stock Daphne emulator wherein the joystick support is limited. It will, by default, assign the first joystick and it's two axes for control for the up/down/left/right -- this cannot be modified.
More importantly, you do not need to assign joystick values for the key up/down/left/right in your
dapinput.ini
(i.e. the third number) - the emulator will automatically assign based on the joystick it finds.The forked version in @pjft's repo that's discussed above implements better joystick support and addresses the analog/digital issues that are often faced with generic DragonRise USB encoders.
For example, here is my
dapinput.ini
- I use a DragonRise generic USB encoder with a Sanwa stick & buttons. Works like a dream. As you can see, the Key Up/Down/Left/Right are not assigned, as the emulator automatically assigns the axis inputs.[KEYBOARD] KEY_UP = 273 114 0 KEY_DOWN = 274 102 0 KEY_LEFT = 276 100 0 KEY_RIGHT = 275 103 0 KEY_BUTTON1 = 306 97 1 KEY_BUTTON2 = 308 115 2 KEY_BUTTON3 = 32 113 6 KEY_START1 = 49 0 10 KEY_START2 = 50 0 0 KEY_COIN1 = 53 0 9 KEY_COIN2 = 54 0 0 KEY_SKILL1 = 304 119 0 KEY_SKILL2 = 122 105 0 KEY_SKILL3 = 120 107 0 KEY_SERVICE = 57 0 0 KEY_TEST = 283 0 0 KEY_RESET = 284 0 0 KEY_SCREENSHOT = 293 0 0 KEY_QUIT = 27 113 7 END
Give that a shot and let us know how it pans out. The easiest will be getting the buttons working, once you've got that we can work on the joystick control. In general the most common joystick issues are:
- Wrong orientation (right is left, up is down, etc..)
- Joystick input not consistently detected (i.e. if you try MACH3 and hold a direction, you don't move continually in that direction or in DL/DL2/SA it doesn't always pick up your input)
Regardless, I would strongly suggest replacing the emulator with the @pjft's version and compiling from source and it will solve issue #2 above if you run into it.
Solving #1 is a slightly different matter and will be joystick / encoder dependent. In general when using a a generic USB encoder, it comes down to ensuring that the wiring from the joystick aligns with the USB encoder (i.e. AU AD AR AL VDD). For most Sanwa / Sanwa clones this involves rotating the joystick or switch plate to ensure it aligns.
-
Thanks for help. I think its working now! Dragons Lair seems to work, but I'm wondering if my rom file messed up. The game plays, but doesn't show me any arrows on the screen. Its also missing the beginning scene on the bridge where your fall through and use your sword. Are there different versions of this game, or are there launch options that I can setup? Thanks again for getting me this far!
-
@bbrueck The ROM is playing as expected, Dragon's Lair and Space Ace don't actually have arrow overlays like Dragon's Lair II or other Laserdisc games. You need to look for the flashing yellow cues for which direction/action. So there's no options that'll give you arrow/action overlays.
Next, there are actually different versions of the ROM - the Dragon's Lair Enhancement 2.1 includes the drawbridge sequence. You're likely using another version. I believe the original arcade version didn't include the drawbridge scene but was included in various home versions.
You can read up more on the enhancements on the Dragon's Lair Project site: http://www.dragons-lair-project.com/tech/enhancements/dle.asp
Now the one other thing I'll add for Dragon's Lair and Space Ace is that you can (and should) enable the on-screen scoreboard, as both these cabs originally had external scoreboards.
Daphne uses a
[rom].commands
file to pass command line arguments to the emulator that can set various options and dip-switch settings (i.e. how many credits per play, number of lives, etc...)It's highlighted in the RetroPie docs for Daphne:
https://retropie.org.uk/docs/Daphne/These files are placed in the ROM folder:
/home/pi/RetroPie/roms/daphne/[rom].daphne/[rom].commands
where [rom] = dle21, lair, sae, lair2, etc...
for Dragon's Lair and Space Ace to enable the on-screen scoreboard, the
.commands
file needs to contain:-useoverlaysb 1
You can further refine settings per game by setting dip-switch parameters with the
bank
options. These options are dependent on the ROM version used for a game.For example, I use the following for Dragon's Lair (2.1) (rom: dle21)
dle21.commands:
-blank_searches -min_seek_delay 1000 -seek_frames_per_ms 20 -useoverlaysb 1 -bank 0 11011000 -bank 1 00110111 -sound_buffer 2048 -noissues -noserversend
A description of the command line parameters is available here:
http://www.daphne-emu.com/mediawiki/index.php/CmdLineIn terms of the dip-switch settings (i.e. bank 0 and bank 1) - this sets it up with 1 coin per credit, 5 lives per credit (instead of the default 3), and a few other options. These settings are ROM and game dependent. I use Daphne on my PC to set up the game parameters as I want them then transpose the command line options from Daphne on my PC into the
.commands
file for the respective game.Glad to hear you're making progress and I hope the above helps. Let me know if you've got any questions.
-
@saturnx said in Daphne . Arcade joystick orientation wrong.:
I believe the original arcade version didn't include the drawbridge scene but was included in various home versions.
That, and DLE 2.1 plays the scenes in a more logical order, e.g. the drawbridge first, then the entrance, then the more deeper rooms. As far as I remember, the original arcade version had a more random order.
-
@saturnx WOW! Thank you so much for sharing your knowledge. Also fun to learn so much about the history of these games! So I've followed your comments up to the part about launching the 2.1 version of the game? I'm currently just selecting the game from the Virtualman interface.
Thanks again for your help! -
@bbrueck Glad I could help - spent a bit of time getting Daphne and Singe up and running on my arcade cab and wanted to share what I've learned as there doesn't seem to be a lot of discussion on laserdisc emulation.
That said - in terms of my post, I was suggesting that you enable the On-Screen Score Board, since I assume that when you start Dragon's Lair there's no score/credit info on screen in the top right/centre of the screen?
You can enable that by creating the
dle21.commands
orlair.commands
file (depending on which version you're running) and and placing it in the proper location. (See the Daphe documentation I've linked above). You can do this either through SSH or connecting to theroms
network share and taking a look under thedaphne
folder.The folder structure should look like this (linked in the Daphne docs above):
roms |-- daphne | | (The folder below holds a laserdisc...".daphne" | | tells emulationstation to add this to the menu, | | and "dle21" tells daphne to use that game engine) | | | |-- dle21.daphne | | |-- dle21.commands (Optional extra command- | | | line params!) | | |-- dle21.txt (Framefile) | | |-- lair.m2v | | |-- lair.ogg | | | | (All roms go into this roms folder) | +-- roms | +-- dle21.zip
Now you mentioned you're running a 3rd party image - so unfortunately I can't help much further as I can't say for certain what has / has not been modified from a clean / stock image of RetroPie. Given the level of customization available with RetroPie, there's no way for me or anyone on this forum to know what settings/parameters, etc.. have been changed so the information that I and others provide may not work as expected or at all.
I'd really recommend installing a fresh stock image and learning about how to setup a RetroPie install so you can troubleshoot/customize as you so desire.
Let me know if you have any other questions and I'll try my best to help you out.
-
@pjft I have another build error happening. Any idea what's causing this? I'm getting it both running command line on the Pi and via SSH.
This is on a 3A+ running 4.7.1. Tried updating scripts and still got the same error.
g++ -mcpu=cortex-a53 -mfpu=neon-fp-armv8 -O2 `sdl-config --cflags` -DUNIX -DLINUX -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DUSE_OPENGL -DRPI -DSTATIC_VLDP -Wall -fsigned-char -c m80.cpp -o m80.o g++: fatal error: Killed signal terminated program cc1plus compilation terminated. make[1]: *** [Makefile:18: m80.o] Error 1 make[1]: Leaving directory '/home/pi/RetroPie-Setup/tmp/build/daphne/src/cpu' make: *** [Makefile:71: sub] Error 2 /home/pi/RetroPie-Setup pi@retropie:~/RetroPie-Setup $
-
@jchannell I very much wouldn't, but if I had to venture a guess I'd guess the compiler is running out of memory. Any more details, RetroPie version, how are you compiling it?
Increasing the compiler swap might help, if that's the issue. @mitu thoughts?
-
@pjft said in Daphne . Arcade joystick orientation wrong.:
@mitu thoughts?
Yeah, insufficient memory alright. Any reason to install from source when a binary is available ?
-
@mitu I will install from any source that gets Daphne working with my joystick. :D
Seriously though, I'm far from a Linux expert. I'm just following these steps in command line as outlined above:
cd /home/pi/RetroPie-Setup/ sudo ./retropie_packages.sh daphne clean sudo git clone https://github.com/pjft/daphne-emu/ tmp/build/daphne cd tmp/build/daphne sudo git checkout retropie cd /home/pi/RetroPie-Setup sudo ./retropie_packages.sh daphne build sudo ./retropie_packages.sh daphne install sudo ./retropie_packages.sh daphne configure
But it hits that spot and fails every time.
Here are the system stats:
.***. Monday, 14 March 2022, 21:40:58 ***** Linux 5.4.72-v7+ armv7l GNU/Linux `***' |*| Filesystem Size Used Avail Use% Mounted on |*| /dev/root 30G 4.7G 24G 17% / ..|*|.. Uptime.............: 0 days, 00h38m28s .*** * ***. Memory.............: 90676kB (Free) / 245228kB (Total) *******@@** Running Processes..: 133 `*****@@**' IP Address.........: 10.0.0.34 `*******' Temperature........: CPU: 54°C/129°F GPU: 54°C/129°F `"""' The RetroPie Project, https://retropie.org.uk pi@retropie:~ $
-
@pjft Tried the instructions here to increase the swap file, but no luck. https://wpitchoune.net/tricks/raspberry_pi3_increase_swap_size.html
EDIT: Turns out I edited the wrong part of the file. Just got past the install hump, so I'll troubleshoot further as I go. Thanks for all the help!
-
@pjft Now that it is finally installed, I'm still getting the same joystick issues on Dragon's Lair, even with changing the .ini file.
Just to check, does your repo have the changes that Grant made? The main reason I was recompiling was because his GitHub no longer appears to be active.
-
@jchannell My repo does, but without knowing exactly what issues you're facing, it's hard to understand what you're going for :)
Use this branch:
-
@pjft Understandable. Probably just got lost in all of the troubleshooting. :D
I'm using a Dragonrise USB encoder and a Sanwa joystick (5 pin single cable) and getting the same wacky joystick routing. Going to try installing from that repo. Thanks!
EDIT: Actually, I'm not entirely sure what I'm supposed to do with Grant's code here. If I follow the steps I outlined, should that script have been installed or is there something else I need to do?
-
@pjft I was able to install from that branch using this string:
cd /home/pi/RetroPie-Setup/ sudo ./retropie_packages.sh daphne clean sudo git clone --branch grant2258-controls "https://github.com/pjft/daphne-emu.git" tmp/build/daphne cd tmp/build/daphne sudo git checkout retropie cd /home/pi/RetroPie-Setup sudo ./retropie_packages.sh daphne build sudo ./retropie_packages.sh daphne install sudo ./retropie_packages.sh daphne configure
But the controls are still not working correctly. Up and down seem to be reversed, and it's hard to tell if that's the same with right and left. I'm about to rip my hair out here.
-
@jchannell I genuinely don't quite know what to make of this - knowing that there isn't any logging in place to be better able to troubleshoot it, and not knowing if the issue is with the joystick setup, with daphne, or something else, it's very much a shot in the dark, apologies.
In your instructions, all seems reasonable, though I'm wondering why are you checking out the "retropie" branch? That seems off - you want the grant2258-controls one.
I could recommend jstest and such to determine what values are being received by the system, and then adjusting the controls file, but if none of this helps, I'd probably recommend looking into Hypseus, which is under more active development and has better controls support from my understanding: https://retropie.org.uk/forum/topic/18505/new-hypseus-and-lr-daphne-to-add-on-retropie-setup/472
-
@pjft said in Daphne . Arcade joystick orientation wrong.:
In your instructions, all seems reasonable, though I'm wondering why are you checking out the "retropie" branch? That seems off - you want the grant2258-controls one.
Oh... that is likely why! This is my first time working with this kind of compiling, so I wasn't sure what that code meant. Will give that a shot next.
Also, just wanted to say thank you so much on helping out here and putting up with people like me struggling.
-
@jchannell By all means. Do let us know how it goes.
-
@jchannell said in Daphne . Arcade joystick orientation wrong.:
But the controls are still not working correctly. Up and down seem to be reversed, and it's hard to tell if that's the same with right and left. I'm about to rip my hair out here.
Hi @jchannell , if you try hypseus (in RetroPie-Setup 'exp ' packages)
You will have the ability to swap the joystick axis directions. This was not possible in the original Daphne without physically inverting the joystick.
Take a look at the example config file here:
https://github.com/DirtBagXon/hypseus-singe/blob/master/doc/hypinput.ini
You probably want to play with the 4th field in the top four AXIS options. Altering the '+' and '-' to suit.
KEY_UP = SDLK_UP 0 0 -002 KEY_DOWN = SDLK_DOWN 0 0 +002 KEY_LEFT = SDLK_LEFT 0 0 -001 KEY_RIGHT = SDLK_RIGHT 0 0 +001
Edit: Looking back at this thread it seems that the work-a-round was to use the D-Pad rather than analog axis. Using the above hypseus config, you should be able to adjust/assign either: 3rd field for D-Pad, 4th field for analog axis.
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.