-
Posts
38 -
Joined
-
Last visited
-
Days Won
2
Everything posted by fastman92
-
it's been a long time, finally I have decided to spend few days on the MTA code to make it compatible with new limits. The FLA does the work once, when proxy_gtasa.exe gets run. Limits can be changed once per process launch. Instability - the FLA has been designed very carefully and any errors in the FLA are completely unacceptable. Tested over many, many thousand computers all over the world. A bit of MTA code had to be changed to work with new ID limits and world map limits and it was also done in a proper way. Some ASM code had to be changed. @Saml1ermay have been working a bit on it, but he implemented only the simplest limits probably. The simple limits have never been the problem. They could be changed by the MTA team if there were such a need. Now the FLA also offers the possibility of changing the complicated limits, which took months of work to alter. I was editing the newest version probably. I've done it over TeamViewer on the computer of someone else.
-
It's done. Only the license may remain the problem at this point. I have been working few last days on the MTA code to make it work with possibly changed ID limits and world map limits. And it works. Other limits will likely require no changes to the MTA code. Picture: Log: Starting fastman92 limit adjuster 5.7, non-public version, release mode, compilation time: Nov 1 2020 07:38:25 (UTC) Website: http://fastman92.com Launch time: 1-11-2020 8:12:44 (UTC) Launched during the day. Solution platform: WIN_X86 FASTMAN92_LIMIT_ADJUSTER_RELEASE_DIRECTORY is not defined. Documentation files will not be written. Game detected: GTA SA 1.0 US HOODLUM 14383616 bytes Game uses dynamic image base? No Game preferred image base: 0x400000 Game current image base: 0x400000 Number of FLA modules: 67 Delayed processing of limits? No Root base directory: Root directory: D:\MTA\Custom\Game Initial directory: D:\MTA\Custom\Game INI filename: fastman92limitAdjuster_GTASA.ini --------------------------------------------- At least one ID limit is changed. ID limits will be patched. Count of file IDs is over 32767 and requires unsigned ID. Applying unsigned ID patches. Count of file IDs is over 65532 and base ID of CStreamingInfo requires int32_t. Applying int32_t base ID patches. Count of DFF/TXD IDs is over 65532 and requires int32_t. Applying int32_t DFF+TXD ID patches. COL ID limit is over 256 and requires something more than uint8_t. Applying COL ID uint32_t patches. IPL ID limit is over 256 and requires something more than uint8_t. Applying IPL ID uint32_t patches. New ID limits: 0 - 149999 (150000) - DFF models defined within IDE files 150000 - 299999 (150000) - TXD texture archives. 300000 - 449999 (150000) - COL collision archives. 450000 - 450299 (300) - IPL Binary IPL files. 450300 - 450363 (64) - DAT files limited to nodes*.dat 450364 - 450552 (189) - IFP animation archives. 450553 - 451052 (500) - RRR car recordings, carrec*.rrr files 451053 - 451134 (82) - SCM scripts 451135 - 451136 (2) - Loaded list 451137 - 451138 (2) - Requested list 451139 - count of all file IDs Addresses: CModelInfo::ms_modelInfoPtrs: 0x27E5020 CStreaming::ms_aInfoForModel: 0x5037020 CAnimManager::ms_aAnimBlocks: 0x1CDC898 CVehicleRecording::StreamingArray: 0x1CDE040 CTheScripts::StreamedScripts: 0xA47B60 Format of new savefiles will be different: patch for block of IPL flags is applied! Number of IPL flags will depend on current IPL ID limit. Format of new savefiles will be different: patch for enhanced format of model flags block is applied! Format of new savefiles will be different: patch for save game of variable length is applied! --------------------------------------------- Format of new savefiles will be different: patch for car generators with CCarGenerator_extended structure is applied! Format of new savefiles will be different: patch for save game of variable length is applied! Modified limit Car generators to: 500 Is CCarGenerator_extended structure used: 1 --------------------------------------------- Renderware world map size set to 28000 x 28000 World map size set to 24000 x 24000 World map info info: World map size: 24000 x 24000 World sectors: CWorld::ms_aSectors type: buildings, dummies count: 480 * 480 = 230400 sector area: 50 x 50 CWorld::ms_aLodPtrLists type: lod count: 120 * 120 = 14400 sector area: 200 x 200 CWorld::ms_aRepeatSectors type: vehicles, peds, object count: 16 * 16 = 256 --------------------------------------------- --------------------------------------------- Number of memory changes made: 5047 --------------------------------------------- What can we do now? Part of EULA: 3. Using this software together with other GTA3/GTA:VC modifications is prohibited by this EULA. This is not a cause for termination of the license but can result in further actions taken by the team or other licensees. I wonder, how could we possibly resolve this matter. As the programming problem of making the MTA code compatible with new limits has been solved.
-
I don't feel qualified enough to tell the MTA how the FLA should be implemented. The MTA team is free to implement the FLA in any way that's possible. One part the MTA team must do themselves. Loading of the FLA. It's the MTA team to decide how it will be made. Without this part I can't modify the MTA. (if I make changes, we should be able to test if game works, with the FLA running, right?) Get the MTA team to decide how the FLA should be implemented, they should make a loading of the FLA at least. Then I can change a certain MTA code to become compatible with the interesting limits.
-
There's something to think of. Certain limits need some consideration. Like Water map size. This limit sets the max Water map size with all the underlying consequences: the outside water is normally rendered outside of -3000 to 3000 coordinates. Anything inside depends on the water.dat. When the Water map size is changed to let's say 12000, the outside water will be rendered outside of -6000 to 6000 coordinates. Anything inside will depend on the water.dat.
-
Changing the limits while the game is running cannot be done, the FLA makes changes, which are irreversible: all or none. The limit patching is an extremely complicated process. There's a valid reason, why the limits weren't hacked before. If you want some changes, (the FLA should do different changes according to different configuration?), obviously you need to run the game once again, with the FLA. There is no nothing to agree with. There is no better choice available. One idea is to make a launcher a launcher where you could choose a server. Like SA:MP Which starts the proxy_gtasa.exe only after you click Connect It only takes to understand the rule. How they implement it is completely their choice. The rule is that the FLA loads and changes the executable code in some places, when GTA SA starts. The choice is yours. You can complain saying that the design is still far from you'd want it to be and get stuck with it. Or you can actually do something and make the MTA better for many.
-
There are total conversions for which the authors want to get the working multiplayer. Just listen to me and we'll have it all done quicker than you'd expect. The total conversions have lots of files modified in GTA SA directory. The official MTA checks if files are not modified. For total conversions we need to be able to compile new binaries, which have the checking functions inactive, possibly with the use of preprocessor constants and preprocessor conditions in the C++ code. Let's solve it! Move forward.
-
I can make the MTA's game.dll and core.dll compatible with the new limits. But I can't make anything else. I can't make the design changes, possible interface changes. Another part, how do we handle the fact that there should be the MTA edition without file checks, so that the game can be modded completely and total conversions would be possible. Maybe with the help of property sheet file? Give the answers to this.
-
The MTA forum is pretty $hitty if it's not possible to edit the post content directly. I want to edit the BBcode manually. How can we write posts otherwise?