Jump to content

Search REVERSER / ENGINEER / ASM/ASSEMBLY For Fix ErrorLog.txt


Recommended Posts

  • Premium

flat,800x800,075,t.u2.jpg

Edited by Metin2 Dev
Core X - External 2 Internal

 

"Nothing's free in this life.

Ignorant people have an obligation to make up for their ignorance by paying those who help them.

Either you got the brains or cash, if you lack both you're useless."

Syreldar

Link to comment
Share on other sites

  • Bot
On 13/2/2018 at 9:36 AM, metin2team said:

Okay then,

back to the real matter, you have to use error_lookup.py along with the metin2client.map

like

6ff2a27c44.png

then the crash's offset.

GL again.

Finally i found the errors, and i solved one of them.

Now i need solve this:

You Search This Offset: 0058fa24
------------------------------------------------------------------------------------------
0x58F9E0L => ('?BeginEnvironment@CMapManager@@QAEXXZ', 'gamelib:MapManager')
Crash Code Offset Is: 68 ( 0x44L )
------------------------------------------------------------------------------------------
THE FUNCTION CODE:
------------------------------------------------------------------------------------------

?BeginEnvironment@CMapManager@@QAEXXZ PROC        ; CMapManager::BeginEnvironment, COMDAT
; _this$ = ecx

