Author Topic: FS1 on AMD64  (Read 3245 times)

0 Members and 1 Guest are viewing this topic.

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Been trying to get this to work...

- FS1.vp from taylor's humble web site doesn't fix everything.
- The icculus.org installer doesn't work
- The decryption tool for FS1 tbl files I've only got partially working (I can polish up what I do have to have some kind of non-hackish UI, but I don't have the technical know-how to get it decrypting, at least not on AMD64 - it may work fine on 32-bit linux)
- cfileextractor doesn't work. If I use the "libstdc++.so.5" file, it doesn't write files, if I use "libstdc++.so.60", it doesn't link properly.
- FS2_open itself can read the .tbl files, but the parsing for sounds.tbl, at least, hasn't been setup to parse the FS1 sounds.tbl file.

Haven't tried:
- Hooking into the fs2_open decoder to get at TBL file data
- Checking out the icculus CVS
-C

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Quote
Originally posted by WMCoolmon
- FS1.vp from taylor's humble web site doesn't fix everything.

It's meant for the FS1 specific build (MAKE_FS1 to true in Makefile) from icculus.org CVS.  It's not meant to work in an unmodified FS2 engine, but instead the modified FS2->FS1 engine.

Quote
- The icculus.org installer doesn't work

It's too old anyway, don't bother with it.

Quote
- The decryption tool for FS1 tbl files I've only got partially working (I can polish up what I do have to have some kind of non-hackish UI, but I don't have the technical know-how to get it decrypting, at least not on AMD64 - it may work fine on 32-bit linux)

Should work fine under 64-bit Linux, if you are referring to the icculus.org version anyway, which has been properly ported.  If you are referring to something of your own creation then you can use the icculus.org version of scramble as a basis for the changes needed.  If you've got source I don't mind taking a look and pointing out whatever you might be missing.

Quote
- cfileextractor doesn't work. If I use the "libstdc++.so.5" file, it doesn't write files, if I use "libstdc++.so.60", it doesn't link properly.

Don't know why not.  What's the linking problem?

Quote
- FS2_open itself can read the .tbl files, but the parsing for sounds.tbl, at least, hasn't been setup to parse the FS1 sounds.tbl file.

True, I only changed the code to allow it to properly decrypt the orginal files.  I didn't want to modify anything to actually read all of the old tbls without conferring with Goober first.  I figured FSPort would rather use the newer tbl formats whenever possible so it would be wasted work.

 

Offline Goober5000

  • HLP Loremaster
  • Moderator
  • 214
    • Goober5000 Productions
Quote
Originally posted by taylor
I figured FSPort would rather use the newer tbl formats whenever possible so it would be wasted work.
Not necessarily.  Yes we're supporting FS2 retail but it would also be nice if we could point people toward a FSO build that would run all their FS1 stuff and then some. :)

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Quote
Originally posted by taylor
It's meant for the FS1 specific build (MAKE_FS1 to true in Makefile) from icculus.org CVS.  It's not meant to work in an unmodified FS2 engine, but instead the modified FS2->FS1 engine.


Hrm. I'll keep that in mind; it'd be nice to be able to play FS1 with the original files, I've never been able to get the port fully working properly.

Quote
Should work fine under 64-bit Linux, if you are referring to the icculus.org version anyway, which has been properly ported.  If you are referring to something of your own creation then you can use the icculus.org version of scramble as a basis for the changes needed.  If you've got source I don't mind taking a look and pointing out whatever you might be missing.


Actually, I grabbed the library from descent-net, removed the Win32 API stuff, changed some sizeof()s to reflect a 32-bit file format, and added a main().


Quote
Don't know why not.  What's the linking problem?


Code: [Select]
gcc cfileextractor.cpp -I .. -I /usr/include/SDL/ -D SCP_UNIX /usr/lib/libstdc++.so.60 -o "cfileextract"
/tmp/ccH8DRyl.o(.gnu.linkonce.t._ZNSt14__simple_allocI11vp_fileinfoSt24__default_alloc_templateILb1ELi0EEE10deallocateEPS0_m+0x2a): In function `std::__simple_alloc >::deallocate(vp_fileinfo*, unsigned long)':
: undefined reference to `std::__default_alloc_template<(bool)1, (int)0>::deallocate(void*, unsigned long)'
/tmp/ccH8DRyl.o(.gnu.linkonce.t._ZNSt14__simple_allocI11vp_fileinfoSt24__default_alloc_templateILb1ELi0EEE8allocateEm+0x2a): In function `std::__simple_alloc >::allocate(unsigned long)':
: undefined reference to `std::__default_alloc_template<(bool)1, (int)0>::allocate(unsigned long)'
collect2: ld returned 1 exit status
make: *** [cfileextract] Error 1


