Jump to content

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


Recommended Posts

Posted (edited)

Thanks for replies.

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.

I need to learn how to use a Github and make changes to the MTA project, submit changes to it.

I'm using Visual Studio 2015.

fastman92 limit adjuster

Edited by fastman92
  • Like 1
  • MTA Team
Posted (edited)
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
Posted
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.

  • MTA Team
Posted
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.

Posted (edited)
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
  • MTA Team
Posted

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
  • MTA Team
Posted (edited)
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
Posted

This could be the #1 request of all time and it would be amazing to see this someday. Draw distance is the mayor drawback in MTA. Especially when you have placed so many objects, that it gets decreased below the 300 meter limit.

  • Like 2
Posted

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?

 

 

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

Posted (edited)

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

Posted
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

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

Posted (edited)

I removed "Build" directory, then used  create-projects.bat again

The path defined by DXSDK_DIR wasn't inserted to vcxproj files.

 

258ed4516995295.jpg 

What to do?

Edited by fastman92
Posted

I get this error when MTA isn't installed (no registry entry) and I try to run it by just copying the files on the pc.

Have you installed MTA before you replaced the default stuff with your own stuff?

  • Recently Browsing   0 members

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