Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Forum Support

    3. Suggestions

fastman92 limit adjuster


fastman92
 Share

Recommended Posts

dont worry, Im telling a bunch of people to come this way right now who would be very interested in this

Link to comment
Share on other sites

so , you mean this ID limit adjuster not for public :panic: :cry:

It will become public, when complete.

 

 

I'm interested in trying out your ID Limit Adjuster for Trilogy.

PM sent.
Link to comment
Share on other sites

Because of signed __int16, max ID may be as high as 32767

lolnoob

 

my code allows up to 32767 for modelinfo only, other streaming items can go above this limit

 

it does break modloader's img module in quite a funny way, however

Edited by NTAuthority
  • KEKW 1

SsZgxdL.png

Inactive in GTA/R* title modification indefinitely pursuant to a court order obtained by TTWO. Good job acting against modding!

Link to comment
Share on other sites

oauii

 

DAT new Numbers-------------BONER

 

smiley-signs107.gif

Link to comment
Share on other sites

 

Because of signed __int16, max ID may be as high as 32767

lolnoob

 

my code allows up to 32767 for modelinfo only, other streaming items can go above this limit

 

it does break modloader's img module in quite a funny way, however

 

It's good to have other competitor.

I'll try to make ID unsigned too.

 

 

so , you mean this ID limit adjuster not for public :panic: :cry:

PM sent. Edited by fastman92
Link to comment
Share on other sites

Because of signed __int16, max ID may be as high as 32767

Strange, why using signed __int16 for IDs? Is it than not posible to define negative IDs? In this case IDs will go from -32768 to 32767.

Link to comment
Share on other sites

 

Because of signed __int16, max ID may be as high as 32767

Strange, why using signed __int16 for IDs? Is it than not posible to define negative IDs? In this case IDs will go from -32768 to 32767.

 

Because Rockstar Games compiled the game with signed __int16 ID;

And no, we need positive IDs.

Edited by fastman92
Link to comment
Share on other sites

 

 

Because of signed __int16, max ID may be as high as 32767

Strange, why using signed __int16 for IDs? Is it than not posible to define negative IDs? In this case IDs will go from -32768 to 32767.

 

And no, we need positive IDs.

 

Sory, I know it might sound really stupied, but why only positive IDs? What is the problem with negative ones? I have no real idea about datastructures R* used, but it all should be about pointer arithmetics and in this case positive and negative adresses can being used as well.

Link to comment
Share on other sites

 

 

 

Because of signed __int16, max ID may be as high as 32767

Strange, why using signed __int16 for IDs? Is it than not posible to define negative IDs? In this case IDs will go from -32768 to 32767.

 

And no, we need positive IDs.

 

Sory, I know it might sound really stupied, but why only positive IDs? What is the problem with negative ones? I have no real idea about datastructures R* used, but it all should be about pointer arithmetics and in this case positive and negative adresses can being used as well.

 

There are arrays.

unsigned 32767 = 32767 signed

unsigned 32768 = -32768 signed

unsigned 32769 = -32767 signed

unsigned 32770 = -32766 signed

[...]

 

Often game needs to know file ID, so it does

signed file ID - base ID.

 

I hope to figure out a way to make ID unsigned.

Edited by fastman92
Link to comment
Share on other sites

my game crash when riding a car or motorcycle :panic:

Do you have any other ASI plugins? CLEO.asi is incompatible too. Edited by fastman92
Link to comment
Share on other sites

 

my game crash when riding a car or motorcycle :panic:

Do you have any other ASI plugins?

 

no , but just cleo

Edited by SweetChessus
Link to comment
Share on other sites

 

 

my game crash when riding a car or motorcycle :panic:

Do you have any other ASI plugins?

 

no , but just cleo

 

PM sent.

 

Please disable CLEO. Some code is incompatible in CLEO.asi / scripts.

Edited by fastman92
Link to comment
Share on other sites

 

 

 

my game crash when riding a car or motorcycle :panic:

Do you have any other ASI plugins?

 

no , but just cleo

 

PM sent.

 

Please disable CLEO. Some code is incompatible in CLEO.asi / scripts.

 

thanks man it's working :D , the problem is back-fire.cs

Edited by SweetChessus
Link to comment
Share on other sites

 

 

 

 

Because of signed __int16, max ID may be as high as 32767

Strange, why using signed __int16 for IDs? Is it than not posible to define negative IDs? In this case IDs will go from -32768 to 32767.

 

And no, we need positive IDs.

 

Sory, I know it might sound really stupied, but why only positive IDs? What is the problem with negative ones? I have no real idea about datastructures R* used, but it all should be about pointer arithmetics and in this case positive and negative adresses can being used as well.

 

There are arrays.

unsigned 32767 = 32767 signed