I'm actually having a similar problem with my VP lib - linked with 5, it inexplicably thinks file_entry.size != 0, even though output before and after shows it as such, meaning that all the directories are seen as files. :wtf:


Quote
True, I only changed the code to allow it to properly decrypt the orginal files.  I didn't want to modify anything to actually read all of the old tbls without conferring with Goober first.  I figured FSPort would rather use the newer tbl formats whenever possible so it would be wasted work.


Well, it'd be nice to be able to use fs2_open to run FS1, the demo, or retail FS2. Making fields optional is also good for modular tables. I haven't actually done this yet, but if you init the values as soon as you allocate memory for new entries in a tbl, you could use a modular table to selectively replace values that you want - so a Ulysses beef-up mod would work alongside a Ulysses big fireball mod. I imagine FS2 added some 'required' fields to various tables, making those optional would be handy.

At any rate, I'd certainly love to be able to use the same executable to run FS1 and FS2, it saves on HD space and means half the compile-time to sync to CVS. ;)
-C

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
For cfileextractor you really need to be using the current makefile stuff (just "make cfileextractor" from the CVS tree).  You don't seem to be.  The main problem is that cfileextractor is a c++ file and you are trying to compile it with gcc.  You have to use g++ for it to work and link properly, especially in this case since you are using a C compiler to link in a C++ lib.

If you are just wanting a way to encrypt/decrypt tbls from the cmdline then just get the icculus.org cvs and "make scramble".  You could probably make a lib out of that too if you wanted.  That would be much easier than doing it from scratch or porting another utility from Win32.

 
If you really want to play FS1 on AMD64, I'd recommend the Freespace Port at http://www.3dactionplanet.com/hlp/hosted/fsport/. I've gotten it running with fs2_open under my 64-bit Linux just fine.
Ever lost a saved game? Help me stop such tragedies!
Contribute save game locations for the MASGAU Automatic Save Game Archive Utility!
http://masga.sourceforge.net/
You have nothing to lose but your lost progress!

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Quote
Originally posted by sanmadjack
If you really want to play FS1 on AMD64, I'd recommend the Freespace Port at http://www.3dactionplanet.com/hlp/hosted/fsport/. I've gotten it running with fs2_open under my 64-bit Linux just fine.

That's what he's trying to do, but with an attempt to use the original FS1 tables.  The encryption code in FS2_Open was modified to allow for the FS1 encryption but all of the tables still don't parse properly.  FSPort isn't FS1, it's mainly just the missions ported over at this point with some working graphics/models/music (sorry if that hurts any Goober :)).  If you don't actually have the original FS1 or want all of the cool hi-res graphics and models then FSPort is your best, or rather only, option.

If you *really* want to play FS1 under Linux you need to get the icculus.org CVS version and build the FS1 binary which will use the original FS1 data.  That's pretty close to the original Windows release right now and there are changes which I haven't committed yet which address pretty much all of the remaining shortcomings.

 

Offline Goober5000

  • HLP Loremaster
  • Moderator
  • 214
    • Goober5000 Productions
Quote
Originally posted by taylor
FSPort isn't FS1, it's mainly just the missions ported over at this point with some working graphics/models/music (sorry if that hurts any Goober :)).
No offense taken.  I'm of much the same opinion; when we finish ST:R I want to take the opportunity to revamp v3.0 into something that's much more FS1-like. :)

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Quote
Originally posted by Goober5000
No offense taken.  I'm of much the same opinion; when we finish ST:R I want to take the opportunity to revamp v3.0 into something that's much more FS1-like. :)

And I want to help out some and get some of those FS1 specific icculus.org changes ported over here in a way that doesn't require build options.  I have always liked FS1 just the way it was but I think taking advantage of the FS2_Open features would be a very good thing.

That's something that the icculus.org version will never do since it's just a port/copy of the original and there is no desire on my part to make it anything else.

 

Offline Taristin

  • Snipes
  • 213
  • BlueScalie
    • Skelkwank Shipyards
So... HTL FS1? Oooh. :D
Freelance Modeler | Amateur Artist

 

Offline Amon_Re

  • 28
    • http://www.kefren.be
So... HTL FS1? Oooh. :D

* Amon_Re joins the drooling :D
Sig? What sig?