Page 1 of 1

Myth 2 source?

Posted: Mon Jan 24, 2011 4:31 pm
by Almindor
Hello,

how do you guys do the big updates? (resolution changes etc.)

do you have access to the game source files? I read on the linux thread that the loki source is lost (damn shame), but you got the win/mac version?

I also read there some people tried to port it, so I guess there's a repository somewhere? Could I get a link to check it out?

Thanks

Re: Myth 2 source?

Posted: Mon Jan 24, 2011 7:20 pm
by Graydon
Sadly the source code is only available to a specific group of developers. Something about legal issues and contracts and all that lame stuff.

Re: Myth 2 source?

Posted: Mon Jan 24, 2011 10:31 pm
by vinylrake
pesky laws.

Re: Myth 2 source?

Posted: Tue Jan 25, 2011 3:09 am
by Almindor
Could you be more specific please? Is the source core contracted to a specific organization? And from who? Microsoft?

I'm mostly just curious, and I understand that there might be an NDA involved (although I doubt that since it's not a new or profitable product anymore), but what you told me so far only makes me more confused on the issue (especially with the combination of "some linux developers tried to port the game")

Re: Myth 2 source?

Posted: Tue Jan 25, 2011 11:49 am
by vinylrake
i wasn't and am not involved in myth development, but here's what i've heard publically over the years.

TakeTwo (they own the Myth franchise of games) stopped developing Myth.

some time later, a group of myth fans who were also programmers contacted TakeTwo and asked for access to the source code and for permission to fix some bugs and make some modifications to allow the game to play on more modern Operating systems and hardware (graphics cards). Suprisingly, TakeTwo agreed but with at least a couple of stipulations.

The stipulations were:

1) the group of coders could not give the code to ANYONE else - and they most definitely could not publically distribute it

2) TakeTwo retained ALL rights to the Myth code - INCLUDING any modifications made by this group so that if TakeTwo wanted to, they could take the code back and start selling the latest version of Myth I/II/III without compensating the coders who've kept the game running all these years.

3) the group of coders could release UPDATES to the Myth games, but they couldn't distribute the entire game itself. Any updates have to require a player to have access to the other game components(files) from the original commercial game CDs.

After a while, that original group of coders (MythDev aka Myth Developers) split up with some focusing exclusively on Myth III, and the others mostly on Myth II (with some TFL work). Over the years some coders have left the group(s) and others have joined.

One of those groups - the Myth 3 'faction' - is the long defunct FlyingFlip group.

The other group - the Myth I & II 'faction' - is Project Magma.

Re: Myth 2 source?

Posted: Wed Jan 26, 2011 12:08 am
by capital
The following was released as part of wikis leakaged documents of the myth source!

Code: Select all

/**************************************************************************************************
	FILE:       def.h

	PURPOSE:    General declarations and macros. Used by both MSVC and LabWindows/CVI
	NOTE:       The macros _NI_mswin_ and _MSC_VER controls whether to compile for CVI or MSVC
**************************************************************************************************/
#ifndef _DEF
#define _DEF

#include <iso646.h>	// for 'and', 'or'...

#ifndef NULL
	#define NULL 0
#endif

#define NAN ((float)1e-30) /* Not A Number - Indicate a wrong or non significant value - 
					 Must always be tested, i.e. never assume that it's "close to zero, anyway" !
					 Could be any value, esp IEEE error or infinity formats. */

#ifdef _CVI_
	#include <toolbox.h>	// you need to include toolbox.fp in your project
	#define IS_NAN(x) (FP_Compare((x),NAN)==0)
#endif

#define Pi              3.1415926535897932384626433832795028841971
#define RAD(x)          ((x)*PI/180.0)
#define SINC(x)         ((x) != 0.0  ? sin(PI*(x))/(PI*(x)): 1.0)
#define Ln10     2.30258509298    // For inverse of log10. Use 10^x==exp(x*Ln10)
#define DegToRad 0.017453292519943295769237 
#define RadToDeg 57.29577951     // Use * for conversions between degrees and radians

#define MS2CVI_TIME 2208902400   // Because MS time starts at 1/1/1970 and ANSI C at 1/1/1900
//#define MS2CVI_TIME 2208978000   // Because MS time starts at 1/1/1970 and ANSI C at 1/1/1900
#define IsCviTime(t) ((t)>=MS2CVI_TIME)	// Check if a date after 1970 is in CVI format

#define Malloc(type)   (type *)malloc(sizeof(type))
#define Calloc(n,type) (type *)calloc(n, sizeof(type))
// Syntax:   float *Array=Calloc(1000, float);

#define MIN(a,b) ((a)<=(b)?(a):(b))
#define MAX(a,b) ((a)>=(b)?(a):(b))
#define MIN3(a,b,c) ((a)<=(b) ? (a)<=(c)?(a):(c) : (b)<=(c)?(b):(c) )
#define MAX3(a,b,c) ((a)>=(b) ? (a)>=(c)?(a):(c) : (b)>=(c)?(b):(c) )
#define BETWEEN(a,b,c) ((a)<=(b) and (b)<=(c))

typedef struct {
	float Re, Im;
} complex;

//typedef enum {false, true} bool;

// Basic types (from Windows)
#pragma warning(disable:4209 4142)

typedef unsigned char  BYTE;        // 8-bit unsigned entity
typedef unsigned short WORD;        // 16-bit unsigned number
typedef unsigned int   UINT;        // machine sized unsigned number (preferred)
//typedef long           LONG;      // 32-bit signed number
typedef unsigned long  DWORD;       // 32-bit unsigned number
//typedef short          BOOL;      // BOOLean (0 or !=0)
typedef void*          POSITION;    // abstract iteration position

#define TRUE 1
#define FALSE 0
#define YES 1
#define NO 0
#define OPEN 1
#define CLOSE 0
#define MODIF 1
#define NOMODIF 0

#pragma warning(default:4209 4142)


#ifdef _DEBUG
	// NOTE: you should #include <stdlib.h> if you use those macros
	#define TRACE     printf
	#define ASSERT(f) ((f) ? (void)0 : printf("Assertion " #f " failed file %s line %d",__FILE__, __LINE__))
#else
	#define ASSERT(f) ((void)0)
	#define TRACE     ((void)0)
#endif // _DEBUG


#endif // _DEF


Re: Myth 2 source?

Posted: Sat Feb 05, 2011 10:20 am
by dac
o dude i could totally port that, im on it right now!