unsigned 32768 = -32768 signed

unsigned 32769 = -32767 signed

unsigned 32770 = -32766 signed

[...]

 

Often game needs to know file ID, so it does

signed file ID - base ID.

 

I hope to figure out a way to make ID unsigned.

 

But standard C/C++ arrays can handle negative indexes. If it´s a castom array than it´s an other isue. Please don´t get it wrong, I dont want to argue with you, just triing to understend. I also would like to know, if posible, how you was able to find out which datatypes are used. Normaly to do this you need to have the sorces.

Link to comment
Share on other sites

But standard C/C++ arrays can handle negative indexes. If it´s a castom array than it´s an other isue. Please don´t get it wrong, I dont want to argue with you, just triing to understend. I also would like to know, if posible, how you was able to find out which datatypes are used. Normaly to do this you need to have the sorces.

One obvious way is by looking at the comparision operations, if they use ja/jae it was a unsigned type, if it uses jg/jge it was a signed type. And the game does that a lot with the ids, checks if the id is equal or above the base id in a signed way.

 

How are you guys dealing with the byte[256] array in the save game related to binary IPLs?

Also good to note there are comparisions to 256 in CIplStore, same goes for CColStore, but I think you guys knows that.

Edited by LINK/2012
Link to comment
Share on other sites

 

But standard C/C++ arrays can handle negative indexes. If it´s a castom array than it´s an other isue. Please don´t get it wrong, I dont want to argue with you, just triing to understend. I also would like to know, if posible, how you was able to find out which datatypes are used. Normaly to do this you need to have the sorces.

One obvious way is by looking at the comparision operations, if they use ja/jae it was a unsigned type, if it uses jg/jge it was a signed type. And the game does that a lot with the ids, checks if the id is equal or above the base id in a signed way.

 

How are you guys dealing with the byte[256] array in the save game related to binary IPLs?

Also good to note there are comparisions to 256 in CIplStore, same goes for CColStore, but I think you guys knows that.

 

http://www.gtamodding.com/index.php?title=Saves_(GTA_SA)#Block_21:_IPL

 

 

 

 

 

Block 21: IPL[edit]0x0000    dword           constant 2560x0004    byte[255]       Flags to enable binary IPLs (see notes below)0x0103    end
256 is the number of flags stored in save, it's the default limit of IPL files.

I patched functions, so they store a new number of files when saving.

Read as many flags as specified in the save, while loading.

 

And yes, all relations are fixed.

 

			// 256 ( number of IPL files )			{				patcher.PatchDWORD(0x005D542C + 4, CStreaming__baseID[FILE_TYPE_DAT] - CStreaming__baseID[FILE_TYPE_IPL]);	// mov     [esp+18h+var_4], 256				patcher.PatchDWORD(0x4056B3 + 2, CStreaming__baseID[FILE_TYPE_DAT] - CStreaming__baseID[FILE_TYPE_IPL]);	// cmp     edx, 100h			}
Edited by fastman92
Link to comment
Share on other sites

 

But standard C/C++ arrays can handle negative indexes. If it´s a castom array than it´s an other isue. Please don´t get it wrong, I dont want to argue with you, just triing to understend. I also would like to know, if posible, how you was able to find out which datatypes are used. Normaly to do this you need to have the sorces.

One obvious way is by looking at the comparision operations, if they use ja/jae it was a unsigned type, if it uses jg/jge it was a signed type. And the game does that a lot with the ids, checks if the id is equal or above the base id in a signed way.

 

How are you guys dealing with the byte[256] array in the save game related to binary IPLs?

Also good to note there are comparisions to 256 in CIplStore, same goes for CColStore, but I think you guys knows that.

 

Do you mean the opcodes the comparision operations use?

Link to comment
Share on other sites

How to make a plugin compatible with ID limit adjuster?

 

(0x403DA4 + 3) - holds a pointer to CModelInfo::ms_modelInfoPtrs array (0xA9B0C8 by default)

(0x408ADA + 3) - holds a pointer to CStreaming::ms_aInfoForModel array (0x8E4CC0 by default)

 

(0x4C51CD + 1) - holds a pointer to CAnimManager::ms_aAnimBlocks(0xB5D4A0 by default)

(0x1560EA1 + 1) - holds a pointer to CVehicleRecording::StreamingArray (0x97D880 by default)

(0x408AB9 + 1) - holds a pointer to CTheScripts::StreamedScripts (0xA47B60 by default)

 

Structure CStreamedScripts is modified.

 

Fields:

 

CStreamedScriptInfo[numberOfSCMscripts];int largestExternalSize;__int16 countOfScripts;__int16 field_A46;
See this structure:

 

