freesci-develop
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freesci-develop] State of Glutton on Win32


From: James Albert
Subject: [freesci-develop] State of Glutton on Win32
Date: Mon, 24 Oct 2005 20:08:29 -0400
User-agent: Thunderbird 1.4.1 (Windows/20051006)

Hi everyone,

Since the glutton development is nearing a release I thought I'd try getting it to compile and run on Win32, here's my results so far:

Compiling:

   * I removed the old sound system from the Win32 project files and
     added the new sound system, there probably won't be any sound
     support for Win32 in the new release though.

   UPDATE: Wow, never mind, I just tried running the King's Quest I
   remake, and my speakers started blaring out the theme song.  Granted
   it was adlib and not general midi, but heck, I'll take whatever I
   can get.

   * I encountered some nonstandard c code.  Christoph explained that
     this is the new C98 standard.  Microsoft is "supposed" to support
     this standard in their new visual studio 2005, but that is still
     in beta and the support is unconfirmed.  The only problem the
     compiler can't handle is declaring variables midway through a
     function.  I'd suggest keeping with the C89 standard, but there's
     only about a dozen cases of this through all of the source and the
     problem's easy enough to fix.
   * in seq_manager.c there are four macros:

       DEFINE_ALLOC_DEALLOC(, clone, MEM_OBJ_CLONES, clones);
       DEFINE_ALLOC_DEALLOC(, list, MEM_OBJ_LISTS, lists);
       DEFINE_ALLOC_DEALLOC(, node, MEM_OBJ_NODES, nodes);
       DEFINE_ALLOC_DEALLOC(static, hunk, MEM_OBJ_HUNK, hunks);

   MSVC can't handle the blank first argument so I changed this to:

       DEFINE_ALLOC_DEALLOC(auto, clone, MEM_OBJ_CLONES, clones);
       DEFINE_ALLOC_DEALLOC(auto, list, MEM_OBJ_LISTS, lists);
       DEFINE_ALLOC_DEALLOC(auto, node, MEM_OBJ_NODES, nodes);
       DEFINE_ALLOC_DEALLOC(static, hunk, MEM_OBJ_HUNK, hunks);

   to get it to compile.  Since it's blank, I'm not sure what the first
   argument's supposed to be, and I don't even know if "auto" is
   supported outside of MSVC.  If anyone could explain what the desired
   functionality is supposed to be I'll find a keyword to use there
   and, if necessary, write a special Win32 case.

   * In exe_lzexe.c, the function lzexe_read calls memcpy(buf + done,
     handle->buffer, copy);.  buf is a void *, and because the size of
     each pointer is unknown the compiler can't do the pointer
     arithmetic.  buf needs to be typecasted, I'd guess to (char*), but
     I'm not sure what type it's supposed to be.

Running:

   * Because I clobbered exe_lzexe.c to get it to compile, freesci
     crashes when calling those functions.
   * Obviously there's no sound support (UPDATE: I don't know why it
     worked in KQ1 but not the other games I tested), but I think the
     complete absence of sound support is causing some crashes in and
     of itself.  If somebody could explain how the null driver works so
     that I can just use that in Win32, I'd appreciate it.
   * Both the KQ1 remake and QFG2 enter error loops. Both games load
     correctly, but start looping either during the introduction or
     after starting a new game .  The output is:

       (KQ1, New Game)
       Script error in file [SLC-LU] C:\freesciglutton\src\engine\vm.c,
       line 1652: Attempt to send to non-object or invalid script
       Address was 0000:0000
       Send to invalid selector 0x5e of object at 0000:0000
       On-screen console disabled and driver claims not to support
       windowed mode.
       Continuing...

       (QFG2: New Game)
       Script error in file [SLC-LU] C:\freesciglutton\src\engine\vm.c,
       line 1652: Attempt to send to non-object or invalid script
       Address was 0000:0000
       Send to invalid selector 0x1c of object at 0000:0000
       Script error in file [SLC-LU] C:\freesciglutton\src\engine\vm.c,
       line 1652: Attempt to send to non-object or invalid script
       Address was 0000:0000
       Send to invalid selector 0x1d of object at 0000:0000
       On-screen console disabled and driver claims not to support
       windowed mode.
       Continuing...

       (QFG2: Intro - no loop, just stops, probably sound related)
       [sfx-mixer] Your timer is too slow for your PCM output device
       (1189/4096), free=4955.
       [sfx-mixer] You might want to try changing the device, timer, or
       mixer, if possible.
       ...
       Looking up song handle 00010804 failed in
       C:\freesciglutton\src\sfx\core.c, L737
       Warning: Selector 'state' of object at 8040001 could not be
       written to (C:\freesciglutton\src\engine\ksound.c L243)

       * I don't have a copy of Jone's in the fast Lane with me, but I
         see if I can get ahold of it sometime this week.

I never learned how to use CVS correctly, the client I tried never seemed to work, so all I ever do is download the current src using the guest login. That being said, I just installed subversion and a windows client, so whenever the source moves over to that system I'll try to start uploaded changes myself.

Also, the stable branch runs fine on Win32, so at the very least is there's a new stable release soon then it'll run on Win32.

- Jim Albert




reply via email to

[Prev in Thread] Current Thread [Next in Thread]