Jump to content

How can I join the MTA team and begin contributing to the MTA source code?


Recommended Posts

  • MTA Anti-Cheat Team
  On 26/11/2016 at 20:54, fastman92 said:

At the moment I only want to make the MTA compatible with the FLA. Some addresses are reallocated and the C++/ASM code will have to be altered.

Expand  

So you basicly want to make THIS (https://forum.multitheftauto.com/topic/88462-fastman92-limit-adjuster-and-stream-memory-fix) possible?

Read the wiki on how to use GIT, easy explanation: create a Github account, fork (sort of clone) the project repo, and use SVN software such as TortoiseSVN to fetch the repo to your PC. Start making those changes you want now, and I advise you to make it a new branch in consultation with MTA team members, as integration of something like this could need extensive testing/integrating all those commits at once by later merging the repositories after code and stability reviews are done.

Make sure to read the Wiki about using our Git before my explanation, it was only meant to show you it's not all that complicated.

 

Edited by Dutchman101
  • Like 1
Link to comment
  On 26/11/2016 at 21:01, Dutchman101 said:

So you basicly want to make THIS (https://forum.multitheftauto.com/topic/88462-fastman92-limit-adjuster-and-stream-memory-fix) possible?

Read the wiki on how to use GIT, easy explanation: create a Github account, fork (sort of clone) the project repo, and use SVN software such as TortoiseSVN to fetch the repo to your PC. Start making those changes you want now, and I advise you to make it a new branch in consultation with MTA team members, as integration of something like this could need extensive testing/integrating all those commits at once by later merging the repositories after code and stability reviews are done

 

Expand  

Yes, ok. I'll download TortoiseSVN.

Not really, when coding I know what I'm doing.

If you need a proof, you can see that my project the FLA patches over 9000 memory addresses in GTA SA and game is completely stable.

Link to comment
  • MTA Anti-Cheat Team
  On 26/11/2016 at 21:03, fastman92 said:

Yes, ok. I'll download TortoiseSVN.

Expand  

As suggested above by me and darkdreamingdan you're better off to use the recommended methods from the wiki, mine was just an example that its not all that complicated to get started, and is one of the (not recommended) methods.

Link to comment
  On 26/11/2016 at 21:05, darkdreamingdan said:

I'd advise against TortoiseSVN, there's no need for it.  Probably something like GitHub for Windows is much easier to get up and running.

This guide has more or less everything you need to know: https://wiki.multitheftauto.com/wiki/Compiling_MTASA

There's really more much to developing on a large project than simply applying patches.  MTA's codebase is very large in nature, and there are likely to be some integration challenges involved as well as harmonizing with our own coding standards.  Good luck.

Expand  

Tell me what is MTA codebase made of.

Is it C++ code or something else as well?

I'm thinking about the LUA.

Suppose it gets rellocated:

.data:00A9B0C8     ; CModelPeds *CModelInfo::ms_modelInfoPtrs[20000]
.data:00A9B0C8     _ZN10CModelInfo16ms_modelInfoPtrsE dd 4E20h dup(?)

Where would 0xA9B0C8 get referenced? Only in the MTA C++ code, where the value could be found or in the LUA as well?

 

I'm using the Github for Windows and cloning the MTA at the moment.

Edited by fastman92
  • Like 2
Link to comment
  • MTA Team

The MTA codebase is entirely written in C++ with some parts written in inline assembly. The modelinfo array is referenced all across the game_sa and multiplayer_sa code, but Lua does not have direct access to any memory locations. All you can do from Lua is to call C++ functions, which then do something.

  • Like 2
Link to comment
  • MTA Anti-Cheat Team
  On 27/11/2016 at 03:40, CodyL said:

Would adding FLA into MTA by any chance increase the LOD limits?

Trying to break MTAs streaming limits is a huge pain in the butt with just lua.

Expand  

Yes, check your previous comments on what fastman is now trying to achieve, to see where this is about;

(also check https://bugs.multitheftauto.com/view.php?id=9368

Edited by Dutchman101
  • Like 1
Link to comment

I'm getting these errors:

1>------ Build started: Project: DirectX9GUIRenderer, Configuration: Debug Win32 ------
2>------ Skipped Build: Project: breakpad, Configuration: Debug Win32 ------
2>Project not selected to build for this solution configuration 
3>------ Build started: Project: Client Core, Configuration: Debug Win32 ------
1>cl : Command line warning D9025: overriding '/MTd' with '/MT'
1>  d3d9texture.cpp
1>e:\projects\mtasa-blue\vendor\cegui-0.4.0-custom\src\renderers\directx9guirenderer\d3d9texture.cpp(31): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory
3>cl : Command line warning D9025: overriding '/MTd' with '/MT'
1>  d3d9renderer.cpp
3>  StdInc.cpp
3>  Compiling precompiled header.
3>
3>e:\projects\mtasa-blue\client\core\stdinc.h(16): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory
1>e:\projects\mtasa-blue\vendor\cegui-0.4.0-custom\src\renderers\directx9guirenderer\d3d9renderer.cpp(31): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory
1>  Generating Code...
4>------ Build started: Project: GUI, Configuration: Debug Win32 ------
4>cl : Command line warning D9025: overriding '/MTd' with '/MT'
4>  StdInc.cpp
4>  Compiling precompiled header.
4>
4>e:\projects\mtasa-blue\client\gui\stdinc.h(13): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory
========== Build: 0 succeeded, 3 failed, 36 up-to-date, 1 skipped ==========

41a637516952766.jpg 

I have DirectX SDK installed.

65a30d516953675.jpg 

What should I do?

 

 

Link to comment
  On 27/11/2016 at 12:33, fastman92 said:

I'm getting these errors:

 

1>------ Build started: Project: DirectX9GUIRenderer, Configuration: Debug Win32 ------
2>------ Skipped Build: Project: breakpad, Configuration: Debug Win32 ------
2>Project not selected to build for this solution configuration 
3>------ Build started: Project: Client Core, Configuration: Debug Win32 ------
1>cl : Command line warning D9025: overriding '/MTd' with '/MT'
1>  d3d9texture.cpp
1>e:\projects\mtasa-blue\vendor\cegui-0.4.0-custom\src\renderers\directx9guirenderer\d3d9texture.cpp(31): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory
3>cl : Command line warning D9025: overriding '/MTd' with '/MT'
1>  d3d9renderer.cpp
3>  StdInc.cpp
3>  Compiling precompiled header.
3>
3>e:\projects\mtasa-blue\client\core\stdinc.h(16): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory
1>e:\projects\mtasa-blue\vendor\cegui-0.4.0-custom\src\renderers\directx9guirenderer\d3d9renderer.cpp(31): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory
1>  Generating Code...
4>------ Build started: Project: GUI, Configuration: Debug Win32 ------
4>cl : Command line warning D9025: overriding '/MTd' with '/MT'
4>  StdInc.cpp
4>  Compiling precompiled header.
4>
4>e:\projects\mtasa-blue\client\gui\stdinc.h(13): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory
========== Build: 0 succeeded, 3 failed, 36 up-to-date, 1 skipped ==========

 

41a637516952766.jpg 

I have DirectX SDK installed.

65a30d516953675.jpg 

What should I do?

 

 

Expand  

Check if your DXSDK_DIR environment variable is pointing to 2010 version. I had this problem too.

Link to comment

It's set up correctly

DXSDK_DIR = C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\


One thing that raised my attention, Client core can't be compiled because of the missing d3dx9.h, but at the same time the file "Client Core.vcxproj" doesn't have any occurence of string DXSDK_DIR

Edited by fastman92
Link to comment
  On 26/11/2016 at 15:31, fastman92 said:

Welcome everyone.

I want to join the MTA team and make some changes to the MTA source code.

Who to contact?

How can I start?

Expand  
  On 26/11/2016 at 20:54, fastman92 said:

At the moment I only want to make the MTA compatible with the FLA. Some addresses are reallocated and the C++/ASM code will have to be altered.

Expand  

 

Wow, thats a great news! Really looking forward to this!

That could open some serious game developmnet into MTA.

Just one personal preference from me - if possible, make MTA object streamer work same way as standart GTA SA streamer (wich is brilliant both in object loading logic and draw distance).

Link to comment
  On 27/11/2016 at 16:18, fastman92 said:

but at the same time the file "Client Core.vcxproj" doesn't have any occurence of string DXSDK_DIR

Expand  

MTA doesn't use DXSDK_DIR directly in VS project files. Instead, the real path is inserted by premake.
So it will most likely/should look similar to this (in Client Core.vcxproj):

<AdditionalIncludeDirectories>..\vendor;..\Shared\sdk;D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;..\vendor\sparsehash\src\windows;..\Client\core;..\Client\sdk;..\vendor\tinygettext;..\vendor\zlib;..\vendor\jpeg-9b;..\vendor\pthreads\include;..\vendor\sparsehash\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

If it's not in place, check the value of dxdir in /premake5.lua by adding print(dxdir) as follows after line 29:

dxdir = os.getenv("DXSDK_DIR") or ""
print(dxdir)

...and run create-projects.bat again

Link to comment
  On 27/11/2016 at 17:02, AfterAll14 said:

 

Wow, thats a great news! Really looking forward to this!

That could open some serious game developmnet into MTA.

Just one personal preference from me - if possible, make MTA object streamer work same way as standart GTA SA streamer (wich is brilliant both in object loading logic and draw distance).

Expand  

It's not my intention. The question why there's a different streaming could be answered by the lead MTA developers.

 

  On 27/11/2016 at 17:08, Jusonex said:

MTA doesn't use DXSDK_DIR directly in VS project files. Instead, the real path is inserted by premake.
So it will most likely/should look similar to this (in Client Core.vcxproj):

<AdditionalIncludeDirectories>..\vendor;..\Shared\sdk;D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;..\vendor\sparsehash\src\windows;..\Client\core;..\Client\sdk;..\vendor\tinygettext;..\vendor\zlib;..\vendor\jpeg-9b;..\vendor\pthreads\include;..\vendor\sparsehash\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

If it's not in place, check the value of dxdir in /premake5.lua by adding print(dxdir) as follows after line 29:

dxdir = os.getenv("DXSDK_DIR") or ""
print(dxdir)

...and run create-projects.bat again

Expand  

Tell me what I should do if I want to add a new CPP or H file.

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...