#pragma pack(push, 1)struct CStreamedScripts_Footer{int largestExternalSize;__int16 countOfScripts;__int16 field_A46;};#pragma pack(pop)
If you want to access the last 3 members, you need to calculate address like this:

 

 

CStreamedScriptInfo* CTheScripts__StreamedScriptsArray = (CStreamedScriptInfo*)CTheScripts__StreamedScripts;CStreamedScripts_Footer* CTheScripts__StreamedScriptsFooter = (CStreamedScripts_Footer*)((char*)CTheScripts__StreamedScripts + numberOfSCMfiles * sizeof(CStreamedScriptInfo));
------------------------------------

 

Base ID indexes (DWORD values)

(0x407104 + 2) - holds TXD base index (20000 by default)

(0x410344 + 2) - holds COL base index (25000 by default)

(0x4044F4 + 2) - holds IPL base index (25255 by default)

(0x44E4C4 + 1) - holds DAT base index (25511 by default)

(0x40C1A4 + 1) - holds IFP base index (25575 by default)

(0x4594A1 + 2) - holds RRR base index (25755 by default)

(0x40C1C4 + 1) - holds SCM base index (26230 by default)

 

If you need to know the value of ID limits, you should perform subtraction.

numberOfTXDfiles = baseCOLindex - baseTXDindex;

 

To know the limit of SCM scripts, you should read WORD value from 0x470917

 

--------------

IDE limits:

 

'IDE:peds':

 

(0x4C67A0 + 1) - holds a pointer to IDE_peds_store

(0x4C67DB + 1) (DWORD) - holds the count of section elements that can be allocated.

 

--------------

Car generators:

CTheCarGenerators__CarGeneratorArray = Dword(0x6F3F86 + 2);

 

CCarGenerator_size = Byte(0x6F32A8 + 2)

 

countof_CTheCarGenerators__CarGeneratorArray = Dword(0x6F3F7B + 2)

 

--------------

*(DWORD*)(0x573D3D + 4) // numberOfRadarTilesPerOneDimension

*(int**)(0x58802D + 3) // gRadarTextures

 

Author: fastman92

 

 

------------------------------------------------------------------------------------------

 

cargrp.dat limit of 23 cars per group got hacked.

Edited by fastman92
  • Like 3
Link to comment
Share on other sites

Well, cant send you any PM. :/

 

Does it work with Sacky limit adjuster? Cause I already broke some limits there.

 

Aaaand another limit you might want to break:

It seems that .ipls can get to big--> causes game to crash.

Link to comment
Share on other sites

Wow, nice work, thanks.

 

Will test it later :)

 

EDIT://

 

Would be great if all of you guys team up(petka,fastman, nt, dk etc.) and make one new big limit adjuster instead of releasing so many small limitadjusters.

Would make all this small plugins compatible and isnt it nicer to work to together?^^

Colaboration beetween this user would be good, and maybe would leed to development of the best Limitadjuster ever. Even if the object limit and map limit a hacked there are still limits to be hacked, like peds, vehicle, weapon, handling and carcolors limits.

Link to comment
Share on other sites

Well, cant send you any PM. :/

 

Does it work with Sacky limit adjuster? Cause I already broke some limits there.

 

Aaaand another limit you might want to break:

It seems that .ipls can get to big--> causes game to crash.

PM can be sent now. My inbox was full.
Link to comment
Share on other sites

Would be great if all of you guys team up(petka,fastman, nt, dk etc.) and make one new big limit adjuster instead of releasing so many small limitadjusters.

Would make all this small plugins compatible and isnt it nicer to work to together?^^

https://github.com/ThirteenAG/limit_adjuster_gta3vcsa
Link to comment
Share on other sites

Sorry for talking much and not contributing any research or code. Nevertheless, I write in the hope to prevent some misunderstanding. Correct me if I'm wrong but my impression is that we have waited 10 years for breaking the IDE and world limits and suddenly we have 3 or 4 different parties with a solution?

(chronologically (I think)): ntauthority, fastman, petka, link + thriteenAG. This is more than awesome but also not clear what's going on and if proper credit is given to everyone (in source code files, readmes, etc). I hope that all people that have somehow contributed to this incredible progress will be appreciated.

Link to comment
Share on other sites

 

Would be great if all of you guys team up(petka,fastman, nt, dk etc.) and make one new big limit adjuster instead of releasing so many small limitadjusters.

Would make all this small plugins compatible and isnt it nicer to work to together?^^

https://github.com/ThirteenAG/limit_adjuster_gta3vcsa

 

Oh, this is nice++

Sadly, Im unable to install my visual studio again. (always get a framework error fuuuuuuu). Hope I can fix this :D

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 2 Users Currently Viewing
    0 members, 0 Anonymous, 2 Guests

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.