¡Oh no! ¿Dónde está el JavaScript? El navegador Web no tiene JavaScript activado o no es compatible con JavaScript. Active JavaScript en su explorador Web para ver correctamente este sitio Web o actualizar a un navegador Web que admita JavaScript.
Sabías que...
K-Project era el nombre original del juego Rez.

[MasterClass] Compilando "freeeq"

Última actualización en 9 year hace
IndiketIndiketAdministrador
Publicado 9 year hace
Bienvenidos másters!! En esta nueva lección aprenderemos un montón de cosas "nerds" que....
- Fernando!! Haga el favor de entrar a clase, que son y diez!!

Disculpen la interrupción, pues ya parece que estemos todos dentro de clase :) . Como os iba diciendo, les dejaré mis últimos apuntes para que puedan compilar y disfrutar de "Freeeq".

EL JUEGO

Freeeq es un videojuego inspirado en el clásico de Amiga "Skweek", pero en formato GPL.

home.gna.org/freeeq/ikiwiki/screenshots/screen020.png


Christian Henz es el autor de este juego y, para sorpresa de todos, tiene implementada una versión para Sega Dreamcast!! Así es, desde 2005 que tenemos un nuevo juego para Dreamcast... y nadie lo había descubierto hasta ahora!!!

¿Y dónde está la descarga? Si se pregunta eso, amigo Fernando, es que sin duda se ha equivocado de clase. Tendremos que compilarnos el código fuente, pero tranquilos, que es una misión "casi imposible".


LOS PREPARATIVOS

En primer lugar, deben de disponer de un entorno KOS ya configurado y a punto. Yo he usado un KOS 2.X, pero también funcionará en 1.X. . Además, necesitarán la utilidad CMAKE > 2.8 (http://www.cmake.org/) y SVN.

Necesitarán las siguientes librerías ya compiladas:
- SDL 1.2.13
- SDL_image 1.2.12
- Libpng
- Zlib
- SDL_mixer 1.2.12
- PCRE
- PCRECPP

Bien... veo que Jaimito está atento y señala que PCRE y PCRECPP no están en su preciada carpeta de libs. Así que nuestra primera tarea, será compilarlas!!

Pero antes... ¿alguién sabe que es "kos-cc" y "kos-c++"? ¿Nadie? Para vuestra información, estos ficheros con los compiladores de KOS pero atención, no están en vuestra toolchain, sino en kos/utls/gnu_wrappers!! ¿Y qué tienen de especial? Pues que integran todas las instrucciones de compilación, o en otras palabras, que los podemos usar en los CMAKE sin depender de más cosas!!!


PCRE

PCRE (Perl Compatible Regular Expressions) es un set de funciones que implementan expresiones regulares PERL en código C / C++ (una porquería, vamos xD).

Vayan a http://www.pcre.org/ y descarguen la última versión estable (8.35 en estos momentos). Descompriman en una carpeta conocida.

Bien, hay que hacer dos ajustes previos:

- pcre-8.35/CMakeLists.txt -> poner a OFF los BUILD TESTS
OPTION(PCRE_BUILD_TESTS    "Build the tests" OFF)


- pcre-8.35/pcrecpp.cc -> comentar el siguiente fragmento
/*
#if defined(__GNUC__) && __GNUC__ >= 3 && defined(__ELF__)
# define ULP_AS_STRING(x)            ULP_AS_STRING_INTERNAL(x)
# define ULP_AS_STRING_INTERNAL(x)   #x
# define USER_LABEL_PREFIX_STR       ULP_AS_STRING(__USER_LABEL_PREFIX__)
extern Arg no_arg
  __attribute__((alias(USER_LABEL_PREFIX_STR "_ZN7pcrecpp2RE6no_argE")));
#endif
*/


Ok, ahora creen un fichero llamado dc.cmake dentro de la carpeta pcre con el siguiente contenido:
# Dreamcast cmake toolchain file

# this one is important
set(CMAKE_SYSTEM_NAME Dreamcast)
#this one not so much
set(CMAKE_SYSTEM_VERSION 1)

# specify the cross compiler
set(CMAKE_C_COMPILER /home/dreamcast/kos/utils/gnu_wrappers/kos-cc)
set(CMAKE_CXX_COMPILER /home/dreamcast/kos/utils/gnu_wrappers/kos-c++)

# search for programs in the build host directories
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)


Recuerden de cambiar las rutas!! Ahora simplemente abran un terminal, carguen el entorno KOS, vayan a la carpeta pcre y ejecuten:

>> cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=dc.cmake
>> make


Con eso habremos generado los Makefiles, y compilado la librería para 8 bits y en modo estático. Ahora, copien tanto libpcre.a como libpcrecpp.a en kos/addons/lib/dreamcast y los headers pcre_stringpiece.h, pcre.h, pcrecpp.h y pcrecpparg.h en kos/addons/include


Compilando FREEEQ

La página del juego es la siguiente: http://home.gna.org/freeeq/ikiwiki/ , y los fuentes vía SVN en esta otra:
>> svn co svn://svn.gna.org/svn/freeeq/trunk freeeq


FREEEQ usa las siguientes librerías (que se compilan durante el proceso).
- STM
- TinyXML
- TMXPP
- TMEPP

Para no complicarte la vida, pueden usar mi propio CMAKE ya preparado para Dreamcast y que usa romdisk :)
Crea el fichero /freeeq/dc.cmake con el siguiente contenido:

