Jump to content

Geth Trooper


Recommended Posts

All in favour for geth to replace the stormtroopers as Commander Inyri suggested earlier?

I would say the Geth is dam accurate (currently playing ME3 so im able to compare exactly how you did it)

the sounds I was taken back, I didnt expect the geth to sound authentic as well, keep making more mass effect stuff Inyri, I maybe persueded to do a mass effect map soon >.> i have some ideas on the table

 

after 36 geth, and earth rendored in real time, my FPS dropped:

Note, the Death Egg Hanger isnt complete, but provided a nice spawning area.

 

PC specs:

Intel i7 870 quad core at 2.9ghz

4 gigs 1333mhz ram

Nvidia (zotac brand) Geforce 430 GT 1gig.

100 gig HDD sata

windows Xp 32-bit

 

shot0005-7.jpg

Link to comment
All in favour for geth to replace the stormtroopers as Commander Inyri suggested earlier?

 

Yeah, but only problem with that is that her M-8 Rifle isn't SP compatible :/ At least not for me, anyway. Always crashes the game shortly after the gun is fired with a ran out of ghoul transform space error.

Link to comment

The exact error is "Ran out of transform space for Ghoul2 Models. Adjust MiniHeapSize in SV_SpawnServer.", and it comes with a handy little suggestion as to how to fix the problem. Unfortunately, Raven copy-pasta'd that text, so it's actually not as friendly as it might come off to be. IDA says this exact text is called in two different functions (base address + 0x004D94B0 / 0x004D9980 / jasp.exe ... get cracking @@Scooper ( :P )). To make matters worse, they stored the memory storage in bytes (and then multiply by 20 for some reason) in the code.

 

I managed to do a backtrace and found out that the game makes a call to Z_Malloc with an approximate size of 132096 bytes. (Z_Malloc has a different declaration in jasp.exe than in jamp.exe/Q3, more on this in a moment) It can be found in sub_439F00 at [base address +] 0x0043A083 and 0x0043A09F (PUSH instruction and MOV instruction, respectively)

 

Z_Malloc in jasp.exe works like a modified version of Z_TagMalloc with the exception that it has an added third arg which changes the method that it uses to allocate memory in the game (???). The declaration can therefore be made to look like this:

void __cdecl *Z_Malloc(int size, int tag, qboolean useModifiedMethod);

 

tl;dr / non-coder version: It can be modified by possibly hijacking 4 bytes in jasp.exe, but could trigger the CD key check (unless done via a proxy DLL).

For temporary solutions: try disabling cg_g2marksonallmodels and see if that does anything.

Why they decided to name an engine cvar with cg_ in front of it is pretty retarded in all actuality.

 

EDIT: So just for shits and giggles I decided to do a backtrace of the function in MP as well. The reason why this doesn't happen in MP is because they literally doubled the size to allocate for memory between SP and MP..just another example of how things are so badly synced between SP and MP.

Also note, 0x004D94B0 / 0x004D9980 can cause infinite recursion / stack overflow under certain circumstances. Beware.

Edited by eezstreet
Link to comment

com_hunkmegs doesn't actually do anything. It's a useless cvar in the game.

Also, I'm not surprised by the cg_g2marksonallmodels thing.

 

As far as hijacking 4 bytes, it's just a matter of rewriting two instructions in the code via proxy DLL. I'll have to do some tests to confirm that this is where things are actually causing the issues, but I find it retarded (there I said it) that they allocated a different amount of memory in SP than in MP.

Link to comment
  • 3 months later...

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
×
×
  • Create New...