en vez de nopear, cambia el MOV DWORD PTR DS:[100C39A4],xxx, para que se mueva a dicha dirección el valor 1, ya que las comparaciones por 0 son las malas, cuando se compara por 1 debe ser el valor idoneo según se ve en otras comparaciones de las expuestas por MCKSys.
como a la dirección 100C39A4 se mueve por ejemplo el valor de EAX en ese momento, intenta previamente poner a EAX con el valor 1, por ejemplo con
XOR EAX,EAX ; pones EAX a cero
INC EAX ; incrementas el valor de eax en 1, 0+1= 1
MOV DWORD PTR DS:[100C39A4],EAX
Tambien prueba a sumarle 2, ó incluso a mover el valor FF, pues segun las comparaciones posteriores puede que necesite valores superiores a 0 ó 1 (o valores negativos -FF)
Por suerte donde aparece los primeros MOV añadi otro MOV arriba
MOV EAX,1
MOV DWORD PTR DS:[100C39A4],EAX
tambien intente con MOV EAX,0 y MOV EAX,-1 antes de eso y nada si pruebo un juego en el proj.ect64 1.7 funciona apesar de que tuvo que sacrificar 2 intruciones mas arribas de eso, pero sigue saliendo la misma ventana
Ahora hablando del tercer MOV, si modifico antes no funciona ni la ventana, ni el juego, claro el projec.t64 1.7 abre, pero en el Mupen 64 sigue apareciendo la mis ventana de Direct3D8
El caso es que es dificil hacer que aparezca la ventana de configuración del plugin en Mupen64 y el que aparezca la ventana de error de
Direct3D8 en el Proje.ct64 1.7 tambien por ese lado pasa que sigue sin aparecer la ventana
Si por ejemplo yo obligara que 100C39A4 que valiera 0 la ventana de direct3d8 tampoco aparece en el Projec.64 1.7
antes de los 3 MOV eso es como raro???----------------------------------
----------------------------------
Eso me hace pensar que de haber algo que modifique la direccion
100C39A4 antes o despues y ese algo podria ser el mismo emulador digo?? para ve que ocurre con el emulador proje.ct64.exe modifique esto para ver que pasaba
(OJO esta captura es del emulador EXE)hasta incluso con una sola letra, ejemplo una k el emulador tambien
Y cuando hago ese cambio y busco cambiar la configuracion grafica no abre ninguna ventana por mas que lo intento, ah pero en el mupen64 si saca la ventanita???
Con ese cambio en el emulador puedo jugar normalmente con otros plugins, menos con el bendito plugin
Quise averiguar que ocurria si colocaba todo en cero
(OJO esta captura es del emulador EXE)Y con eso siquiera carga el emulador, solo se queda colgado en memoria y la unica forma de verlo es con el administrador de tareas
Yo quiero darte henryxs87 mi punto de vista: mira en la primera imagen que has puesto te sale el mensaje "initialize the dll before you try config it!". Es fácil saltarlo y seguramente si modificas todos los saltos te funcione pero... yo me preguntaría ¿por qué narices sale ese mensaje? ¿realmente es una protección a posta del programador?
Mi opinión es que tal vez deberías indagar un poco más con ese mensaje. Fíjate está diciendo que no configures el plugin porque todavía no ha sido inicializado. Podría ser verdad. Por eso también es posible que se haya colgado el programa. Tal vez la protección real haya sido que ha saltado por alto la subrutina de inicialización. ¿Por qué? PUes esto es lo que hay que buscar.
Con un editor de PE cualquiera puedes examinar dónde se encuentra esa subrutina. Puedes ponerle un bp y ejecutar el programa desde el emulador project a ver de dónde es llamada y después haces lo mismo desde el otro emulador y comparas a ver...
Yo es que primero iría a ver por qué sale el mensaje no lo evitaría directamente sin saber por qué...
Saludos
En verdad gracias por el punto de vista, mientas mas ayuda reciba mejor
Lo que ocurre es que elegi comenzar por alli fue porque es la primera ventana que sale al intentar abrir el plugin en el caso del Mupen y en el otro emulador si se cumple la condicion saca la ventana que deberia(la de configurar la parte grafica) y como todo ta de una vez junto
Si vez el primer mensaje que puse en la 2 y 3 era captura se puede ver que aparecen casi todos los elementos de las 2 ventanas para ambos emuladores, por eso me parecio bien comenzar por alli
Y si cambio el JZN por un JE(que esta en las primeras capturas que puse), las ventanas del emuladores se invienten, la que salia en uno sale en el otro y viceversa
Lo del editor PE la verdad que no se de que manera me podria ayudar, pero mas o menos pude deducir que te refieras a esto, creo??
Con eso se pued visualizar muchas de las ventanas que mustra el plugin, pero la ventana que aparece en el mupen no se relaciona con ninguno de esos valores
Pero claro mas o menos con los nombres se podria deducir, que
DLLConfig es la que mas se relaciona con esa rutina
en el resto de la ventana del LORD PE sale esto
->Export Table
Characteristics: 0x00000000
TimeDateStamp: 0x495BED80 (GMT: Wed Dec 31 22:09:04 2008)
MajorVersion: 0x0000
MinorVersion: 0x0000 -> 0.00
Name: 0x000BDAD8 ("Jabo_Direct3D8.dll")
Base: 0x00000001
NumberOfFunctions: 0x00000018
NumberOfNames: 0x00000018
AddressOfFunctions: 0x000BD9E8
AddressOfNames: 0x000BDA48
AddressOfNameOrdinals: 0x000BDAA8
Ordinal RVA Symbol Name
------- ---------- ----------------------------------
0x0001 0x0000A940 "CaptureScreen"
0x0002 0x000083E0 "ChangeWindow"
0x0003 0x00007EA0 "CloseDLL"
0x0004 0x0000A530 "DllAbout"
0x0005 0x0000A5A0 "DllConfig"
0x0006 0x000080A0 "DrawFullScreenStatus"
0x0007 0x00007FB0 "DrawScreen"
0x0008 0x00008010 "GetDllInfo"
0x0009 0x00007F80 "GetRomBrowserMenu"
0x000A 0x0000ADD0 "InitiateGFX"
0x000B 0x00008060 "MoveScreen"
0x000C 0x0000BD10 "OnRomBrowserMenuItem"
0x000D 0x00008050 "PluginLoaded"
0x000E 0x000080C0 "ProcessDList"
0x000F 0x00008290 "ProcessRDPList"
0x0010 0x00008930 "RomClosed"
0x0011 0x0000B0C0 "RomOpen"
0x0012 0x00036640 "SetSettingInfo"
0x0013 0x00036670 "SetSettingInfo2"
0x0014 0x000083B0 "ShowCFB"
0x0015 0x00008320 "SoftReset"
0x0016 0x0000A760 "UpdateScreen"
0x0017 0x00028680 "ViStatusChanged"
0x0018 0x000083C0 "ViWidthChanged
No entendi muy bien de que manera que puede ayudar Lord PE y eso de que debo colocar los breakpoints desde el emulador, si el breakpoint deberia colocarlo en la Dll y el problema es que si cargo la DLL directamente desde Loaddll.exe no se ejecuta como deberia para marcar los breakpoint y que almenos pase por algunos de esos puntos
La unica forma posible que encontre para tracear en la dll es usando "New origin here" desde un punto anterior a lo que quise analizar
Bueno ya dije mas menos lo que pude analizar, Saludos!!!