Categoría: Programas

Ifcaro’s Tetris versión Web

Como hace mucho tiempo que no actualizo la página y parece que no estoy haciendo nada (la verdad es que no estoy haciendo gran cosa en tema de proyectos personales) he pensado voy a coger el código fuente del tetris que hice en 2008 y lo voy a compilar con emscripten para hacer una versión web.

Primer problema, parece que no tengo guardado el código fuente original en ningún sitio así que me pongo a buscar como loco restos del desarrollo. Pensaba que estaba construido como el código del iRPGM que se podía compilar tanto para pc como para ps3 y que estaría guardado en la misma carpeta pero ni rastro.

Cuando ya iba a abandonar el proyecto encuentro en una carpeta con desarrollos de ps3 un código fuente del tetris de ps2 que había sido ligeramente modificado en un intento de hacerlo compilar para la ps3. Solamente tenía el código de la lógica del juego. Si quería hacer un port tendría que reescribir toda la parte de graficos, sonido e input.

Después de pensar un poco si me merecía la pena todo ese trabajo decido ponerme a ello. Me descargo la última versión de SDL y me dispongo a crear un proyecto de Visual Studio con un código base para una aplicación SDL para Windows. Cuando ya funciona el código de ejemplo comienzo a portar el código que recuperé del tetris original y a reescribir las partes que faltan utilizando SDL.

Una vez tengo una versión básica del dibujado y el input necesito recopilar los recursos (imágenes y sonidos) y al igual que perdí el código fuente original tampoco tengo los assets. Decido ‘hackear’ la versión de PC para extraer la imagen de fondo y descubro que esta no fue hecha en C sino en BlitzBasic (en aquella época yo aún no sabía C jaja). Después de intentar varios métodos al final consigo extraer el png original de la imagen de fondo. Los sonidos los extraigo de la versión de PS2 y la fuente la rehago utilizando un generador de fuentes para BMFont. Con esto ya tengo todo lo que necesito para completar la versión de tetris en SDL.

Mientras pruebo el funcionamiento observo que la jugabilidad no es que sea muy buena de modo que decido intentar mejorarla un poco antes de pasar a construir la versión web con emscripten.

Finalmente comienzo con el proyecto inicial que era compilar una versión wasm del tetris mediante el compilador emscripten. Es cierto que la primera vez que compile el proyecto no tenía aun soporte para sonido, eso lo deje para lo último. Indicando al compilador em++ que tiene que utilizar SDL me compila una versión que funciona regular. Esto se debe a que el juego tiene algunos bucles a la hora de esperar respuesta del usuario y eso es incompatible con la forma de funcionar de emscripten así que hago algunos arreglillos para eliminar estos bucles y reemplazarlos por una funcionalidad similar.

A la hora de meter los efectos de sonido me decido por la librería SDL_mixer que se supone que te facilita la vida para estas tareas. En la versión PC todo fue bien, pero a la hora de compilar con emscripten no hay manera de que compile en Windows así que me toca abrirme una máquina virtual con Linux para compilar el SDL_mixer. Además, para no subir un mp3 a la web decido utilizar un formato tipo ‘tracker’ que en PC no me supone ningún problema, pero no para la versión web como descubrí después.

Perdí bastante tiempo intentando compilar una versión de SDL_mixer con soporte para trackers y cuando al final lo consigo resulta que los sonidos se oyen bien pero la música en formato tracker se oye fatal (por eso supongo que venía deshabilitado por defecto) así que decido buscar por internet alguna librería en javascript para reproducir este formato de música. Utilizando una clase wrapper en javascript para comunicar el programa en C con la librería externa consigo al fin reproducir música con éxito.

Con esto doy por finalizada la versión web del tetris aunque aún se podrían mejorar muchas cosas.

Qubix para PlayStation

ImagenSiempre he querido programar un juego de PSX. Hace años hice un sencillo tetris para la PS2 y tiempo después comencé a portar un motor para juegos rpg que estaba haciendo a la PS3 aunque se quedó sin terminar.

Pero para la PlayStation 1 no había hecho nada, así que me propuse portar algún juego sencillo. Los candidatos eran Qubix y otro juego que tengo terminado pero no he publicado por vaguería.

