From b73dd446fb4e4da99218b1c643cdc4d896ab04f0b0e96a9f3de6a427f5c74039 Mon Sep 17 00:00:00 2001 From: Gabriel Lorenzo Date: Sun, 8 Sep 2002 23:43:45 +0000 Subject: [PATCH] introducing.. IconChanger!! :D --- ediv/CHANGE_LOG.txt | 7 + ediv/bin/pacoman.ico | Bin 0 -> 8854 bytes ediv/propuestas.txt | 4 +- ediv/src/iconchanger/iconchanger.c | 143 ++++++++++++++++++ ediv/src/iconchanger/image.h | 22 +++ ediv/src/visual c/ediv_ws.sln | 10 ++ ediv/src/visual c/ediv_ws.suo | Bin 16384 -> 19968 bytes .../visual c/iconchanger/iconchanger.vcproj | 123 +++++++++++++++ 8 files changed, 308 insertions(+), 1 deletion(-) create mode 100644 ediv/bin/pacoman.ico create mode 100644 ediv/src/iconchanger/iconchanger.c create mode 100644 ediv/src/iconchanger/image.h create mode 100644 ediv/src/visual c/iconchanger/iconchanger.vcproj diff --git a/ediv/CHANGE_LOG.txt b/ediv/CHANGE_LOG.txt index 0aeb2a2..2c804e4 100644 --- a/ediv/CHANGE_LOG.txt +++ b/ediv/CHANGE_LOG.txt @@ -1,3 +1,10 @@ +9/9/2002 +-------- + * Le he añadido icono al stub, y también he hecho un programa (iconchanger) + para cambiárselo después de haber compilado un programa con ediv. mola + eh? :) incluyo también un icono de pacman de ejemplo ke me kedó mu majo. + (Er_Makina) + 6/9/2002 -------- * Mejorado ligeramente el sistema de indexado de variables, ya no estan diff --git a/ediv/bin/pacoman.ico b/ediv/bin/pacoman.ico new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..26a7415274ddf908565c4eefc5fdacb8737d93c49c023b714acef018e9622160 GIT binary patch literal 8854 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 I|2j|kH)kk?1^@s6 literal 0 HcmV?d00001 diff --git a/ediv/propuestas.txt b/ediv/propuestas.txt index 4e13976..6be1496 100644 --- a/ediv/propuestas.txt +++ b/ediv/propuestas.txt @@ -266,4 +266,6 @@ Some old people actually have life support systems with those functions built in http://www.cs.ukc.ac.uk/people/staff/rej/gc.html screen_color(int color) -rellena el fondo con un color \ No newline at end of file +rellena el fondo con un color + +Incluir Psycle (tracker musical) en el IDE: http://sourceforge.net/projects/psycle/ \ No newline at end of file diff --git a/ediv/src/iconchanger/iconchanger.c b/ediv/src/iconchanger/iconchanger.c new file mode 100644 index 0000000..934619e --- /dev/null +++ b/ediv/src/iconchanger/iconchanger.c @@ -0,0 +1,143 @@ +/* IconChanger + * Pequeña utilidad-complemento para eDIV que permite sustituir el icono del stub de + * win32 por otro. El icono nuevo debe ser exactamente igual que el original del stub, + * es decir, tiene que cumplir las siguientes condiciones: + * - Contener 6 imágenes en total: + * + 16x16 a 4, 8 y 24 bits de color + * + 32x32 a 4, 8 y 24 bits de color + * - "Pesar" exactamente 8.854 bytes. + * Este programa es muy simple así que no se molesta en comprobar el formato del fichero, + * únicamente comprueba su tamaño. Si metes un icono que no es adecuado.. allá tú.. + * Puede ser útil en el futuro currarnos un programa decente que soporte cualquier tipo + * de iconos, que cambiara el tamaño del exe, etc etc, ya sería la reostia, pero por + * ahora con esto nos sobra. + * Pekeño inconveniente: sólo se puede cambiar el icono 1 vez :p Si se kiere cambiar el + * icono por segunda vez, hay que recompilar el programa. En realidad no importa, ya que + * en verdad es lo que pasa en todos los compiladores... + * Si se kiere cambiar el icono y un virus te ha comido el ediv.exe o el .prg, pos tiras + * de Resource Hacker y a kaxkarla... + * + * Er_Makina + */ + +#include +#include +#include + +#include "image.h" + +#ifndef _WIN32 +#error IconChanger es sólamente para Win32 +#endif + +#define ICO_SIZE 8854 // Tamaño que debe tener el .ico +#define ICO_START 0x66 // Offset donde se empieza a leer el .ico +#define ICO_LEN 0x2230 // Tamaño del bloque a copiar del .ico al .exe + + +void* e_malloc(size_t size) +{ + void* ret; + + if(!(ret = malloc(size))) { + printf("ERROR: Memoria insuficiente.\n\n"); + exit(1); + } + + return ret; +} + +int main(int argc, char* argv[]) +{ + FILE* f; + unsigned char *exe,*ico; + int tamanyo; + int i,j; + int ok=0; + + printf("eDIV IconChanger - (c) Copyright Sion Ltd. 2002\n\n"); + if(argc!=3) { + printf("Modo de uso:\n\n %s \n\n",argv[0]); + exit(2); + } + + if((f=fopen(argv[2],"rb"))==NULL) { + printf("ERROR: No puedo abrir %s\n\n"); + exit(3); + } + + fseek(f,0,SEEK_END); + tamanyo=ftell(f); + if(tamanyo!=ICO_SIZE) { + fclose(f); + printf("ERROR: El icono no es del formato válido\n\n"); + printf("Te refrescaré la memoria:\nEl icono (.ico) DEBE contener 6 imágenes en total, a saber:\n"); + printf(" - 3 imágenes de 16x16 (a 4, 8 y 24 bits de color).\n"); + printf(" - 3 imágenes de 32x32 (a 4, 8 y 24 bits de color).\n"); + printf("No puede faltar ninguna, ya que el archivo debe ocupar EXACTAMENTE %d bytes.\n\n",ICO_SIZE); + exit(4); + } + + ico=(unsigned char*)e_malloc(tamanyo); + fseek(f,0,SEEK_SET); + fread(ico,tamanyo,1,f); + fclose(f); + + if((f=fopen(argv[1],"rb"))==NULL) { + printf("ERROR: No puedo abrir %s\n\n"); + exit(5); + } + + fseek(f,0,SEEK_END); + tamanyo=ftell(f); + fseek(f,0,SEEK_SET); + exe=(unsigned char*)e_malloc(tamanyo); /* no creo ke pase nada por unos 125 kb... + eso si, cuando se puedan meter el PAK y + las DLL's en el exe, va a haber ke cambiar + esto... */ + fread(exe,tamanyo,1,f); + fclose(f); + + // BUSKEDA + + printf("Buscando sitio donde meter mano en el exe...\n"); + + for(i=20;i zZsv}Z9L*KCTVcm-BWzE0@U`3=Zcn!EPv}-G2u}!zTlreTO0G5)MwFn}34Szjl_3_^ zbo6v5dX4(dStBh?%w4Zjs`aKd=BROa@+5__0c6tP(G{Rb?EwlV8L<<+D zrD{H_OHt10w4RJRMPv$|PAAAVvcMp-YntKBbLrLB;9S^PFN4$I40r{60=@^YgR|fqcmtdVZ-OBplQ>KiptnOe@1T7b zyaz6V_rWFb0r(JH2C~yfXh*;(_&DVI6zyl=bMOWD5_|=|2H${h!FON`$T1|7W#HbP zQ^obd{ft0{CnhWk>AcA@*}-xsiTa+!J#-Z;KT|IiQxR2Fp{k`CDx{s-<4%`|7G?w( zfgDz<(&M*CF|L0$qd*jpDKgzsf1<6 zRSBx840Ubrs>V!qQUPSsMQb6DP0*4bQt5=%Mj239Lm0({^A`|RL3YJ>6|XG&F*lT& zw0}qq4>(uzVfUal6mOk9UhDGc#Z*jsn3x0J>6nb!W4Oz6kT;Z{=5eFCz>VzH$Yk@V z(VS(2VV8HIvI9xzKw7raL-5G8lp7~6fA)Gf|=`Jt9NZ+#;mjEnzcfUL@zn9IqblJtCn1l zZw)Rxbd?XJ<%Cs+T1q${nyW@!3EC>OrKrnrVS{1zSg9qmoSEU4YTUEjdPS{(P&`Qu~q#}W_CNL3|BeI=b$h=##bnTq6nF-dag-ab#C&I9p_ z*>0Y{@#<4*=520)I1fMPx{ouhRvu3?v8gPFcc=OIV#QMS8C7l1!WM;>7RLt~uyCC? zm^y;BRFoH<4k)u7%8W*`|C2Uv7_B;}^va;VTgcDphSuC^wade?9kbbtBlCut;6z?# z%biQwM0J8Kmh8%#J($DpNRBb|ny2RVmkhCQ`Ta}&6yc)(VKVZl3?&JZ*~nR{Ia+Rl NQs}*0YMwtZ2_Ff5;JW-GZXu{!dC&jQ2D{ zvUU_yxCWPC4z9u^q+k}(&jFKT{vYM)Py09~_4K(2-7rOZL_*WVbB;m)udo<8Afm1x4A)&Q5$y82WKdZN<{gIBxWO-v(Ann&~#iZcbbb4xnE# z;Ok%n^T7bwEo86bw-aMH7VAZSyAh*De(kG|-t(W)Sm;UMlfLDSI^NS9kE=(EXpLNM z!1gwWi3brKYmD|b$856ZP{x8If$zgH969zJza%_F#e{i-8&feiX4_T#9P5&?zlOy0 Ap#T5? diff --git a/ediv/src/visual c/iconchanger/iconchanger.vcproj b/ediv/src/visual c/iconchanger/iconchanger.vcproj new file mode 100644 index 0000000..0669170 --- /dev/null +++ b/ediv/src/visual c/iconchanger/iconchanger.vcproj @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +