Basta de excusas, que empieze la acción.
Para instalar y configurar SaturnOrbit, primero bajalo de SaturnOrbit
Antes que nada este tuto es para Windows XP, si usas Windows Vista ó Seven vas a tener algunos problemas:
- Las herrmamientas/tools no funcionan
- Vas a tener problemas en la compilación del SaturnOrbit ya que tiene las rutas estaticas de la siguiente forma, C:Saturn~1, Esto genera problemas y arroja No se encontro la ruta del archivo
Bien.
Le damos a Doble-Click, dejamos tildada la segunda opción Needed fot the batch files to work under Win9x. Not needed on WinXP adn Win2K.
Dejalá tildada igual :wink: por más que uses Windows XP .
Puesta a punto de SaturnOrbit
Abrí SaturnOrbit desde el Icono del escritorio ó el .exe desde la la ruta de SaturnOrbit.
Vamos a Tools/Environment Options / Files & directories; ahi en la primera opción tenes que cambiar la configuración inicial de SaturnOrbit. Buscando el devcpp.ini y habilitando la opción.
Hasta aca va todo correcto.
Una vez terminada la instalación, se abren los batch files y aca empizan los problemas.
Si dejaste la opción que indique antes, en WinXP no habrá problemas. En Vista tenes que cambiar todos los Batch files donde diga C:Saturn~1 reemplazarlo por C:SaturnOrbit. Es un trabajo duro pero se puede hacer con algun editor de texto, Notepad, yo uso Notepad++.
Compilando nuestro primer proyecto
Vamos a usar, el ejemplo S_4_2 que está dentro de C:SaturnOrbitSGL_302jSAMPLES_4_2
Copia y pega en otro directorio, ejemplo C:S_4_2
Existen dos formas de compilar:
- Mediante Batch files
- Mediante Proyecto Dev-C++
Batch files
Le damos doble-click a MAKE_COF.bat y esta es la salida correcta.
No incluyas el código que especifico al último sino no compilará.
Con Dev-C++
Abrimos el s_4_2_coff.dev, lo primero que nos aparece es un Error tranquilos. El problema es que las rutas de los recursos estan estáticas apuntando hacia otro lado, las tenemos que cambiar.
Siempre debemos compilar en el modo Rebuild-ALL ó apretando F11.
Lo hacemos, y vemos que nos arroja un error :x .
Message: ../../../COMMON/coff.mak:No such file or directory.
Es el problema de la ruta, significa que ../../../ hace hacia atras tres directorios y busca el archivo, pero como lo movimos de ruta, no encuentra nada.
Entonces debemos cambiarlo.
Vamos a Project de ahi a Projects Options y luego a Makefile
vemos que dice: ......COMMONcoff.mak
La cambiamos por C:SaturnOrbitCOMMONcoff.mak y apretamos Replace.
Damos Rebuil-ALL otra vez ahora sale otro error :twisted: , es el linkeador que tiene mal las rutas:
../../LIB_COFF/SGLAREA.O
../../LIB_COFF/SEGA_SYS.A
Vamos a Project de ahí a Proyect Options y luego Parameters .
Vemos que en Linker estan mal las rutas.
Las cambiamos por :
C:/SaturnOrbit/SGL_302j/LIB_COFF/SGLAREA.O
C:/SaturnOrbit/SGL_302j/LIB_COFF/SEGA_SYS.A
Le damos a OK.
Damos Rebuil-ALL. Y ahora ¿qué pasó? :?: Lanza otro error, este es característico de Dev-C++ que no reconoce el método main().
Entonces debemos incluir un pequeño código al proyecto dentro del main.c para que compile, está incluido en el cinit.c pero se lo incluye cuando compilamos con el batch, pero si usamos Dev-C++ los tenemos que incluir nosotros.
No hay mal que por bien no venga :P .
Con este paso ya no podremos compilar con los batch files, ya que estamos procesando un main() distinto y nos arroja error; nos lanza que tenemos este método duplicado y no sabe cual usar.
#define SystemWork 0x060ffc00 /* System Variable Address */
#define SystemSize (0x06100000-0x060ffc00) /* System Variable Size */
extern Uint32 _bstart, _bend;
int main(void)
{
Uint8 *dst;
Uint16 i;
/* 1.Zero Set .bss Section */
for(dst = (Uint8 *)&_bstart; dst < (Uint8 *)&_bend; dst++)
{
*dst = 0;
}
/* 2.SGL System Variable Clear */
for(dst = (Uint8 *)SystemWork, i = 0; i < SystemSize; i++)
{
*dst = 0;
}
/* Application Call */
ss_main();
}
Le dan otra vez a Rebuil-All, y quedo todo exelente.
Compueben que creo la iso nuevamente verificando la fecha de creación ;)
Resultado: