(REQUEST) Add Daphne Singe emulator?
-
First install the correct tools and libraries:
sudo apt-get install git make build-essential libasound2-dev libcaca-dev libglew-dev libglib2.0-dev libogg-dev libpcre3-dev libpcre32-3 libpng-dev libpng-tools libpulse-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev libslang2-dev libvorbis-dev libxi-dev pkg-config
Checkout source code:
cd ~ git clone https://github.com/DirtBagXon/singe.git singe
Enter directory and compile:
cd singe cd src/vldp2 ./configure --disable-accel-detect make -f Makefile.linux cd ../game/singe make -f Makefile.linux cd ../.. make cd .. mkdir -p ~/.daphne/singe ~/.daphne/sound ~/.daphne/pics cp pics/singeme.bmp ~/.daphne/pics/ cp pics/gamenowook.bmp ~/.daphne/pics/ cp sound/grumble.wav ~/.daphne/sound/
If issues, post the results....
If looks good, run from ~/singe
./run.sh timegal
Again post the results if there are issues.
As stated above your games should be in the directory based on the user you are running the run.sh scripts as:
~/.daphne/singe/
Also, for games Time Gal and Ninja Hayate, please refer to the comments here:
https://github.com/DirtBagXon/singe/tree/master/bytecode
For your light gun and other settings, create a singe specific config file as:
~/.daphne/singeinput.ini
It can mirror many of the daphne config options.
-
@DirtBagXon Thanks for this - only now did I see that you had put this together. Awesome work.
A remark: passing a path with capital letters as the home dir will fail when loading the game script:
Setting alternate home dir: /home/pi/RetroPie/roms/daphne /home/pi/retropie/roms/daphne/singe/timegal/timegal.singe Script /home/pi/retropie/roms/daphne/singe/timegal/timegal.singe does not exist.
Notice RetroPie being capitalized when passing it, but then lowercase.
It moves past this if I just symlink from ~/.daphne, but thought I'd share.
Thanks.
@Darksavior still no Road Blaster, I take it? We're on the same quests throughout these years - Time Gal and Road Blaster :D
-
@pjft Nope, that's not on the singe engine. I want that game playable too. I'll have to settle for the ps1 version.
-
@Darksavior There are two competent (and more enjoyable versions, though less quality graphics) out there, if you'd care to try them out: an SNES MSU-1 remake, and an Amiga remake as well. They also remade Time Gal on the Amiga.
Question here: did you get the video to render full screen? What options did you use?
-
@Darksavior Following the thread, when I run with XINIT (sudo xinit ./singe etc) I get a "could not open the VLDP2 dynamic library", which I imagine means that when running either as sudo or in xinit it's looking for libvldp2.so elsewhere somehow.
I might be completely off track here, but thought I'd close the night with my current status.
Also, if possible, can you share your dapinput.ini file? My results with my current one are inconsistent - it maps the analog sticks while on daphne I use the cursors, which I prefer.
Thanks.
-
@pjft Not sure about your problems, I just followed the directions, and from some help with the dev to correct my own mistakes, it runs. I haven't integrated it into retropie yet. I'll have to take a look at the launching scripts and all to figure it out on my own.
My dainput? It's mapped to my snes pad without analog inputs. Not sure if it'll help you with analog. You can look at the retropie daphne wiki about manually setting it up yourself. Use jstest to figure it out.
-
@Darksavior sounds good. Mine works fine, but not fullscreen, hence the question. As you're on the pi 4 I was asking what options had you used or what command line to get it to work as such.
If I use the xinit approach mentioned earlier I get the game in full screen but also the error with vldp2 - which I'm sure I'll be able to dig into with some more time. If this is the way, @DirtBagXon do you have any thoughts on what path might it be looking for?
If I don't, it just runs on a corner of the screen, hence my question as to how you approached that to see what might be missing here.
As for the input file, I'll look into the docs then for a sample and more detailed instructions.
I'll test things out some more tomorrow and report back any findings as well, but any pointers or suggestions can send me looking in the right direction.
Thanks.
-
-
@pjft said in (REQUEST) Add Daphne Singe emulator?:
@Darksavior Following the thread, when I run with XINIT (sudo xinit ./singe etc) I get a "could not open the VLDP2 dynamic library", which I imagine means that when running either as sudo or in xinit it's looking for libvldp2.so elsewhere somehow.
@DirtBagXon do you have any thoughts on what path might it be looking for?
The libvldp2.so library is in the same directory as the singe.bin binary and library: libsinge.so. Which by default would be /home/pi/singe if you followed the above directions.
If you are writing, or using, another script, you need to look at the LD_LIBRARY_PATH part of the script. You will need to ensure that the directory where the singe.bin, and therefore libvldp2.so, are at the beginning of this LIBRARY search path when singe starts. Something like:
export LD_LIBRARY_PATH=/home/pi/singe:$DAPHNE_SHARE:$LD_LIBRARY_PATH
You can of course use/change VARIABLES as in the original scripts.
A good debug is to add an echo in the script just before the singe binary runs. This will tell you where singe is searching for libraries.
e.g.
echo $LD_LIBRARY_PATH ./$SINGE_BIN \ $DAPHNE_SHARE/singe/$1/$1.singe \ .. ..
Hope this helps....
-
Thanks - it does help.
I actually managed to get it running per @Darksavior 's tip on setting the full screen resolution on the run.sh file, and it works perfect.
I submitted a PR to your GitHub repository based on some changes to Daphne's controls a few years back that helped specific joysticks be better recognized. I don't take any offense if it isn't merged, but thought I'd contribute it upstream given that it's what helps the game's controls work as intended on my arcade with the DragonRise adapter.
As for Road Blaster, an interesting thing: the same code in a arm64 device runs the game correctly, but not on the Pi.
Specifically, when it works, there's a message:
Error! write to main rom at e600
But, when it fails (on the Pi), we get:
Error! write to main rom at a80f Error! write to main rom at f8ec
I'm going to dig into it and see if I can work something out.
-
@pjft said in (REQUEST) Add Daphne Singe emulator?:
I submitted a PR to your GitHub repository based on some changes to Daphne's controls a few years back that helped specific joysticks be better recognized. I don't take any offense if it isn't merged, but thought I'd contribute it upstream given that it's what helps the game's controls work as intended on my arcade with the DragonRise adapter.
Looks fine, but should be applied via a command line option, not by default.
I have added a comment on the pull request.
Many thanks for contributing.
-
@DirtBagXon Got it. Let me try to go back and see what changes would need to be done on my end to get that sorted as an option. I left a comment there for you as well.
Thanks.
-
@DirtBagXon thanks heaps for the quick reply, will tackle this later in the week!
-
@Darksavior and I finally fixed Road Blaster on the Pi.
https://github.com/RetroPie/daphne-emu/pull/17Feeling badass.
EDIT: it's now been merged, so installing Daphne from source should work. It may even fix Bega's Battle or others, as I believe the code is shared, but no promises there.
Feel free to test the code here until it's approved: -
https://github.com/DirtBagXon/daphne/commit/7d4bf3cdaff98a795ef2e51a823555e25f574ff9
Hope you don't mind, I have pushed this into my Daphne and created a pull request back to DavidGriffith/daphne, to keep Daphne alive.
-
@DirtBagXon Don't mind at all - thank you.
Actually, a more accurate - or perhaps complementary fix - which I submitted to the repo as well is to compile things with -fsigned-char. You might want to send it over as well.
https://github.com/RetroPie/daphne-emu/commit/40ce24dd136356d903eb6476ff9dfcef12e7d8bd
Hope it helps - glad to help keep it alive.
As for the PR in your repo, I fully understand where you're coming from - I didn't have time yet to revise the code (you can tell where I spent my time :D ) but I should get to it at some point. Don't take my silence as having disagreed with your comments. :)
Thanks.
-
@pjft said in (REQUEST) Add Daphne Singe emulator?:
@Darksavior and I finally fixed Road Blaster on the Pi.
https://github.com/RetroPie/daphne-emu/pull/17Feeling badass.
EDIT: it's now been merged, so installing Daphne from source should work. It may even fix Bega's Battle or others, as I believe the code is shared, but no promises there.
Can confirm bega's battle works due to this change...
-
@gomisensei Awesome - great to hear.
If anyone can check whether BadLands works with the new build from source (from right about now, as I submitted more changes to the build process), that'd be interesting. I don't have any recollection or suggestion that Badlands should work because of this change, though, but doesn't hurt.
Thanks.
-
@pjft badlands doesn't seem to work, even after changes to the Makefile the log shows
YUV overlay is done in software (ie unaccelerated). Booting ROM ... Write to ffff with 0 Write to ffff with 0 Write to 1 with 0 Write to ff with 0
repeating over and over and no video shows, tho I can still exit cleanly.
edit: tried the prototype rom as well, threw up different numbers, but same result.
-
@gomisensei Thanks for checking.
Do you know if it works on Windows/other OS? Road Blaster did, which led me down the right path.
I don't have the game to test, but in this case it was really a matter of a data type cast that was causing the wrong memory address to be read and written to.
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.