sduensin / retropie-tools

Various tools for RetroPie
Do What The F*ck You Want To Public License
16 stars 5 forks source link

Script dying on line 177 #2

Open paulmorabito opened 4 years ago

paulmorabito commented 4 years ago

Hi,

I'm running RetroPie on a Chromebook with a Debian 10 Buster container. I've created the folder structure as recommended and manually transferred over the meta data folder and the unpacked the games I wish to play. The error I am getting is the same regardless of game and is replicated below:

paul@penguin:~$ ./import-eXoDOS.sh RetroPie/roms/eXoDOS/
Reading and sorting /home/paul/RetroPie/roms/eXoDOS...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS...
Reading and sorting /home/paul/RetroPie/roms/eXoDOS/!DOS...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre/Title...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre/Screen...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre/Media...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre/Manual...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre/IniFile...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre/Front...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre/Extras...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre/Back...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre/Advert...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre/About...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni/Meagre...
Working on /home/paul/RetroPie/roms/eXoDOS/!DOS/SMColoni...
./import-eXoDOS.sh: line 177: ~/RetroPie/roms/pc/smcoloni.sh: No such file or directory

Line 177 is:

echo "#!/bin/bash" > "${SCRIPT}"

I cannot understand why this would fail as "~/RetroPie/roms/pc/" exists.

Any ideas?

Thanks,

paulmorabito commented 4 years ago

If I hard code my home directory there then the script dies on line 182 looking for autoexec.bat.

It seems like the file structure might have changed since you wrote the script as many games have a further sub-directory, other exe files or cd folder with iso files. Can you confirm or is there still something wrong?

sduensin commented 4 years ago

Which exoDOS are you using? I see now that 4 has been released. I'll have to look at it and see what changed.

paulmorabito commented 4 years ago

I was using V4.

On Wed, 15 Jan 2020 at 09:32, Scott Duensing notifications@github.com wrote:

Which exoDOS are you using? I see now that 4 has been released. I'll have to look at it and see what changed.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/sduensin/retropie-tools/issues/2?email_source=notifications&email_token=ADSGX373JYN7VGU26MUMUETQ5ZKS3A5CNFSM4JQ5OAHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEI6UFBQ#issuecomment-574440070, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADSGX36QBCHLFKHNXWWUFFTQ5ZKS3ANCNFSM4JQ5OAHA .

Simon-List commented 4 years ago

Hi, Same here. I tried using your script following your guidelines through BiZzAr721's [Guide]Adding MS-DOS games using eXoDOS and sduensin's import-eXoDOS script, and I faced the same error on line 177. I'm not much of a coder, but it seems to be something about creating the .sh to launch the game, (and maybe something with lower/upper case?)... Also used eXoDOS V4. Thanks anyways for the tool and the time you put into it!

sduensin commented 4 years ago

I finally got to look at v4. It's entirely different from v3. It'll need a new script.

Simon-List commented 4 years ago

I finally got to look at v4. It's entirely different from v3. It'll need a new script.

Well this explains that! Do you plan on writing the new script? If so tell us if we can help in any way. I'll gladly do the testing if needed be.

dagognatt commented 4 years ago

Seems like you still can use the script with v4, as long as you move tings around a bit. the !dos folder is kept in a separate zip-file, and you need to unzip this alongside the games.

Also had some trouble with rename 'y/a-z/A-Z/' * in the script. The problem is files starting with '-', but can be fixed by doing rename -- 'y/a-z/A-Z/' * i believe.

Simon-List commented 4 years ago

Hi @dagognatt , could you explain a bit more? Did your script work all the way? When you say:

the !dos folder is kept in a separate zip-file, and you need to unzip this alongside the games.

what is your actual file structure? Because I did extract the !dos file as indicated in @sduensin 's import-eXoDOS.txt so it looks like this:

  /home/pi/RetroPie/roms/pc/adark1
  /home/pi/RetroPie/roms/pc/adark1/cd
  /home/pi/RetroPie/roms/pc/!dos/adark1
  /home/pi/RetroPie/roms/pc/!dos/adark1/Meagre
  /home/pi/RetroPie/roms/pc/!dos/adark1/Meagre/...

