Jump to content

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


Recommended Posts

  • MTA Anti-Cheat Team
7 minutes ago, 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.

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
Just now, 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

 

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
4 minutes ago, fastman92 said:

Yes, ok. I'll download TortoiseSVN.

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
39 minutes ago, 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.

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
1 hour ago, 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.

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
2 hours ago, 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?

 

 

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 6:31 PM, 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?

20 hours ago, 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.

 

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
45 minutes ago, fastman92 said:

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

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
6 minutes ago, 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).

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

 

3 minutes ago, 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

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...