Results 1 to 3 of 3
  1. #1
    Coders (+)_'s Avatar
    Join Date
    Jan 2010
    Location
    Earth
    Posts
    459

    Smile D3D Stride Logger 2013

    This is my stride logger based on getting all base textures in a stride
    and iterating through them then setting texture and log the model rec. xDD

    Produces very accurate model rec.
    You can find whatever you want in-game. :S

    Sample result:
    Code:
    xDD Log
    (BaseIndex == 0 && MinIndex == 0 && NumVertices == 3124 && StartIndex == 992568 && PrimitiveCount == 4132 && Stride == 32)
    (BaseIndex == 0 && MinIndex == 0 && NumVertices == 1970 && StartIndex == 1006096 && PrimitiveCount == 2186 && Stride == 32)
    (BaseIndex == 0 && MinIndex == 0 && NumVertices == 470 && StartIndex == 1016712 && PrimitiveCount == 352 && Stride == 32)
    (BaseIndex == 0 && MinIndex == 0 && NumVertices == 1252 && StartIndex == 1013232 && PrimitiveCount == 1160 && Stride == 32)
    How to use:
    1 Choose Stride
    2 Increase Tex num until you get your desired texture colored.
    3 Enable log.
    4 Run circles around player or whatever with increasing radius or play game.
    5 Adjust Tex num more to find both close and far range model rec or whatever.
    6 Try change video settings if model rec changes also with video settings.

    Whenever a model rec has been logged already it will not log it again making it faster to find what your looking for.

    Credits:
    SOH
    UC Forum assorted
    GD
    aB

    Code:
    #include <windows.h>
    #include <fstream>
    #include <stdio.h>
    #include <vector>
    #include <conio.h>
    
    #include <d3d9.h>
    #include <d3dx9.h>
    
    #pragma comment( lib, "d3d9.lib" )
    #pragma comment( lib, "d3dx9.lib" )
    #pragma warning( disable : 4996 )
    
    using namespace std;
    //-------------------------------------------------------------------
    
    typedef struct _STRIDELOG{
    	INT Base; UINT Min; 
    	UINT Num; UINT Start; 
    	UINT Prim;
    }STRIDELOG,*PSTRIDELOG;
    
    HRESULT ( WINAPI* oReset )
    	( LPDIRECT3DDEVICE9, D3DPRESENT_PARAMETERS* );
    
    HRESULT ( WINAPI* oEndScene ) 
    	( LPDIRECT3DDEVICE9 );
    
    HRESULT ( WINAPI* oDrawIdP )
    	( LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE, 
    		INT, UINT, UINT, UINT, UINT );
    
    STRIDELOG StrideLog;
    vector<STRIDELOG> STRIDE;
    vector<DWORD> BASETEX;
    D3DPRESENT_PARAMETERS PrP = {NULL};
    LPDIRECT3DBASETEXTURE9 BTEX = NULL;
    LPDIRECT3DDEVICE9 pDev = NULL;
    LPDIRECT3DTEXTURE9 Green = NULL;
    LPDIRECT3DTEXTURE9 pTx = NULL;
    DWORD dCrDev = NULL;
    LPDIRECT3D9 pDx = NULL;
    LPD3DXFONT pFont = NULL;
    D3DVIEWPORT9 Vpt;
    D3DLOCKED_RECT d3dlr; 
    PDWORD VTab = NULL;
    DWORD Old = NULL;
    ofstream ofile;	
    char dlldir[320];
    char strbuff[260];
    UINT iStride = 0;
    UINT iBaseTex = 0;
    bool Found = false;
    bool Startlog = false;
    
    void __cdecl add_log
    	(const char *fmt, ...);
    
    //-------------------------------------------------------------------
    
    __declspec( naked )
    VOID WINAPI CREATEDEVICE( VOID )
    {
    	__asm
    	{
    		PUSH EBP
    		MOV EBP,ESP
    		PUSH [EBP+0x20]
    		PUSH [EBP+0x1C]
    		PUSH [EBP+0x18]
    		PUSH [EBP+0x14]
    		PUSH [EBP+0x10]
    		PUSH [EBP+0xC]
    		PUSH [EBP+0x8]
    		CALL [dCrDev]
    		MOV EDX,[EBP+0x20]
    		MOV EDX,[EDX]
    		MOV [pDev],EDX
    		POP EBP
    		RETN 0x1C
    	}
    }
    
    //-------------------------------------------------------------------
    
    HRESULT WINAPI nDrawIdP
    	( LPDIRECT3DDEVICE9 pDev, D3DPRIMITIVETYPE Type, 
    		INT Base, UINT Min, UINT Num, UINT Start, UINT Prim )
    {
    	LPDIRECT3DVERTEXBUFFER9 Stream_Data;
    	UINT Offset = 0;
    	UINT Stride = 0;
    
    	if(pDev->GetStreamSource
    		( 0, &Stream_Data, &Offset, &Stride )==S_OK)
    			Stream_Data->Release();
    
    	if(Stride == iStride)
    	{
    		pDev->GetTexture( 0, &BTEX );
    		Found = false;
    
    		for( UINT i = 0;i < BASETEX.size();i++ )
    			if( BASETEX[i] == (DWORD)BTEX )
    				Found = true;
    
    		if( Found == false )
    			BASETEX.push_back
    				( (DWORD)BTEX );
    
    		if( BASETEX[iBaseTex] == (DWORD)BTEX && Green )
    		{
    			pDev->SetTexture( 0, Green );
    			pDev->SetRenderState( D3DRS_ZENABLE, FALSE );
    			oDrawIdP( pDev, Type, Base, Min, Num, Start, Prim );
    			pDev->SetRenderState( D3DRS_ZENABLE, TRUE );
    
    			if( Startlog == true )
    			{
    				Found = false;
    				for( UINT i = 0;i < STRIDE.size();i++ )
    					if( STRIDE[i].Base == Base &&
    						 STRIDE[i].Min == Min &&
    							 STRIDE[i].Num == Num &&
    								 STRIDE[i].Start == Start &&
    									 STRIDE[i].Prim == Prim )
    									{
    										Found = true;
    										break;
    									}
    
    				if( Found == false )
    				{
    					StrideLog.Base = Base;
    					StrideLog.Min = Min;
    					StrideLog.Num = Num;
    					StrideLog.Start = Start;
    					StrideLog.Prim = Prim;
    
    					add_log( "(NumVertices == %i && PrimitiveCount == %i && Stride == %i)",
    						Num, Prim, Stride );
    
    					STRIDE.push_back
    						( StrideLog );
    				}
    			}
    		}
    	}
    
    	return oDrawIdP( pDev, Type, 
    		Base, Min, Num, Start, Prim );
    }
    
    //-------------------------------------------------------------------
    
    HRESULT WINAPI nEndScene
    	( LPDIRECT3DDEVICE9 pDev )
    {
    	pDev->GetViewport( &Vpt );
    
    	RECT FRect = { Vpt.Width-250,Vpt.Height-300, 
    							Vpt.Width,Vpt.Height };
    
    	if( Green == NULL )
    		if( pDev->CreateTexture(8, 8, 1, 0, D3DFMT_A8R8G8B8, 
    			D3DPOOL_DEFAULT, &Green, NULL) == S_OK)
    			if( pDev->CreateTexture(8, 8, 1, 0, D3DFMT_A8R8G8B8, 
    				D3DPOOL_SYSTEMMEM, &pTx, NULL) == S_OK)
    				if( pTx->LockRect( 0, &d3dlr, 0, D3DLOCK_DONOTWAIT | 
    					D3DLOCK_NOSYSLOCK ) == S_OK )
    				{
    					for(UINT xy=0; xy < 8*8; xy++)
    						((PDWORD)d3dlr.pBits)[xy] = 0xFF00FF00;
    
    					pTx->UnlockRect( 0 );
    					pDev->UpdateTexture( pTx, Green );
    					pTx->Release();
    				}
    
    	if( pFont == NULL )
    		D3DXCreateFontA( pDev, 16, 0, 700, 0, 0, 1, 0, 
    			0, DEFAULT_PITCH | FF_DONTCARE, "Calibri", &pFont );
    
    	sprintf( strbuff, "Num of Textures: %i\nStride: %i\nBase Tex Num: %i\n\nSTRIDE LOGGER V1\n\n" \
    		"Log Enable: %i\n\nNUM1: Stride++\nNUM2: Stride--\nNUM3: BaseTexNum++" \
    			"\nNUM4: BaseTexNum--\nNUM0: Log On/Off", \
    				BASETEX.size(), iStride, iBaseTex + 1, Startlog );
    
    	if( pFont )
    		pFont->DrawTextA( 0, strbuff, -1, &FRect, 
    			DT_CENTER|DT_NOCLIP, 0xFF00FF00);
    
    	if( GetAsyncKeyState( VK_NUMPAD1 ) &1 )
    	{iStride++;BASETEX.clear();iBaseTex = 0;}
    
    	if( GetAsyncKeyState( VK_NUMPAD2 ) &1 )
    	if( iStride > 0 )
    	{iStride--;BASETEX.clear();iBaseTex = 0;};
    
    	if( GetAsyncKeyState( VK_NUMPAD3 ) &1 )
    	if(iBaseTex < BASETEX.size() - 1)iBaseTex++;
    
    	if( GetAsyncKeyState( VK_NUMPAD4 ) &1 )
    	if( iBaseTex > 0 )
    		iBaseTex--;
    
    	if( GetAsyncKeyState( VK_NUMPAD0 ) &1 )
    	{Startlog = !Startlog;STRIDE.clear();}
    
    	return oEndScene( pDev );
    }
    
    //-------------------------------------------------------------------
    
    HRESULT WINAPI nReset
    	( LPDIRECT3DDEVICE9 pDev, 
    		D3DPRESENT_PARAMETERS* PresP )
    {
    	if( pFont ) {pFont->Release();pFont = NULL;}
    	if( Green ) {Green->Release();Green = NULL;}
    
    	return oReset( pDev, PresP );
    }
    
    //-------------------------------------------------------------------
    
    VOID WINAPI THREAD( )
    {
    	while( pDev == NULL ) 
    		Sleep( 100 );
    
    	VTab[16] = dCrDev;
    	VirtualProtect( (PVOID)&VTab[16], 4, Old, &Old );
    
    	VTab  = (PDWORD)*(PDWORD)pDev;
    
    	*(PDWORD)&oEndScene		= VTab[42];
    	*(PDWORD)&oReset			= VTab[16];
    	*(PDWORD)&oDrawIdP		= VTab[82];
    
    	while( 1 )
    	{
    		VTab[42] = (DWORD)nEndScene;
    		VTab[16] = (DWORD)nReset;
    		VTab[82] = (DWORD)nDrawIdP;
    		Sleep( 100 );
    	}
    }
    
    //-------------------------------------------------------------------
    
    void __cdecl add_log (const char *fmt, ...)
    {
    	if(ofile != NULL)
    	{
    		if(!fmt) { return; }
    
    		va_list va_alist;
    		char logbuf[256] = {0};
    
    		va_start (va_alist, fmt);
    		_vsnprintf (logbuf+strlen(logbuf), 
    			sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
    		va_end (va_alist);
    
    		ofile << logbuf << endl;
    	}
    }
    
    //-------------------------------------------------------------------
    
    BOOL WINAPI DllMain( HMODULE hModule, 
    	DWORD dwReason, LPVOID lpReserved )
    {
    	if( dwReason == DLL_PROCESS_ATTACH )
    	{
    		DisableThreadLibraryCalls( hModule );
    		GetModuleFileNameA( hModule, dlldir, 320 );
    		dlldir[strlen(dlldir)-3] = 0;
    		strcat(dlldir,"txt");
    
    		ofile.open(dlldir, ios::app);
    		add_log("\nxDD Log");
    
    		pDx = Direct3DCreate9
    			( D3D_SDK_VERSION );
    
    		if( pDx != NULL )
    		{
    			VTab  = (PDWORD)*(PDWORD)pDx;
    			pDx->Release();
    
    			dCrDev = (DWORD)VTab[16];
    			VirtualProtect( (PVOID)&VTab[16], 4, 0x40, &Old );
    
    			VTab[16] = (DWORD)CREATEDEVICE;
    			CreateThread( NULL, NULL, (LPTHREAD_START_ROUTINE)
    				THREAD, NULL, NULL, NULL );
    		}
    	}
    
    	return TRUE;
    }
    
    //-------------------------------------------------------------------






    Last edited by (+)_; February 24th, 2013 at 17:48.

  2. #2
    Coders (+)_'s Avatar
    Join Date
    Jan 2010
    Location
    Earth
    Posts
    459

    Re: D3D Stride Logger 2013

    Heads are now included in my model rec. xDDD

    Code:
    #define OpforAssualtHead ((BaseIndex == 0 && MinIndex == 0 && NumVertices == 776 && StartIndex == 1017768 && PCount == 1212 && Stride == 32) || \
    (BaseIndex == 0 && MinIndex == 0 && NumVertices == 440 && StartIndex == 1026616 && PCount == 616 && Stride == 32) || \
    (BaseIndex == 0 && MinIndex == 0 && NumVertices == 1252 && StartIndex == 1013232 && PCount == 1160 && Stride == 32) || \
    (BaseIndex == 0 && MinIndex == 0 && NumVertices == 470 && StartIndex == 1016712 && PCount == 352 && Stride == 32) )



    Here is a sample of what I have found using this:

    Code:
    #define M40A3_Sniper_handheld \
    ((NumVertices == 284 && StartIndex == 118888 && PrimitiveCount == 272 && Stride == 32) || \
    (NumVertices == 841 && StartIndex == 116944 && PrimitiveCount == 648 && Stride == 32) || \
    (NumVertices == 13 && StartIndex == 121880 && PrimitiveCount == 12 && Stride == 32) || \
    (NumVertices == 1024 && StartIndex == 119704 && PrimitiveCount == 690 && Stride == 32) || \
    (NumVertices == 45 && StartIndex == 121776 && PrimitiveCount == 34 && Stride == 32))
    
    #define M40A3_Sniper_ACOG_handheld \
    ((NumVertices == 739 && StartIndex == 98480 && PrimitiveCount == 576 && Stride == 32) || \
    (NumVertices == 284 && StartIndex == 118888 && PrimitiveCount == 272 && Stride == 32) || \
    (NumVertices == 1024 && StartIndex == 119704 && PrimitiveCount == 690 && Stride == 32) || \
    (NumVertices == 9 && StartIndex == 54656 && PrimitiveCount == 8 && Stride == 32) || \
    (NumVertices == 8 && StartIndex == 54680 && PrimitiveCount == 6 && Stride == 32) || \
    (NumVertices == 48 && StartIndex == 54560 && PrimitiveCount == 30 && Stride == 32) || \
    (NumVertices == 45 && StartIndex == 121776 && PrimitiveCount == 34 && Stride == 32))
    
    #define W1200_Shotgun_NOATTACH_handheld \
    ((NumVertices == 232 && StartIndex == 328552 && PrimitiveCount == 184 && Stride == 32) || \
    (NumVertices == 134 && StartIndex == 333200 && PrimitiveCount == 112 && Stride == 32) || \
    (NumVertices == 546 && StartIndex == 329104 && PrimitiveCount == 444 && Stride == 32) || \
    (NumVertices == 1204 && StartIndex == 330440 && PrimitiveCount == 918 && Stride == 32) || \
    (NumVertices == 190 && StartIndex == 333536 && PrimitiveCount == 148 && Stride == 32))
    
    #define W1200_Shotgun_REDDOT_handheld \
    ((NumVertices == 374 && StartIndex == 97616 && PrimitiveCount == 286 && Stride == 32) || \
    (NumVertices == 232 && StartIndex == 328552 && PrimitiveCount == 184 && Stride == 32) || \
    (NumVertices == 134 && StartIndex == 333200 && PrimitiveCount == 112 && Stride == 32) || \
    (NumVertices == 546 && StartIndex == 329104 && PrimitiveCount == 444 && Stride == 32) || \
    (NumVertices == 6 && StartIndex == 53064 && PrimitiveCount == 4 && Stride == 32) || \
    (NumVertices == 1204 && StartIndex == 330440 && PrimitiveCount == 918 && Stride == 32) || \
    (NumVertices == 190 && StartIndex == 333536 && PrimitiveCount == 148 && Stride == 32))
    
    #define M249SAW_NOATTACH_handheld \
    ((NumVertices == 1055 && StartIndex == 150600 && PrimitiveCount == 728 && Stride == 32) || \
    (NumVertices == 171 && StartIndex == 150240 && PrimitiveCount == 120 && Stride == 32) || \
    (NumVertices == 337 && StartIndex == 152784 && PrimitiveCount == 248 && Stride == 32) || \
    (NumVertices == 640 && StartIndex == 155208 && PrimitiveCount == 524 && Stride == 32) || \
    (NumVertices == 514 && StartIndex == 153528 && PrimitiveCount == 434 && Stride == 32) || \
    (NumVertices == 246 && StartIndex == 156784 && PrimitiveCount == 216 && Stride == 32))
    
    #define M249SAW_REDDOT_handheld \
    ((NumVertices == 374 && StartIndex == 97616 && PrimitiveCount == 286 && Stride == 32) || \
    (NumVertices == 1055 && StartIndex == 150600 && PrimitiveCount == 728 && Stride == 32) || \
    (NumVertices == 640 && StartIndex == 155208 && PrimitiveCount == 524 && Stride == 32) || \
    (NumVertices == 337 && StartIndex == 152784 && PrimitiveCount == 248 && Stride == 32) || \
    (NumVertices == 246 && StartIndex == 156784 && PrimitiveCount == 216 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 22614 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 22641 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 22863 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 6 && StartIndex == 53064 && PrimitiveCount == 4 && Stride == 32))
    
    #define M249SAW_GRIP_handheld \
    ((NumVertices == 1055 && StartIndex == 150600 && PrimitiveCount == 728 && Stride == 32) || \
    (NumVertices == 171 && StartIndex == 150240 && PrimitiveCount == 120 && Stride == 32) || \
    (NumVertices == 337 && StartIndex == 152784 && PrimitiveCount == 248 && Stride == 32) || \
    (NumVertices == 640 && StartIndex == 155208 && PrimitiveCount == 524 && Stride == 32) || \
    (NumVertices == 514 && StartIndex == 153528 && PrimitiveCount == 434 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 40701 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 171 && StartIndex == 154832 && PrimitiveCount == 124 && Stride == 32) || \
    (NumVertices == 246 && StartIndex == 156784 && PrimitiveCount == 216 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 40692 && PrimitiveCount == 2 && Stride == 32))
    
    #define M249SAW_ACOG_handheld \
    ((NumVertices == 785 && StartIndex == 157432 && PrimitiveCount == 606 && Stride == 32) || \
    (NumVertices == 1055 && StartIndex == 150600 && PrimitiveCount == 728 && Stride == 32) || \
    (NumVertices == 640 && StartIndex == 155208 && PrimitiveCount == 524 && Stride == 32) || \
    (NumVertices == 337 && StartIndex == 152784 && PrimitiveCount == 248 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 66030 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 66057 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 82209 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 82254 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 82260 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 66102 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 52 && StartIndex == 159256 && PrimitiveCount == 32 && Stride == 32) || \
    (NumVertices == 9 && StartIndex == 54656 && PrimitiveCount == 8 && Stride == 32) || \
    (NumVertices == 8 && StartIndex == 54680 && PrimitiveCount == 6 && Stride == 32) || \
    (NumVertices == 246 && StartIndex == 156784 && PrimitiveCount == 216 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 46998 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 95826 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 95844 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 95850 && PrimitiveCount == 2 && Stride == 32))
    
    
    #define MP5NAVY_NOATTACH_handheld \
    ((NumVertices == 1329 && StartIndex == 64872 && PrimitiveCount == 1038 && Stride == 32) || \
    (NumVertices == 164 && StartIndex == 64456 && PrimitiveCount == 138 && Stride == 32) || \
    (NumVertices == 468 && StartIndex == 67992 && PrimitiveCount == 384 && Stride == 32))
    
    #define MP5NAVY_SIL_handheld \
    ((NumVertices == 1367 && StartIndex == 74848 && PrimitiveCount == 1068 && Stride == 32) || \
    (NumVertices == 58 && StartIndex == 78848 && PrimitiveCount == 56 && Stride == 32) || \
    (NumVertices == 322 && StartIndex == 78056 && PrimitiveCount == 264 && Stride == 32) || \
    (NumVertices == 164 && StartIndex == 64456 && PrimitiveCount == 138 && Stride == 32))
    
    #define MP5NAVY_REDDOT_handheld \
    ((NumVertices == 1329 && StartIndex == 64872 && PrimitiveCount == 1038 && Stride == 32) || \
    (NumVertices == 164 && StartIndex == 64456 && PrimitiveCount == 138 && Stride == 32) || \
    (NumVertices == 299 && StartIndex == 69144 && PrimitiveCount == 242 && Stride == 32) || \
    (NumVertices == 374 && StartIndex == 51880 && PrimitiveCount == 286 && Stride == 32) || \
    (NumVertices == 299 && StartIndex == 69144 && PrimitiveCount == 242 && Stride == 32) || \
    (NumVertices == 202 && StartIndex == 69872 && PrimitiveCount == 126 && Stride == 32) || \
    (NumVertices == 468 && StartIndex == 67992 && PrimitiveCount == 384 && Stride == 32) || \
    (NumVertices == 6 && StartIndex == 53064 && PrimitiveCount == 4 && Stride == 32))
    
    #define MP5NAVY_ACOG_handheld \
    ((NumVertices == 640 && StartIndex == 53080 && PrimitiveCount == 492 && Stride == 32) || \
    (NumVertices == 202 && StartIndex == 69872 && PrimitiveCount == 126 && Stride == 32) || \
    (NumVertices == 1329 && StartIndex == 64872 && PrimitiveCount == 1038 && Stride == 32) || \
    (NumVertices == 164 && StartIndex == 64456 && PrimitiveCount == 138 && Stride == 32) || \
    (NumVertices == 468 && StartIndex == 67992 && PrimitiveCount == 384 && Stride == 32) || \
    (NumVertices == 9 && StartIndex == 54656 && PrimitiveCount == 8 && Stride == 32) || \
    (NumVertices == 8 && StartIndex == 54680 && PrimitiveCount == 6 && Stride == 32) || \
    (NumVertices == 48 && StartIndex == 54560 && PrimitiveCount == 30 && Stride == 32))
    
    #define M16A4_NOATTACH_handheld \
    ((NumVertices == 1600 && StartIndex == 92544 && PrimitiveCount == 978 && Stride == 32) || \
    (NumVertices == 188 && StartIndex == 97192 && PrimitiveCount == 140 && Stride == 32) || \
    (NumVertices == 775 && StartIndex == 95480 && PrimitiveCount == 570 && Stride == 32))
    
    #define M16A4_GL_handheld \
    ((NumVertices == 2122 && StartIndex == 109000 && PrimitiveCount == 1430 && Stride == 32) || \
    (NumVertices == 299 && StartIndex == 108328 && PrimitiveCount == 224 && Stride == 32) || \
    (NumVertices == 72 && StartIndex == 113296 && PrimitiveCount == 94 && Stride == 32))
    
    #define M16A4_SIL_handheld \
    ((NumVertices == 775 && StartIndex == 95480 && PrimitiveCount == 570 && Stride == 32) || \
    (NumVertices == 1764 && StartIndex == 103472 && PrimitiveCount == 1070 && Stride == 32) || \
    (NumVertices == 50 && StartIndex == 108128 && PrimitiveCount == 40 && Stride == 32) || \
    (NumVertices == 611 && StartIndex == 106688 && PrimitiveCount == 478 && Stride == 32) || \
    (NumVertices == 188 && StartIndex == 97192 && PrimitiveCount == 140 && Stride == 32))
    
    #define M16A4_REDDOT_handheld \
    ((NumVertices == 1600 && StartIndex == 92544 && PrimitiveCount == 978 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 57960 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 71943 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 72261 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 188 && StartIndex == 97192 && PrimitiveCount == 140 && Stride == 32) || \
    (NumVertices == 374 && StartIndex == 97616 && PrimitiveCount == 286 && Stride == 32))
    
    #define M16A4_ACOG_handheld \
    ((NumVertices == 1600 && StartIndex == 92544 && PrimitiveCount == 978 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 57960 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 71943 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 4 && StartIndex == 72261 && PrimitiveCount == 2 && Stride == 32) || \
    (NumVertices == 188 && StartIndex == 97192 && PrimitiveCount == 140 && Stride == 32) || \
    (NumVertices == 374 && StartIndex == 97616 && PrimitiveCount == 286 && Stride == 32) || \
    (NumVertices == 739 && StartIndex == 98480 && PrimitiveCount == 576 && Stride == 32) || \
    (NumVertices == 9 && StartIndex == 54656 && PrimitiveCount == 8 && Stride == 32) || \
    (NumVertices == 8 && StartIndex == 54680 && PrimitiveCount == 6 && Stride == 32) || \
    (NumVertices == 48 && StartIndex == 54560 && PrimitiveCount == 30 && Stride == 32))
    Last edited by (+)_; February 23rd, 2013 at 15:33.

  3. #3
    Coders (+)_'s Avatar
    Join Date
    Jan 2010
    Location
    Earth
    Posts
    459

    Re: D3D Stride Logger 2013

    Updated!

Similar Threads

  1. Texture CRC 2013
    By (+)_ in forum D3D
    Replies: 7
    Last Post: April 4th, 2013, 07:56
  2. Texture CRC 2013 V2
    By (+)_ in forum D3D
    Replies: 0
    Last Post: March 1st, 2013, 20:50
  3. Replies: 1
    Last Post: February 18th, 2010, 07:10
  4. Address logger for any game
    By NickIsNice in forum Tutorials
    Replies: 1
    Last Post: May 2nd, 2009, 23:47
  5. ModelRec Logger
    By siLenCer in forum D3D
    Replies: 4
    Last Post: September 15th, 2007, 18:22

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •