Compilación de eMule LSD con CodeWarrior

Intenté compilar una versión de MOD LSD de eMule optimizada para Athlon XP. Hace algunos años, vi que el mejor compilador Windows para los procesadores de AMD era el CodeWarrior de Metrowerks.

Así que procedí a bajar los fuentes del eMule 0.44d LSD 19b 1061 (Lambda 1), y descargué la versión de evaluación de CodeWarrior Development Studio for Windows 9.3.

Al abrir el proyecto original en Visual C++ 7.1, la mayoría de cosas se importaron bien, y solo tuve que agregar manualmente algunas referencias.

El proceso de compilación dio unos pocos errores, así que yendo bastante a saco, agregué algunos #ifdef, y algunos #define.

Al final del proceso, todo compiló correctamente, y para mi sorpresa, el ejecutable resultante era mucho menor que el de la compilación oficial del Dr. LSD.

Lanzo mi binario, y nada más arrancar, genera un error de protección de Windows, y se cierra el proceso. No creo que sea un error de CodeWarrior, sino que más bien, por diferencias de sintaxis menores con Visual C++, la compilación condicional que modifiqué debió romper algo.

El caso es que los 4 Gb que tenía en mi cola de descarga desaparecieron por completo. Todos los archivos .met y .met.bak habían sido borrados, o bien corrompidos.

La mala noticia es que he tenido que volverlos a poner a descargar, perdiendo todo lo que ya se había bajado. La buena es que he visto que es posible compilar eMule con CodeWarrior sin demasiado esfuerzo, pero eso si, modificando el código con cuidado y tranquilidad.

Cuando tenga el tiempo suficiente intentaré compilar varias versiones para los usuarios de procesadores AMD. Se que el MOD de LSD incluye ciertas optimizaciones para CPU concretas, pero éstas se reducen a memcpy y poco más. Una compilación así, debe dar un rendimiento muchísimo más elevado.

Compilación de eMule LSD con CodeWarrior

2 comentarios en “Compilación de eMule LSD con CodeWarrior”

  1. Hola Javier.
    Me parece magnifico si puedes compilar versiones que se adapten a los Amd. Estoy algo cansado que todo sea para Intel(aunque comprende que es el que "todavia" manda).
    Por otra parte me encanta tu Blog y espero poder leerlo durante mucho tiempo.
    Un saludo y suerte.

  2. Javier Gutiérrez Chamorro (Guti)

    Hola Miguel,

    A priori desconozco si una compilación especialmente optimizada para AMD, dará un rendimiento mucho mejor en el programa o no. De hecho, mi experimento intentaba precisamente averiguar eso.

    Es posible que algo así, mejore sustancialmente el rendimiento, aunque creo que la mejora será mínima, en torno al 10%, como ocurría con algunos MOD optimizados con el compilador de Intel.

    Supongo que el cuello de botella es el propio sistema operativo abriendo y cerrando sockets, y reservando y liberando memoria; más que el propio algoritmo del programa.

    Incluso en el caso del 10% que no sería mucho, ya me daría por contento.

    En fin, te mantendré informado de mis progresos… Al igual que tu, también creo que los usuarios de AMD (que somos minoría, pero cada vez somos más), nos lo merecemos.

    Es curioso que no se le haya ocurrido a ningún modder hacer una compilación específica para AMD.

Deja un comentario