Re: Distributing Modified CVS

Gavriel State <[email protected]> Sat, 12 Jun 2004 09:54:20 -0400
Newsgroups gmane.comp.emulators.winex.devel
Message-ID <[email protected]>
Greg Furstenwerth wrote:

> I have been considering doing this with changes for Lineage 2. I am 
> trying to figure out how to go about all this legally without getting in 
> some form of trouble.

Hi Greg,

Thanks for your patches, and for trying to find out the best way to
redistribute your code.

 From a stricly licensing perspective, there are two options that would
be best:
  1) Just distribute your patch to people who want it
or
  2) Distribute (say) a tarball of the complete CVS repository with your
     changes in it, along with your patch to indicate what you changed.
     Distributing a patch is sufficient for us for the satisfaction of
     2(c)(i) of the AFPL.

As we've said before, we prefer not to see binary distribution of CVS-built
packages, though it is allowed in the license for certain non-commercial
distribution.


Now, all that said, what would be even better would be if you could clean up
your patch to make it acceptable for us to integrate into the main tree.
Right now, your code is very specific to Lineage, and will almost
certainly cause problems with other games.

For example, you've added a hack to handle the D3D MODULATEINVALPHA_ADDCOLOR
texture op differently, by simply pretending it's a SELECTARG1.  This is
clearly not a general solution.

If you look at the problem more closely, you'll notice that we use either
the ATI_tex_env_combine3 extension or the NV_texture_env_combine4 extension
to handle this kind of modulation.  So, if you're running on an NVidia card
and this extension isn't working, you need to think: "what is actually going
on here".  It's possible that your card is exposing this extension without
actually supporting it, or that there's a driver bug of some kind.

You might try experimenting with the caps bits available in d3dgl/caps.c
to see what the game does when the NV_texture_env_combine4 caps aren't
exposed.

Another possibility to consider is that one of the textures involved in
the modulation is expected to come from an S3TC compressed texture.  Those
aren't supported in public CVS, and even the patch that goes into our
binary builds has limitations, and doesn't support all texture compression
setups.

Similarly, with the Dinput patch, it would be good to try to get at the
heart of the problem in a more general way that is applicable to more
than one app.  We almost never have app-specific code in our system.  In
the rare cases that we do, we generally use configurable options, and
specify that a given app needs to have certain options set in the config
file.

Take care,
  -Gav

-- 
Gavriel State
Co-CEO & CTO
TransGaming Technologies Inc.
[email protected]
http://www.transgaming.com

Let the games begin!