-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Native files #1
Comments
Hi Thank you. It is amazing that you found the Linux version of this game. I have no idea what kind of old libraries users need to run Inner Worlds on Linux because this is a version 1.2. Do you know the exact year when Sleepless Software released the version 1.2 of this game? Edit: ./inner objdump -p '/home/user/Downloads/iw/inner' /home/user/Downloads/iw/inner: file format elf32-i386 Program Header: Dynamic Section: file ./inner Ok. I have more information about libraries: ldd ./inner readelf -l ./inner Elf file type is EXEC (Executable file) Program Headers: Section to Segment mapping: I see three libraries now, but I do not know If we need more of it: ld-linux.so.1 Is there a catalog with Linux libraries on the CD? |
I do not have a CD. I have never seen one on the www or in real life. My guess is no. I doubt the CD has libraries as GNU/Linux philosophy in 1996 would have made it gor farbotn. I believe linux-gate.so.1 is a "virtual library", whatever that is. Basically the kernel conjures a shared library into RAM and it pretends to be a file for the application that needs it for the duration needed (as is my understanding). Bad news, you can't install it, getting the correct version of linux-gate.so.1 relies completely on the kernel that is capable of conjuring it. I'm not sure which kernel Inner Worlds requires. Linux kernel 1.2.0 was released 1995-03. Linux kernel 2.0.0 was released 1996-06-09. So, one or either of those unless Sleepless targeted a development kernel (gor farbotn). ld-linux.so.1 is the The Linux dynamic linker, library and utilities. Old versions of Redhat and derivatives had it. As late as 2011, version 1.9 of ld-linux.so.1 shipped with distros. I don't know if Debian and derivatives ever had it. I've only found as early as ld-linux.so.2 for the Debian family tree. libc.so.5 Easy. Ubuntu Hardy is the last Ubuntu to have it. I have been attempting to run the game in virtualbox by installing old versions of Redhat and Debian. Debian 1.3.1 tells me exactly what Ubuntu Zesty and Artful tells me, "Segmentation fault (core dumped)". The Redhat installation insists I give the precise make, model, and version of my video card, so, still working on that one (wait, idea, brb... nope, didn't work). Oh, when inner segfaults, it produces a file named a.out That said... Have you perused the .itf files? There's lots of pseudoenglish information in there! Enough, I'd say, that an editor and free as in freedom content replacement could be started (only started). I realize the game is freely re-distributable, but it's still proprietary. I'd be nice if open-iw shipped as full game. |
Even before running the GNU/Linux version, there's plenty to be learned from the files. For instance, the joyofvic.mod file from the GNU/Linux version and the in-file reference to the song section can be located in the DOS EXE. Interestingly, the DOS and GNU/Linux recordings seem to be slightly different renderings of the song. Or one just has a split second longer of silence at the beginning. Or the volume is a millidecibel different. I don't know what I'm looking at in a mod file. I just know the two versions are not 1:1 digital copies. Anywho, a bit of Nix-Fu: |
c704710, the following commands might be useful to you: I've been working on running the game as well. Using Debian 1.3.1 struck me as a reasonable plan by c704710 (libc.so.5.4.23, lib.so.1.8.10) so I stole it:) I've gotten further somehow. To definitely avoid any architecture issues, I took the probably unnecessary step of virtualizing entirely on 32-bit hardware. Turns out svgalib may be the source of the segfault (yah, ld didn't say svgalib). I looked it up, and it turns out ancient Debian had a bug with svgalib. Debian devs where quick to fix this bug, by removing svgalib from Debian. How!? How did Ubuntu ever emerge from Debian!? But, after some svgalib backporting: $ ldd -vV inner $ uname -r $ fgconsole $ head inner some ldd notes: |
Fracka lukenbarken haf engable hassn!!! I tried disabling sound, music, and joystick in the config file. No difference. If I wait on the title screen, it crashes when the attract mode begins. The mouse issue might be the problem, but I doubt it. I'll keep at it.
Thanks! |
AH HAA! The DOS EXE has a reference for s_swoosh.bin & s_whoosh.bin. There is no *s_whoosh.bin among the GNU/Linux files. Perhaps that's why there's a v1.3. It does not seem to be a typo, there should be both files. Anywho, I copied s_swoosh.bin to s_whoosh.bin and a YouTube video to follow of the fully working game. Well, I exaggerate, my Debian 1.3.1 has no sound card so I cannot say for certain the sound is working. |
Duplicated here. It is jerky because it is trying to run too fast. I didn't bother with sound either. Moving on to Debian Woody since it is the latest with has the next stable kernel (2.2). |
Well then, based on the optimistic ideal that 2.2 will work, I'll also install Woody but run the 2.4 kernel. |
Woody 2.4 segfaults |
I think iw tries to load libraries from the /lib catalog instead /usr/lib, and it might be the issue with the newer versions of the Linux distributions: |
Woody 2.2 segfaults as well. I'll get back to that eventually. Ftm, I'm concentrating on packaging the game to run on a stripped down pre-installed Debian Bo (with svgalib) hard drive image under QEMU as this provides the maximum options for running cross-platform/architecture and minimal proprietary entanglements (iw becomes the only proprietary entanglement). This lets anyone play with the GNU/Linux version and expands potential sources for help with open-iw. The two parts of course cannot be 'shipped' together as that would violate Debian's licensing (iw package separate from the Debian package). But I can make a script to add end-user acquired local iw-linux files to a local copy of the Debian hard drive image. BTW, QEMU runs Bo+iw too fast with no jerkiness. I'm using -cpu 486 -icount 1 to slow QEMU to proper speed. The native files in an iso (easy to load to virtual machines): WARNING. This is very ugly. Ugly design, ugly code, ugly size, ugly speed, ugly inefficiency. And I don't think all the features work. But it does let one play the game; the game works perfectly once installed and run. It requires QEMU full system emulation binaries (qemu-system-x86). |
Thank you. It works. However, I have an old computer (Mac Mini 2010 server), so it works slowly, but it is still playable. Perhaps, I should try to use different options in QEMU: -cpu 486 -icount 1 I hope it will be possible to make sounds and the music working under QEMU because it was an important part of IW for many PC gamers |
I'm fairly certain the sound is an operating system issue. |
Still working on this. |
I've been successful in getting the game to work on a current Linux distribution (including sound).
Thanks so much for this hint! I also got it working now using Slackware64-current with the proprietary NVIDIA drivers. Everything seems to be working so far, including sound and music. A summary of a few common problems I encountered and how I solved them - I'd be glad to hear better solutions if available:
|
Here is an alternate native GNU/Linux version (1.0?) |
@laenion @zerothis @c704710 @ludiointegritas Hi I was able to play it on the old computer (Pentium 4 or Athlon XP) with Suse 9.0. It requires to install ancient libraries like libc5 (Yast). In this case, I had to boot into a safe mode and log in as a root to run it. I had gotten to a final boss, and I still tried to figure out how to beat him. I didn't notice any serious issues in the Linux version. However, finding a location where you can save the game make it more complicated. I highly recommend playing it this way. @laenion |
https://archive.org/details/iw12-linux
The text was updated successfully, but these errors were encountered: