Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    2. News

    1. Red Dead Redemption 2

      1. News
      2. Red Dead Online
      3. The Armadillo Inn *Spoilers*
    1. GTA Online

      1. After Hours
      2. Find Lobbies & Players
      3. Guides & Strategies
      4. Vehicles
      5. Content Creator
      6. Help & Support
    2. Crews

      1. Events
      2. Recruitment
    1. Grand Theft Auto Series

    2. GTA Next

    3. GTA V

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

      1. Episodes from Liberty City
      2. Multiplayer
      3. Guides & Strategies
      4. Help & Support
      5. GTA Mods
    5. GTA Chinatown Wars

    6. GTA Vice City Stories

    7. GTA Liberty City Stories

    8. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    9. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    10. GTA III

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    11. Top Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    12. Wiki

      1. Merchandising
    1. GTA Modding

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Mod Showroom

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

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Red Dead Redemption

    2. Rockstar Games

    1. Off-Topic

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

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

    2. Site Suggestions

fastman92

fastman92 limit adjuster

Recommended Posts

Ss4gogeta0

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

Share this post


Link to post
Share on other sites
SweetCheese

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

Share this post


Link to post
Share on other sites
nWo51289

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

Share this post


Link to post
Share on other sites
fastman92

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.

Share this post


Link to post
Share on other sites
NTAuthority

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

Share this post


Link to post
Share on other sites
Ezekiel

oauii

 

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

 

smiley-signs107.gif

Share this post


Link to post
Share on other sites
fastman92

 

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

Share this post


Link to post
Share on other sites
cj2000
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.

Share this post


Link to post
Share on other sites
fastman92

 

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

Share this post


Link to post
Share on other sites
cj2000

 

 

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.

Share this post


Link to post
Share on other sites
fastman92

 

 

 

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

Share this post


Link to post
Share on other sites
SweetCheese

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

Share this post


Link to post
Share on other sites
fastman92

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

Share this post


Link to post
Share on other sites
SweetCheese

 

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

Do you have any other ASI plugins?

 

no , but just cleo

Edited by SweetChessus

Share this post


Link to post
Share on other sites
fastman92

 

 

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

Share this post


Link to post
Share on other sites
SweetCheese

 

 

 

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

Share this post


Link to post
Share on other sites
cj2000

 

 

 

 

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.

Share this post


Link to post
Share on other sites
LINK/2012

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

Share this post


Link to post
Share on other sites
fastman92

 

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

Share this post


Link to post
Share on other sites
cj2000

 

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?

Share this post


Link to post
Share on other sites
fastman92

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

Share this post


Link to post
Share on other sites
miclin

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.

Share this post


Link to post
Share on other sites
miclin

Will test it later :)

Edited by miclin

Share this post


Link to post
Share on other sites
cj2000

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.

Share this post


Link to post
Share on other sites
fastman92

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.

Share this post


Link to post
Share on other sites
LINK/2012

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

Share this post


Link to post
Share on other sites
goodidea82

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.

Share this post


Link to post
Share on other sites
miclin

 

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

Share this post


Link to post
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

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

×

Important Information

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