[Top][All Lists]
[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
- [freesci-develop] cvs: jameson, FreeSCI CVS repository, 2005/10/16
- [freesci-develop] cvs: jameson, FreeSCI CVS repository, 2005/10/16
- [freesci-develop] cvs: jameson, FreeSCI CVS repository, 2005/10/18
- [freesci-develop] cvs: jameson, FreeSCI CVS repository, 2005/10/20
- [freesci-develop] cvs: jameson, FreeSCI CVS repository, 2005/10/21
- [freesci-develop] cvs: jameson, FreeSCI CVS repository, 2005/10/21
- [freesci-develop] cvs: jameson, FreeSCI CVS repository, 2005/10/22
- [freesci-develop] cvs: jameson, FreeSCI CVS repository, 2005/10/22
- [freesci-develop] cvs: jameson, FreeSCI CVS repository, 2005/10/24
- [freesci-develop] State of Glutton on Win32,
James Albert <=
- Re: [freesci-develop] State of Glutton on Win32, Walter van Niftrik, 2005/10/25
- Re: [freesci-develop] State of Glutton on Win32, James Albert, 2005/10/25
- Re: [freesci-develop] State of Glutton on Win32, James Albert, 2005/10/25
- Re: [freesci-develop] State of Glutton on Win32, Hugues Valois, 2005/10/26
- Re: [freesci-develop] State of Glutton on Win32, Walter van Niftrik, 2005/10/26
- Re: [freesci-develop] State of Glutton on Win32, James Albert, 2005/10/26