(I changed /eXoDOS/ by /pc/, but the import-eXoDOS.txt states this doesn't matter)

dagognatt commented 4 years ago

Hi,

My filestructure is similar, actually I have

/home/pi/RetroPie/roms/eXoDOS/adark1
/home/pi/RetroPie/roms/eXoDOS/adark1/cd
/home/pi/RetroPie/roms/eXoDOS/!dos/adark1
/home/pi/RetroPie/roms/eXoDOS/!dos/adark1/Meagre
/home/pi/RetroPie/roms/eXoDOS/!dos/adark1/Meagre/...

and the script produces /home/pi/RetroPie/roms/pc/adark1.sh, which I dont think matter much.

What I know works is the creation of the startup-scripts and generation of entries in gamelist.xml

Still waiting for it to complete after fixing issues with the renaming. I suspect 'rename' being the culprit in making this take hours though. Its really slow.

Did you try running it ?

Simon-List commented 4 years ago

and the script produces /home/pi/RetroPie/roms/pc/adark1.sh, which I dont think matter much.

On the contrary, if I understand well @sduensin 's script, the .sh is the game startup-script.

When I run the script (even with your rename -- 'y/a-z/A-Z/' modification) I still get the error: ./import-eXoDOS.sh: line 177: ~/RetroPie/roms/pc/adark1.sh: No such file or directory so it seems the script doesn't manage to create or edit the .sh... I tried to create it manually (empty file), but still the same error.

So on my side, I'm not even reaching the gamelist.xml creation part, therefore no idea if this part still works.

dagognatt commented 4 years ago

Yeah, I also had that problem at first!

SCRIPT="~/RetroPie/roms/pc/${GAME,,}.sh"
echo "#!/bin/bash" > "${SCRIPT}"

What I think is happening is that it takes the path literary, and you have no folder named ~ I replaced it with an absolute resolved path: SCRIPT="/home/pi/RetroPie/roms/pc/${GAME,,}.sh"

dagognatt commented 4 years ago

and the script produces /home/pi/RetroPie/roms/pc/adark1.sh, which I dont think matter much.

On the contrary, if I understand well @sduensin 's script, the .sh is the game startup-script.

Yes, it is the game startup script, and it references the game in correct eXoDOS-folder. Thats why I dont think it matter much.

Simon-List commented 4 years ago

What I think is happening is that it takes the path literary, and you have no folder named ~ I replaced it with an absolute resolved path: SCRIPT="/home/pi/RetroPie/roms/pc/${GAME,,}.sh"

Bullseye @dagognatt, that dit it for me. The script went all the way through (creating the various .BAT and .SH, and going through media), but it was not enough since launching the game's .SH still ended in direct return to EmulationStation. After a few hours of fumbling, I narrowed it down to the

REM MOUNT -u
REM REM MOUNT C /home/pi/RetroPie/roms/pc/DOOM

lines in the AUTOEXEC.BAT file directly called by the game's .SH . What (finally) solved all my issues without having to change anything dont by @sduensin 's script was to systematically mount C: as /home/pi/RetroPie/roms/ when launching DOSBox. This is done by adding the mounting command at the end of the dosbox-SVN.conf.

Long story short, here's what worked for me: 1. open import-eXoDOS.sh and replace SCRIPT="~/RetroPie/roms/pc/${GAME,,}.sh" by SCRIPT="/home/pi/RetroPie/roms/pc/${GAME,,}.sh"

2. follow the instructions in import-eXoDOS.txt and run the script in your rom's folder

3. open your dosbox-SVN.conf located in /home/pi/RetroPie/configs/pc/ and go to the bottom:

[...]
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.

And add the following commands:

MOUNT C /home/pi/RetroPie/roms/pc/
C:

After this, my game's .SH in the roms/pc folder are fully working, although I have no idea if the media scraping (or whatever the rest of the script does) works since I'm scaping using Skraper on my pc (besides I took the liberty to rename the game's .SH in order to facilitate the scraping). Hope it will help some of you!