exoscoriae / eXoDOS

eXoDOS
69 stars 3 forks source link

Eyeball (1999) #4715

Closed Python-Exoproject closed 1 year ago

Python-Exoproject commented 1 year ago

This is note for reference.

The game is meant to be able to run with music when sbmidi is executed first, but when it is the game will not run. Instead it loads up quickbasic and shows an "Illegal Function Call" error. If sbmidi is not loaded the game will run

Thraka commented 1 year ago

I'll work on this if someone wants to send me a copy

Python-Exoproject commented 1 year ago

Eyeball (1999).zip Thanks @Thraka

Thraka commented 1 year ago

Eyeball (1999).zip

OK, fixed.

The code uses the SHELL command to run Dir Midi\*.Mid /b /s /o:n > Midi.Dat, gathering the sound files in the midi directory and outputting them into the midi.dat file. Because dosbox (at least the ECE copy I'm using) doesn't support the /o:n switch to order the files by name, the "output" that is fed into the midi.dat file is the error message Illegal switch: /o:n. which then causes the MIDI loading routines to crash because there isn't a valid midi file in the list of files.

I did the following modifications:

  1. Backed up the original eyeball.bas to eyeball.bak.
  2. Remarked the two lines that use the SHELL command: 2154 and 2208
  3. Used the QB45 compiler to create eyeball.exe. GO.BAT launches the QB IDE, compiles the game, and runs it. It's not a great experience, so the compiled executable is a better option in my opinion.
  4. Ran the program on my 486 instance in 86box to generate the midi.dat and midi.old files.
  5. midi.dat has all of the files from c:\eyeball\midi\* so if the actual dosbox deploy location is different than c:\eyeball\ you'll need to hand edit midi.dat for the correct music file locations.
  6. Added CHOICE.EXE from a v5 game.
  7. Added RUN.BAT in the spirit of exodos v5, I don't know what you're doing with v6 but edit/adjust things as needed. This runs sbmidi.exe and then eyeball.exe

The GO.BAT is no longer needed if you run eyeball.exe, which also avoids running the QB environment and compiling the game before running. So it's a much smoother experience. But you could keep that batch file as it does have the command line to run/compile and use the linked library the game needs when running via the IDE. Your choice.

Glad to have helped out!

Python-Exoproject commented 1 year ago

Confirmed fixed @exoscoriae, thanks again @Thraka

When adding exo, I also noticed an extra txt file in the folder with the conf

Thraka commented 1 year ago

Interestingly the 2nd SHELL command used a redirect to null which creates a null file in the folder. The proper redirect is nul ... whoops

exoscoriae commented 1 year ago

it doesn't work for me I added all of the files in the zip above. Even cleared out the old files first

if I run sbmidi first, it locks if I run eyeball without it, I get no music.

Python-Exoproject commented 1 year ago

Its probably the mounted folder. Previously we were mounting c as \exodos\eyeball but the path in midi.dat means we need to mount c as \exodos as so:

mount c .\eXoDOS c: cd Eyeball sbmidi cls @eyeball exit

exoscoriae commented 1 year ago

fixed!