; 221  : {

  00000    55         push     ebp
  00001    8b ec         mov     ebp, esp
  00003    83 ec 0c     sub     esp, 12            ; 0000000cH
  00006    57         push     edi
  00007    8b f9         mov     edi, ecx

; 222  :     if (!m_pkMap)

  00009    83 bf 48 14 00
    00 00         cmp     DWORD PTR [edi+5192], 0

  00010    0f 84 93 02 00
    00         je     $LN8@BeginEnvir

; 223  :         return;
; 224  : 
; 225  :     if (!mc_pcurEnvironmentData)

  00016    83 bf 44 14 00
    00 00         cmp     DWORD PTR [edi+5188], 0
  0001d    0f 84 86 02 00
    00         je     $LN8@BeginEnvir

; 226  :         return;
; 227  : 
; 228  :     CMapOutdoor& rkMap=GetMapOutdoorRef();


  00023    53         push     ebx
  00024    56         push     esi
  00025    e8 00 00 00 00     call     ?GetMapOutdoorRef@CMapManager@@QAEAAVCMapOutdoor@@XZ ; CMapManager::GetMapOutdoorRef

; 229  : 
; 230  :     // Light always on
; 231  :      STATEMANAGER.SaveRenderState(D3DRS_LIGHTING, TRUE);

  0002a    8b 0d 00 00 00
    00         mov     ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCStateManager@@@@0PAVCStateManager@@A ; CSingleton<CStateManager>::ms_singleton
  00030    8b d8         mov     ebx, eax
  00032    6a 01         push     1
  00034    68 89 00 00 00     push     137            ; 00000089H
  00039    e8 00 00 00 00     call     ?SaveRenderState@CStateManager@@QAEXW4_D3DRENDERSTATETYPE@@K@Z ; CStateManager::SaveRenderState


; 232  : 
; 233  :     // Fog
; 234  :      STATEMANAGER.SaveRenderState(D3DRS_FOGENABLE, mc_pcurEnvironmentData->bFogEnable);

  0003e    8b 8f 44 14 00
    00         mov     ecx, DWORD PTR [edi+5188]
  00044    ff b1 1c 01 00
    00         push     DWORD PTR [ecx+284]
  0004a    8b 0d 00 00 00
    00         mov     ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCStateManager@@@@0PAVCStateManager@@A ; CSingleton<CStateManager>::ms_singleton
  00050    6a 1c         push     28            ; 0000001cH
  00052    e8 00 00 00 00     call     ?SaveRenderState@CStateManager@@QAEXW4_D3DRENDERSTATETYPE@@K@Z ; CStateManager::SaveRenderState

; 235  : 

; 236  :     // Material
; 237  :     STATEMANAGER.SetMaterial(&mc_pcurEnvironmentData->Material);

  00057    8b 87 44 14 00
    00         mov     eax, DWORD PTR [edi+5188]
  0005d    8b 0d 00 00 00
    00         mov     ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCStateManager@@@@0PAVCStateManager@@A ; CSingleton<CStateManager>::ms_singleton
  00063    05 d8 00 00 00     add     eax, 216        ; 000000d8H
  00068    50         push     eax
  00069    e8 00 00 00 00     call     ?SetMaterial@CStateManager@@QAEXPBU_D3DMATERIAL8@@@Z ; CStateManager::SetMaterial

; 238  : 
; 239  :     // Directional Light
; 240  :     if (mc_pcurEnvironmentData->bDirLightsEnable[ENV_DIRLIGHT_BACKGROUND])


  0006e    8b 87 44 14 00
    00         mov     eax, DWORD PTR [edi+5188]
  00074    83 38 00     cmp     DWORD PTR [eax], 0

; 241  :     {
; 242  :         ms_lpd3dDevice->LightEnable(0, TRUE);

  00077    a1 00 00 00 00     mov     eax, DWORD PTR ?ms_lpd3dDevice@CGraphicBase@@1PAUIDirect3DDevice8@@A ; CGraphicBase::ms_lpd3dDevice
  0007c    8b 08         mov     ecx, DWORD PTR [eax]
  0007e    74 1f         je     SHORT $LN5@BeginEnvir
  00080    6a 01         push     1
  00082    6a 00         push     0
  00084    50         push     eax
  00085    ff 91 b8 00 00
    00         call     DWORD PTR [ecx+184]


; 243  : 
; 244  :         rkMap.ApplyLight((DWORD)mc_pcurEnvironmentData, mc_pcurEnvironmentData->DirLights[ENV_DIRLIGHT_BACKGROUND]);        

  0008b    8b 8f 44 14 00
    00         mov     ecx, DWORD PTR [edi+5188]
  00091    8b 13         mov     edx, DWORD PTR [ebx]
  00093    8d 41 08     lea     eax, DWORD PTR [ecx+8]
  00096    50         push     eax
  00097    51         push     ecx
  00098    8b cb         mov     ecx, ebx
  0009a    ff 52 24     call     DWORD PTR [edx+36]

; 245  :     }
; 246  :     else


  0009d    eb 0b         jmp     SHORT $LN4@BeginEnvir
$LN5@BeginEnvir:

; 247  :         ms_lpd3dDevice->LightEnable(0, FALSE);

  0009f    6a 00         push     0
  000a1    6a 00         push     0
  000a3    50         push     eax
  000a4    ff 91 b8 00 00
    00         call     DWORD PTR [ecx+184]
$LN4@BeginEnvir:

; 248  : 
; 249  :     if (mc_pcurEnvironmentData->bFogEnable)


  000aa    8b b7 44 14 00
    00         mov     esi, DWORD PTR [edi+5188]
  000b0    83 be 1c 01 00
    00 00         cmp     DWORD PTR [esi+284], 0
  000b7    0f 84 e3 01 00
    00         je     $LN1@BeginEnvir
; File c:\users\raffaele\desktop\client source\srcs\extern\include\d3dx8math.inl

; 931  :     DWORD dwR = r >= 1.0f ? 0xff : r <= 0.0f ? 0x00 : (DWORD) (r * 255.0f + 0.5f);

  000bd    f3 0f 10 86 2c
    01 00 00     movss     xmm0, DWORD PTR [esi+300]
  000c5    0f 57 c9     xorps     xmm1, xmm1
  000c8    0f 2f 05 00 00

    00 00         comiss     xmm0, DWORD PTR __real@3f800000
  000cf    f3 0f 10 1d 00
    00 00 00     movss     xmm3, DWORD PTR __real@437f0000
  000d7    f3 0f 10 25 00
    00 00 00     movss     xmm4, DWORD PTR __real@3f000000
  000df    72 09         jb     SHORT $LN20@BeginEnvir
  000e1    c7 45 fc ff 00
    00 00         mov     DWORD PTR _dwR$1$[ebp], 255 ; 000000ffH
  000e8    eb 31         jmp     SHORT $LN19@BeginEnvir
$LN20@BeginEnvir:
  000ea    0f 2f c8     comiss     xmm1, xmm0
  000ed    72 09         jb     SHORT $LN18@BeginEnvir
  000ef    c7 45 fc 00 00
    00 00         mov     DWORD PTR _dwR$1$[ebp], 0
  000f6    eb 23         jmp     SHORT $LN19@BeginEnvir

$LN18@BeginEnvir:
  000f8    f3 0f 59 c3     mulss     xmm0, xmm3
  000fc    f3 0f 58 c4     addss     xmm0, xmm4
  00100    e8 00 00 00 00     call     __ftoui3
  00105    f3 0f 10 1d 00
    00 00 00     movss     xmm3, DWORD PTR __real@437f0000
  0010d    0f 57 c9     xorps     xmm1, xmm1
  00110    f3 0f 10 25 00
    00 00 00     movss     xmm4, DWORD PTR __real@3f000000
  00118    89 45 fc     mov     DWORD PTR _dwR$1$[ebp], eax
$LN19@BeginEnvir:

; 932  :     DWORD dwG = g >= 1.0f ? 0xff : g <= 0.0f ? 0x00 : (DWORD) (g * 255.0f + 0.5f);

  0011b    f3 0f 10 86 30

    01 00 00     movss     xmm0, DWORD PTR [esi+304]
  00123    0f 2f 05 00 00
    00 00         comiss     xmm0, DWORD PTR __real@3f800000
  0012a    72 09         jb     SHORT $LN24@BeginEnvir
  0012c    c7 45 f8 ff 00
    00 00         mov     DWORD PTR _dwG$1$[ebp], 255 ; 000000ffH
  00133    eb 1e         jmp     SHORT $LN23@BeginEnvir
$LN24@BeginEnvir:
  00135    0f 2f c8     comiss     xmm1, xmm0
  00138    72 09         jb     SHORT $LN22@BeginEnvir
  0013a    c7 45 f8 00 00
    00 00         mov     DWORD PTR _dwG$1$[ebp], 0
  00141    eb 10         jmp     SHORT $LN23@BeginEnvir
$LN22@BeginEnvir:
  00143    f3 0f 59 c3     mulss     xmm0, xmm3

  00147    f3 0f 58 c4     addss     xmm0, xmm4
  0014b    e8 00 00 00 00     call     __ftoui3
  00150    89 45 f8     mov     DWORD PTR _dwG$1$[ebp], eax
$LN23@BeginEnvir:

; 933  :     DWORD dwB = b >= 1.0f ? 0xff : b <= 0.0f ? 0x00 : (DWORD) (b * 255.0f + 0.5f);

  00153    f3 0f 10 86 34
    01 00 00     movss     xmm0, DWORD PTR [esi+308]
  0015b    0f 57 c9     xorps     xmm1, xmm1
  0015e    0f 2f 05 00 00
    00 00         comiss     xmm0, DWORD PTR __real@3f800000
  00165    72 09         jb     SHORT $LN28@BeginEnvir
  00167    c7 45 f4 ff 00
    00 00         mov     DWORD PTR _dwB$1$[ebp], 255 ; 000000ffH

  0016e    eb 29         jmp     SHORT $LN27@BeginEnvir
$LN28@BeginEnvir:
  00170    0f 2f c8     comiss     xmm1, xmm0
  00173    72 09         jb     SHORT $LN26@BeginEnvir
  00175    c7 45 f4 00 00
    00 00         mov     DWORD PTR _dwB$1$[ebp], 0
  0017c    eb 1b         jmp     SHORT $LN27@BeginEnvir
$LN26@BeginEnvir:
  0017e    f3 0f 59 05 00
    00 00 00     mulss     xmm0, DWORD PTR __real@437f0000
  00186    f3 0f 58 05 00
    00 00 00     addss     xmm0, DWORD PTR __real@3f000000
  0018e    e8 00 00 00 00     call     __ftoui3
  00193    89 45 f4     mov     DWORD PTR _dwB$1$[ebp], eax
  00196    0f 57 c9     xorps     xmm1, xmm1

$LN27@BeginEnvir:

; 934  :     DWORD dwA = a >= 1.0f ? 0xff : a <= 0.0f ? 0x00 : (DWORD) (a * 255.0f + 0.5f);

  00199    f3 0f 10 86 38
    01 00 00     movss     xmm0, DWORD PTR [esi+312]
  001a1    0f 2f 05 00 00
    00 00         comiss     xmm0, DWORD PTR __real@3f800000
  001a8    72 07         jb     SHORT $LN32@BeginEnvir
  001aa    b8 ff 00 00 00     mov     eax, 255        ; 000000ffH
  001af    eb 1e         jmp     SHORT $LN31@BeginEnvir
$LN32@BeginEnvir:
  001b1    0f 2f c8     comiss     xmm1, xmm0
  001b4    72 04         jb     SHORT $LN30@BeginEnvir
  001b6    33 c0         xor     eax, eax

  001b8    eb 15         jmp     SHORT $LN31@BeginEnvir
$LN30@BeginEnvir:
  001ba    f3 0f 59 05 00
    00 00 00     mulss     xmm0, DWORD PTR __real@437f0000
  001c2    f3 0f 58 05 00
    00 00 00     addss     xmm0, DWORD PTR __real@3f000000
  001ca    e8 00 00 00 00     call     __ftoui3
$LN31@BeginEnvir:
; File c:\users\raffaele\desktop\client source\srcs\client\gamelib\mapmanager.cpp

; 252  :         STATEMANAGER.SetRenderState(D3DRS_FOGCOLOR, dwFogColor);

  001cf    8b 0d 00 00 00
    00         mov     ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCStateManager@@@@0PAVCStateManager@@A ; CSingleton<CStateManager>::ms_singleton
  001d5    c1 e0 08     shl     eax, 8

  001d8    0b 45 fc     or     eax, DWORD PTR _dwR$1$[ebp]
; File c:\users\raffaele\desktop\client source\srcs\extern\include\d3dx8math.inl

; 936  :     return (dwA << 24) | (dwR << 16) | (dwG << 8) | dwB;

  001db    c1 e0 08     shl     eax, 8
; File c:\users\raffaele\desktop\client source\srcs\client\gamelib\mapmanager.cpp

; 252  :         STATEMANAGER.SetRenderState(D3DRS_FOGCOLOR, dwFogColor);

  001de    0b 45 f8     or     eax, DWORD PTR _dwG$1$[ebp]
; File c:\users\raffaele\desktop\client source\srcs\extern\include\d3dx8math.inl

; 936  :     return (dwA << 24) | (dwR << 16) | (dwG << 8) | dwB;


  001e1    c1 e0 08     shl     eax, 8
  001e4    0b 45 f4     or     eax, DWORD PTR _dwB$1$[ebp]
; File c:\users\raffaele\desktop\client source\srcs\client\gamelib\mapmanager.cpp

; 252  :         STATEMANAGER.SetRenderState(D3DRS_FOGCOLOR, dwFogColor);

  001e7    50         push     eax
  001e8    6a 22         push     34            ; 00000022H
  001ea    e8 00 00 00 00     call     ?SetRenderState@CStateManager@@QAEXW4_D3DRENDERSTATETYPE@@K@Z ; CStateManager::SetRenderState

; 253  : 
; 254  :         if (mc_pcurEnvironmentData->bDensityFog)

  001ef    8b 8f 44 14 00
    00         mov     ecx, DWORD PTR [edi+5188]

  001f5    83 b9 20 01 00
    00 00         cmp     DWORD PTR [ecx+288], 0
  001fc    74 20         je     SHORT $LN2@BeginEnvir

; 255  :         {
; 256  :             float fDensity = 0.00015f;
; 257  :             STATEMANAGER.SetRenderState(D3DRS_FOGVERTEXMODE, D3DFOG_EXP);                    // pixel fog

  001fe    8b 0d 00 00 00
    00         mov     ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCStateManager@@@@0PAVCStateManager@@A ; CSingleton<CStateManager>::ms_singleton
  00204    6a 01         push     1
  00206    68 8c 00 00 00     push     140            ; 0000008cH
  0020b    c7 45 f4 52 49
    1d 39         mov     DWORD PTR _fDensity$2[ebp], 958220626 ; 391d4952H
  00212    e8 00 00 00 00     call     ?SetRenderState@CStateManager@@QAEXW4_D3DRENDERSTATETYPE@@K@Z ; CStateManager::SetRenderState


; 258  :             STATEMANAGER.SetRenderState(D3DRS_FOGDENSITY, *((DWORD *) &fDensity));            // vertex fog

  00217    ff 75 f4     push     DWORD PTR _fDensity$2[ebp]
  0021a    6a 26         push     38            ; 00000026H

; 259  :         }
; 260  :         else

  0021c    eb 77         jmp     SHORT $LN50@BeginEnvir
$LN2@BeginEnvir:

; 261  :         {
; 262  :             CSpeedTreeForestDirectX8& rkForest=CSpeedTreeForestDirectX8::Instance();


  0021e    8b 35 00 00 00
    00         mov     esi, DWORD PTR ?ms_singleton@?$CSingleton@VCSpeedTreeForestDirectX8@@@@0PAVCSpeedTreeForestDirectX8@@A ; CSingleton<CSpeedTreeForestDirectX8>::ms_singleton

; 263  :             rkForest.SetFog(
; 264  :                 mc_pcurEnvironmentData->GetFogNearDistance(), 
; 265  :                 mc_pcurEnvironmentData->GetFogFarDistance()
; 266  :             );

  00224    e8 00 00 00 00     call     ?GetFogFarDistance@SEnvironmentData@@QBEMXZ ; SEnvironmentData::GetFogFarDistance
  00229    51         push     ecx
  0022a    8b 8f 44 14 00
    00         mov     ecx, DWORD PTR [edi+5188]
  00230    d9 1c 24     fstp     DWORD PTR [esp]
  00233    e8 00 00 00 00     call     ?GetFogNearDistance@SEnvironmentData@@QBEMXZ ; SEnvironmentData::GetFogNearDistance
  00238    51         push     ecx

  00239    8b ce         mov     ecx, esi
  0023b    d9 1c 24     fstp     DWORD PTR [esp]
  0023e    e8 00 00 00 00     call     ?SetFog@CSpeedTreeForest@@QAEXMM@Z ; CSpeedTreeForest::SetFog

; 267  : 
; 268  :             float fFogNear=mc_pcurEnvironmentData->GetFogNearDistance();

  00243    8b 8f 44 14 00
    00         mov     ecx, DWORD PTR [edi+5188]
  00249    e8 00 00 00 00     call     ?GetFogNearDistance@SEnvironmentData@@QBEMXZ ; SEnvironmentData::GetFogNearDistance

; 269  :             float fFogFar=mc_pcurEnvironmentData->GetFogFarDistance();

  0024e    8b 8f 44 14 00
    00         mov     ecx, DWORD PTR [edi+5188]

  00254    d9 5d f4     fstp     DWORD PTR _fFogNear$1[ebp]
  00257    e8 00 00 00 00     call     ?GetFogFarDistance@SEnvironmentData@@QBEMXZ ; SEnvironmentData::GetFogFarDistance

; 270  :             STATEMANAGER.SetRenderState(D3DRS_FOGVERTEXMODE, D3DFOG_LINEAR);                                // vertex fox

  0025c    8b 0d 00 00 00
    00         mov     ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCStateManager@@@@0PAVCStateManager@@A ; CSingleton<CStateManager>::ms_singleton
  00262    6a 03         push     3
  00264    68 8c 00 00 00     push     140            ; 0000008cH
  00269    d9 5d f8     fstp     DWORD PTR _fFogFar$3[ebp]
  0026c    e8 00 00 00 00     call     ?SetRenderState@CStateManager@@QAEXW4_D3DRENDERSTATETYPE@@K@Z ; CStateManager::SetRenderState

; 271  :             STATEMANAGER.SetRenderState(D3DRS_RANGEFOGENABLE, TRUE);                                            // vertex fox

  00271    8b 0d 00 00 00

    00         mov     ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCStateManager@@@@0PAVCStateManager@@A ; CSingleton<CStateManager>::ms_singleton
  00277    6a 01         push     1
  00279    6a 30         push     48            ; 00000030H
  0027b    e8 00 00 00 00     call     ?SetRenderState@CStateManager@@QAEXW4_D3DRENDERSTATETYPE@@K@Z ; CStateManager::SetRenderState

; 272  :             STATEMANAGER.SetRenderState(D3DRS_FOGSTART, *((DWORD *) &fFogNear));    // USED BY D3DFOG_LINEAR

  00280    ff 75 f4     push     DWORD PTR _fFogNear$1[ebp]
  00283    8b 0d 00 00 00
    00         mov     ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCStateManager@@@@0PAVCStateManager@@A ; CSingleton<CStateManager>::ms_singleton
  00289    6a 24         push     36            ; 00000024H
  0028b    e8 00 00 00 00     call     ?SetRenderState@CStateManager@@QAEXW4_D3DRENDERSTATETYPE@@K@Z ; CStateManager::SetRenderState

; 273  :             STATEMANAGER.SetRenderState(D3DRS_FOGEND, *((DWORD *) &fFogFar));        // USED BY D3DFOG_LINEAR


  00290    ff 75 f8     push     DWORD PTR _fFogFar$3[ebp]
  00293    6a 25         push     37            ; 00000025H
$LN50@BeginEnvir:
  00295    8b 0d 00 00 00
    00         mov     ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCStateManager@@@@0PAVCStateManager@@A ; CSingleton<CStateManager>::ms_singleton
  0029b    e8 00 00 00 00     call     ?SetRenderState@CStateManager@@QAEXW4_D3DRENDERSTATETYPE@@K@Z ; CStateManager::SetRenderState
$LN1@BeginEnvir:

; 274  :         }
; 275  :     }
; 276  : 
; 277  :     rkMap.OnBeginEnvironment();

  002a0    8b 03         mov     eax, DWORD PTR [ebx]
  002a2    8b cb         mov     ecx, ebx

  002a4    ff 50 20     call     DWORD PTR [eax+32]
  002a7    5e         pop     esi
  002a8    5b         pop     ebx
$LN8@BeginEnvir:
  002a9    5f         pop     edi

; 278  : }

  002aa    8b e5         mov     esp, ebp
  002ac    5d         pop     ebp
  002ad    c3         ret     0
?BeginEnvironment@CMapManager@@QAEXXZ ENDP        ; CMapManager::BeginEnvironment

 

THE PROBLEM IS THIS FUNCTION!

STATEMANAGER.SetMaterial(&mc_pcurEnvironmentData->Material);

Edited by Metin2 Dev
Core X - External 2 Internal

english_banner.gif

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



  • Similar Content

  • Activity

    1. 5

      Effect weapons

    2. 3

      Crystal Metinstone

    3. 3

      Feeding game source to LLM

    4. 113

      Ulthar SF V2 (TMP4 Base)

    5. 3

      Feeding game source to LLM

    6. 0

      Target Information System

    7. 3

      Feeding game source to LLM

    8. 2

      anti exp explanation pls

  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.