# Dreamcast cmake toolchain file

# this one is important
set(CMAKE_SYSTEM_NAME Dreamcast)
#this one not so much
set(CMAKE_SYSTEM_VERSION 1)

set(CMAKE_CXX_FLAGS "-DUSE_ROMDISK -frtti")

# specify the cross compiler
set(CMAKE_C_COMPILER /home/dreamcast/kos/utils/gnu_wrappers/kos-cc)
set(CMAKE_CXX_COMPILER /home/dreamcast/kos/utils/gnu_wrappers/kos-c++)

# search for programs in the build host directories
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)


# Dreamcast paths for libs

set(SDL_LIBRARY /home/dreamcast/kos/addons/lib/dreamcast/libSDL_1213.a)
set(SDL_INCLUDE_DIR ${KOS_BASE}/addons/include/)

set(SDL_IMAGE_LIBRARY /home/dreamcast/kos/addons/lib/dreamcast/libSDL_image_1212.a)
set(SDL_IMAGE_INCLUDE_DIR ${KOS_BASE}/addons/include/)

set(PNG_LIBRARY /home/dreamcast/kos/addons/lib/dreamcast/libpng.a)
set(PNG_PNG_INCLUDE_DIR ${KOS_BASE}/addons/include/)

set(SDLMIXER_LIBRARY /home/dreamcast/kos/addons/lib/dreamcast/libSDL_mixer_1212.a)
set(SDLMIXER_INCLUDE_DIR ${KOS_BASE}/addons/include/)

set(ZLIB_LIBRARY /home/dreamcast/kos/addons/lib/dreamcast/libz.a)
set(ZLIB_INCLUDE_DIR ${KOS_BASE}/addons/include/)

set(PCRE_LIBRARY /home/dreamcast/kos/addons/lib/dreamcast/libpcre.a)
set(PCRE_INCLUDE_DIR ${KOS_BASE}/addons/include/)

set(PCRECPP_LIBRARY /home/dreamcast/kos/addons/lib/dreamcast/libpcrecpp.a)
set(PCRECPP_INCLUDE_DIR ${KOS_BASE}/addons/include/)


# Dreamcast specific options!!

set(FREEEQ_DATA_DIR "/rd")
set(FREEEQ_VERSION "0.3-svn")

option( STM_SHARED "Build shared library" OFF )
option( TINYXML_SHARED "Build shared library" OFF )
option( TMX_SHARED "Build shared library" OFF )
option( TME_SHARED "Build shared library" OFF )

option( TMX_DEBUG "Enabled debug support" OFF )
option( TME_DEBUG "Enabled debug support" OFF )

option( TMX_USE_U16 "Use unsigned 16-bit tile type" ON )
option( TME_USE_RENDERER_SDL "Build SDL renderer" OFF )
option( TME_USE_RENDERER_DC "Build Dreamcast PVR renderer" ON )
option( FREEEQ_USE_DC "Dreamcast specific" ON )
option( FREEEQ_USE_ROMDISK "Use romdisk" ON )


Ya que estamos, abran el fichero freeeq/freeeq/CMakeLists.txt y comenten esta definición (evita intereferencias con nuesto cmake):
#set(FREEEQ_DATA_DIR "../data")


Y ya está!! Ejecutar los dos maravillosos comandos...

>> cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=dc.cmake
>> make


Y ya tendréis un ejecutable dentro de freeeq/freeeq!! Está en formato ELF, pero con herramientas como BootDreams y otras lo podréis convertir a BIN, hacer un CDI, quemarlo.....

Espero que os haya servido!! Y recuerden hacer los deberes! :)
VasiliyRSVasiliyRSMiembro Júnior
Publicado 9 year hace
Nice game, i played it a couple years ago.:)
IndiketIndiketAdministrador
Publicado 9 year hace
Did you play this game on Dreamcast? I didn't see any version lurking arround the net. Also, it has been updated with more maps and enemies, too ;)
alexislightalexislightAdministrador
Publicado 9 year hace
no se si voy a poder con estooo!! pero lo voy a intentar!!
mira vos...desde 2005? como para que podamos decir que no se nos escapa nada de Dreamcast! XD
Amo a mi Dreamcast
1.bp.blogspot.com/-ISA2GZATNCQ/TbntZYUJViI/AAAAAAAAAB4/wDlRYAhu_lo/s1600/vardream.gif
VasiliyRSVasiliyRSMiembro Júnior
Publicado 9 year hace

Cita

Did you play this game on Dreamcast? I didn't see any version lurking arround the net.

Yes, I have contacted its creator and he gave me a couple builds. He said when it is ready for beta he will tell us.
IndiketIndiketAdministrador
Publicado 9 year hace
Oh now I understand everything!! Lucky you, I had to build it from myself hahaha.

When was that? It was recently??
VasiliyRSVasiliyRSMiembro Júnior
Publicado 9 year hace
In 2011, if you need to contact him you can do it by email at his site http://home.gna.org/freeeq/ikiwiki/about/index.html He is dcemulation member too but i have not seen him there for awhile.
puede ver todos los hilos de discusión en este foro.
puede iniciar un nuevo hilo de discusión en este foro.
no puede responder en este hilo de discusión.
no puede empezar en una encuesta en este foro.
puede cargar archivos adjuntos en este foro.
no puede descargar archivos adjuntos en este foro.
Afiliados
SEGA Saturno - Saturn, SEGA y Videojuegos