El elegido fue Qubix porque es bastante sencillo y a la vez hace uso del 3d, el otro juego es un puzzle en 2d con muchos niveles mientras que en este juego solo hay que conseguir mejores puntuaciones.

Una vez decidido, comencé a preparar el entorno de desarrollo. Descargué el SDK de PSXDEV.net. Instalé una máquina virtual con Windows 2000 aunque no era necesario pero no quería tener problemas de compatibilidad ni tener que modificar el SO principal. Aun así, trabajaba con el Eclipse en el SO principal, accediendo al código fuente mediante carpetas compartidas. La máquina virtual solo se utilizaba para compilar y para utilizar Photoshop 3 para crear las imágenes TIM.

Como no tengo ninguna forma de ejecutar software en la PSX sin grabarlo en un CD (mi PSX no tiene puerto paralelo), he utilizado un emulador durante el desarrollo para acabar testeándolo en mi PSX, PSP y PS3. Junto con el emulador hay un pequeño programa que se queda escuchando por un puerto la orden de lanzarlo. De este modo, puedo compilar y lanzar el programa de forma automatizada de la forma más parecida posible a utilizar PS2LINK en la PS2 por el cable de red.

Imagen

El juego consiste en girar un cubo que tiene cada cara de un color y una lista de colores que van apareciendo por cada movimiento incorrecto. Si el color que está mirando a cámara es el mismo que el primero de la lista este se elimina. El objetivo es realizar el mayor número de movimientos sin que se llene la cola.

He creado 3 paquetes diferentes.

QUBIX.ISO – Imagen ISO para grabar en CD o ejecutar en un emulador de PSX.
Qubix.zip – Formato EBOOT.PBP para ejecutar en una PSP
Qubix.pkg – Formato PKG para ejecutar en una PS3

Experimento con la muerte

Imagen

Experimento con la muerte es una aventura conversacional creada por mi amigo Diego y programada por mi en C.

Al principio funcionaba mediante scripts y permitia crear nuevas aventuras utilizando el mismo exe. Pero finalmente introduje la historia dentro del codigo de modo que ahora es un unico juego.

ImagenImagenImagen

El juego es bastante dificil debido a que las opciones son muy limitadas y es dificil saber que tienes que escribir si no has hecho tu el juego 

Descarga:

El Planeta Desconocido

Imagen
El Planeta Desconocido es un proyecto de videojuego que quedó en una especie de demo. Inspirado en The Journeyman Project y programado en QBasic en un 286 alla por el 2001 es uno de mis primeros programas, y como tal, tiene numerosos fallos de diseño y de programacion.

ImagenImagenImagen
Imagenes del juego corregido

Durante todo este tiempo siempre he querido hacer un port o algo util de este programa. Habiendo hecho hasta un port en c que no llegué a publicar porque le falta el sonido.

ImagenImagenImagen
Imagenes de la version escrita en c

Finalmente cogí el código original escrito en QBasic, arregle los problemas mas importantes, lo recompilé y lo podeis descargar al final del post junto con un dosbox para poder emularlo en sistemas operativos actuales.

 

Video del juego en dosbox (creo que de antes de corregir los fallos) [/center]

Tambien he visto que existe un compilador de QBasic para win32/64 pero debido a que uso diferentes modos de video segun la escena la ventana cambia continuamente de tamaño.

Descarga:

Magic diskettes

Imagen
Magic disketes es un conjunto de dos disketes o una memoria USB de arranque que extraen los archivos SAM y SYSTEM de un sistema Windows XP con NTFS de la forma mas automáticamente posible.
El funcionamiento de Magic Disketes es el siguiente:

DISKETE 1:

  1. Arranca MS-DOS
  2. Carga el Driver NTFSDOS
  3. Copia el archivo SAM al disquete
  4. Pide el segundo disquete*

DISKETE 2:

  1. Comprime el archivo SYSTEM
  2. Guarda el archivo SYSTEM en el diskete
  3. Reinicia

Magic Disketes busca los archivos SAM y SYSTEM en las carpetas /WINDOWS/SYSTEM32/CONFIG y /WINNT/SYSTEM32/CONFIG

Si Magic Disketes ha funcionado correctamente en el primer diskete encontrarás el archivo SAM y el segundo diskete el archivo SYSTEM.gz que podras extraerlo con Winrar por ejemplo.

NOTA:
* La versión USB tiene exactamente el mismo procedimiento salvo pedir el segundo diskete
** Magic Disketes no ha sido comprobado en sistemas con dos particiones/discos con NTFS

Descargar:

Diskete 1: Archivo .IMZ (Winimage) | Archivo .EXE (Winimage Autoextraible)
Diskete 2: Archivo .IMZ (Winimage) | Archivo .EXE (Winimage Autoextraible)
Versión USB: Archivo .ZIP (Ver manual)

MANUAL INSTALACIÓN

INSTALACIÓN DE MAGIC DISKETES VERSIÓN USB

La versión USB de los magic disketes es simplemente una copia de los archivos de los dos disketes en una memoria USB de arranque de Windows 98.
Como el antiguo archivo usb.IMA era prácticamente imposible instalarlo a continuación pondré los pasos para crear el disco (USB) de arranque:

PRIMERO INSTALAMOS LOS ARCHIVOS DE SISTEMA

Para ello necesitaremos el programa USB Disk Storage Format:

ImagenMarcamos la opción de crear un disco de arranque (Create a DOS Bootable Disk).
En el cuadro de texto de debajo de using DOS system files located at ponemos la carpeta donde se haya descomprimido el archivo USB.rar

Y finalmente damos al botón Start para que se formatee el USB

DESPUÉS INSTALAMOS LOS ARCHIVOS DE MAGIC DISKETES

Ahora solo hay que copiar los archivos de dentro del USB.zip a la memoria USB y ya estará lista la versión USB de magic disketes.

Sitemap Generator

Con Ifcaro’s Sitemap Generator podrás generar el sitemap de tu website facilmente. Solo tienes que escribir la url de tu website y el programa se encargará de buscar todos los enlaces y guardarlos en un archivo sitemap.xml

Imagen

Versión 1.1
Modificado el algoritmo de descarga y arreglados algunos problemas.

Versión 1.0
Primera versión

Descargar Ifcaro’s Sitemap Generator 1.1 – SitemapGen.rar

NetDrop y Desprotector NetOp School

¿Quieres utilizar NetDrop pero no sabes la contraseña para abrir las opciones?

No hay ningún problema, con el desprotector de NetOp podrás cambiar la configuración de NetOp sin conocer la contraseña.

Aunque necesitas privilegios de Administrador pero eso es otro tema

Imagen

Las funciones de quitar la contraseña están comprobadas y funcionan en NetOp 3.01 y 5.
Las demás funciones solo están comprobadas en NetOp 3.01

Versión 1.3

  • (Supuestamente) Arreglado el fallo al capturar la ventana y que no permitia restaurarla
  • Ahora NetDrop es capaz de detectar cuando se ha cerrado la ventana de Demostración/Atención
  • Esta nueva versión tiene parte del código fuente encriptada para evitar que lo detecten los antivirus.
  • Si netdrop es instalado en una carpeta diferente, Actualiza la clave del registro
  • Cuando NetDrop se inicia se pone automáticamente el atributo de Oculto
  • (Supuestamente) NetDrop ahora tiene soporte para el software en ingles y español

Versión 1.2

  • Se añade la función de que se autoinicie
  • Se oculta de la ventana del Administrador de tareas
  • Solo se puede ejecutar una vez al mismo tiempo
  • Solucionado el error del portapapeles

Cosas por hacer:

  • Que se cierre automáticamente al cerrarse la ventana de Demostración/Atención

Versión 1.1

  • Se corrigen los errores de la pantalla al restaurar (zonas en negro).
  • Se añade la captura de Atención.
  • Se añade la forma de minimizar/restaurar escribiendo «iop».

Cosas por hacer:

  • Que se cierre automáticamente al cerrarse la ventana de Demostración/Atención
  • Que se auto añada al inicio.

OBLIGATORIO LEER EL MANUAL PARA SABER HACERLO FUNCIONAR

[ Descargar ]

[ Ver manual ]