Mazinger Z Homebrew (for SEGA Saturn) ¿Sería posible un port Bennu-Saturn?

Started by folken, April 01, 2019, 06:35:03 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

folken

Hola a todos mis queridos amigos de esta comunidad, bueno espero aún recuerden el Mazinger Z que hice para la PS2 con Bennu:


http://forum.bennugd.org/index.php?topic=4599.0


Bien, pues el tema es que navegando por internet me topé con el Jo-Engine, me pareció bastante interesante y me hice una versión del mismo Mazinger Z pero para la Sega Saturn. Por suerte tengo una consola modificada para hacer el SWAP, y pude probarlo, tanto en la consola como en el emulador Yabause.


Comparto la web con la imagen CUE para quemar el CD-R, incluye manuales PDF y código fuente en lenguaje C.


https://vectrex8.wixsite.com/mazinger




Lo que me pareció interesante es que el Jo-Engine permite utilizar los dos procesadores SH-2 de la Saturn, hice la prueba y todo el manejo de los sprites y la depuración la puse en el CPU SH-2 esclavo, mientras la lógica del videojuego y el control de los audios y pistas de música en el CPU maestro.







También logré utilizar parte del API de la propia SEGA (SGL). Esto me ha creado una interrogante ¿Sería posible crear un port de BennuGD para la SEGA Saturn?


Posiblemente habría que cambiar todas las llamadas a la SDL por la SGL (Sega Graphics Library), en base a lo que pude hacer en ese juego, con el Jo-Engine, pude ver que hay manera de simular una SDL, utilizando las funciones de la SGL.





Si hay alguien interesado en esta loca idea, puedo compartir el kit para desarrollar con la SGL, tengo guardado unos 40 manuales de la SGL saturn, algunos conseguidos por internet y otros compartidos por amigos.


También pueden bajarse el kit del Jo-Engine, incluye las SGL ya configuradas y compiladas.


Escucho ideas,  ;D


¿Que opinan?


::)





































Where reality ends, life begins!

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

folken

Where reality ends, life begins!

FreeYourMind

Si haces el port seria la ostia, no hay mucho homebrew en sega saturn, y si bennu estuviera, seria facil sacar muchos.
PS: Comparte el kit y manuales gracias


folken

Hola Free, con mucho gusto comparto el kit, trataré de ponerlo en archive.org para que puedan bajarlo.
No se si pueda hacer un port para Bennu, creo que no tengo mucho conocimiento del core de bgdi, pero si alguien se ofrece ayudar con gusto puedo aportar lo poco que conozco del Saturn.

Saludos!
Where reality ends, life begins!

FreeYourMind

Gracias! Solo tienes que poder compilar para el kit de saturn, si quieres nos ponemos con el, si lo hago funcionar y configurar en mi maquina nos pondriamos con el port de bennu

folken

¡Excelente!


Free, mañana me doy un tiempo y comparto el KIT que he usado.


;D
Where reality ends, life begins!

folken


Esta es la configuración que yo estoy usando y me ha funcionado en Windows 8 y 10; de 32 o 64-bit


El kit del jo-engine que había bajado de internet, tiene unos script bat y sh, si se usa linux; en algunos ejemplos no funcionaron,
por lo cual decidí poner manualmente las variables en mi windows.


Dejo el código del juego de mi MAZINGER a modo de ejemplo. Incluye la sgl.h para usar todo el core de las
SEGA SGL API.


NOTA: El api SEGA SGL se encuentra en archivos de 8 carácteres, debido a que el kit original de sega
para desarrollar en Saturn,funcionaba en Windows 3.11 con MS-DOS 6.22 (hablamos del año 1993-1994 je,je,je...Win95 aun no existia!)


Si eres curiso revisa los isos de juegos de la Saturn,todos los archivos tienen un nombrado de 8 caracteres + 3 de extensión.


El primer archivo buscado por el micro-kernel IP.BIN es "0.BIN" en la pista 1 del CD-R, las pistas 2-n son para la
musica.


El SGL permite acceder a los chips de GPU de la Saturn, los VDP1 y VDP2 para los sprites, scroll, modo7, modo8 y el
3D soporta modelos MDL, permite usar el VECTOR3 para mover polígonos por los ejes (x,y,z) y varias funciones
de Quaterniones para rotación de polígonos, incluidas las rutinas para angulos Euler.


El mismo api SGL permite acceder al chip SMPC para manejo de los joyPAD de la Saturn.


El Jo-Engine es una capa de abstracción de la SGL, incluye un pequeño microkernel del IP.BIN para hacer el BOOT.
este KIT que he modificado para compilar,permite usar el jo-Engine,o usar solo las SGL. Lo dejo al gusto de cada programador.


Las SGL también permiten usar los 2 CPU de la Saturn: el SH-2 Master y el SH-2 slave.


El formato ejecutable de la Saturn es el COFF, ya que los SH-2 pueden ejecutar ese tipo de binario.


Junto a este RAR, encontrarán otro con toda la documentación de SGL y hardware de la Saturn, que he logrado
recopilar durante los ultimos 4 años (algunos docs de internet y otros de amigos), espero sea de ayuda para
iniciar un port de bennu-saturn.




Atte. Su amigo Folken  ;)






SDK:


https://www.dropbox.com/s/vze2836dq5huy6s/Saturn_SDK.rar?dl=0


Pack de Documentos:


https://www.dropbox.com/s/i0gvz7d9c6xok8a/Documentacion_Recopilada.rar?dl=0










********************************
VARIABLES DE ENTORNO DE WINDOWS
********************************


opciones avanzadas --> Variables de entorno:






variable            valor
----------------------------
PATH                C:\Saturn_SDK\EMULATOR\Yabause_win32;C:\Saturn_SDK\COMPILER\SH_COFF\Other Utilities;C:\Saturn_SDK\COMPILER\SH_COFF\sh-coff\bin;C:\Saturn_SDK\COMPILER\TOOLS;%PATH%
COMPILER_DIR        C:\Saturn_SDK\COMPILER
JO_ENGINE_SRC_DIR   C:\Saturn_SDK\JO_ENGINE








**********************
PASOS PARA COMPILAR
**********************


1.-Ejecutar un CMD


2.-entrar al directorio del juego:


   cd C:\Saturn_SDK\GAMES\MAZINGER


3.-limpiar objetos anteriores, siempre debemos limpiar antes de compilar.


    clear
   
4.-compilar


    make -j2 re




***************************
LANZAR JUEGO DESDE LA ISO
***************************


yabause -a -i sl_coff.iso


Nota: No carga las pistas de audio CD.




***************************
LANZAR JUEGO DESDE EL CD-R
***************************


yabause -a -c F:






Nota: Si carga las pistas de audio CD, cambiar F: por tu unidad, es necesario montar la imagen CUE con
una unidad virtual de CD-ROM. (por ejemplo Daemon-Tools)

Where reality ends, life begins!

FreeYourMind

Gracias, probare este finde compilar tu juego y una vez que funcione me pongo con bennu

folken

¡Hola Free! ¿pudiste compilar el Mazinger Z?


Seria brutal ejecutar un DCB en la Saturn, como te comento, considero no tener el conocimiento necesario del funcionamiento del BGDI  :'( , pero en lo que pueda ayudarte con el port referente a la Saturn, cuenta con mi apoyo.


¡Saludos!


;D
Where reality ends, life begins!

Ryo Suzuki

Excelente iniciativa.

Si pudieramos tener algo parecido y medio funcional de BennuGD en Saturn sería fantástico.

Otra opción que apunto y espero no estar metiendo la pata es usar el SDL que portó al menos de forma parcial vbt para algunos de sus desarrollos (como el port del Rick Dangerous a Saturn y tb el de Wolfestein)

Aquí os dejo el source del xrick por si sirve de algo:

http://ppcenter.webou.net/files/xrickm.7z

El juego iba bastante fino, con esto os podéis hacer una idea:

https://www.youtube.com/watch?v=MrntyEWtKSg

Lo que hizo si no me equivoco fue un SDL wrapper
Quote
Currently supported functions :

SDL_Init
SDL_InitSubSystem
SDL_SetVideoMode   (supports 320x224 320x240 352x224 352x240 640x224 640x240, 8/16 bits)
SDL_GetVideoInfo
SDL_ListModes
SDL_SetColors
SDL_UnlockSurface
SDL_OpenAudio (4 channels, 8/16bits, mono/stereo, 8k to 44k (calculated))
SDL_PauseAudio
SDL_LoadWAV_RW
SDL_UpperBlit
SDL_FillRect
SDL_PollEvent
SDL_WaitEvent
SDL_GetTicks
SDL_Quit
Mix_PlayChannel

SDL_SetColorKey (fake)
SDL_EventState (fake)
SDL_GetModState (fake)
SDL_WM_GrabInput (fake)
SDL_MapRGB (fake)
SDL_LockSurface (fake)
SDL_mutexP (fake)
SDL_mutexV (fake)
SDL_CloseAudio (fake)
SDL_CreateMutex (fake)
SDL_FreeWAV (fake)
SDL_UpdateRects (fake)
SDL_UpdateRect (fake)
SDL_CreateRGBSurface
SDL_SetPalette (fake)
SDL_GetError (fake)
SDL_WM_SetCaption (fake)
SDL_WM_GetCaption (fake)
SDL_CreateRGBSurfaceFrom (fake)
SDL_WM_SetIcon (fake)
SDL_DestroyMutex (fake)
Mix_FreeChunk (fake)
Mix_LoadWAV_RW (fake)
Mix_OpenAudio (fake)
Mix_ChannelFinished (fake)
Mix_SetPanning (fake)
Mix_GroupAvailable (fake)
Mix_ReserveChannels (fake)
Mix_GroupOldest (fake)
Mix_GroupChannels (fake)
Mix_HookMusic (fake)
Mix_GetError (fake)
Mix_HaltChannel (fake)
SDL_SaveBMP_RW (fake)
SDL_RWFromMem (fake)
SDL_RWFromFile (fake)
SDL_Delay (fake)

No sé si sirve de algo.

Yo cruzo los dedos para que correr cosas de BennuGD en Saturn ;)

FreeYourMind

El finde que te prometi afinal no tuve tiempo, y ahora se metio semana santa, a ver si el siguiente hay suerte

FreeYourMind

Quote from: Ryo Suzuki on April 20, 2019, 08:01:41 PM
Excelente iniciativa.

Si pudieramos tener algo parecido y medio funcional de BennuGD en Saturn sería fantástico.

Otra opción que apunto y espero no estar metiendo la pata es usar el SDL que portó al menos de forma parcial vbt para algunos de sus desarrollos (como el port del Rick Dangerous a Saturn y tb el de Wolfestein)

Aquí os dejo el source del xrick por si sirve de algo:

http://ppcenter.webou.net/files/xrickm.7z

El juego iba bastante fino, con esto os podéis hacer una idea:

https://www.youtube.com/watch?v=MrntyEWtKSg

Lo que hizo si no me equivoco fue un SDL wrapper
Quote
Currently supported functions :

SDL_Init
SDL_InitSubSystem
SDL_SetVideoMode   (supports 320x224 320x240 352x224 352x240 640x224 640x240, 8/16 bits)
SDL_GetVideoInfo
SDL_ListModes
SDL_SetColors
SDL_UnlockSurface
SDL_OpenAudio (4 channels, 8/16bits, mono/stereo, 8k to 44k (calculated))
SDL_PauseAudio
SDL_LoadWAV_RW
SDL_UpperBlit
SDL_FillRect
SDL_PollEvent
SDL_WaitEvent
SDL_GetTicks
SDL_Quit
Mix_PlayChannel

SDL_SetColorKey (fake)
SDL_EventState (fake)
SDL_GetModState (fake)
SDL_WM_GrabInput (fake)
SDL_MapRGB (fake)
SDL_LockSurface (fake)
SDL_mutexP (fake)
SDL_mutexV (fake)
SDL_CloseAudio (fake)
SDL_CreateMutex (fake)
SDL_FreeWAV (fake)
SDL_UpdateRects (fake)
SDL_UpdateRect (fake)
SDL_CreateRGBSurface
SDL_SetPalette (fake)
SDL_GetError (fake)
SDL_WM_SetCaption (fake)
SDL_WM_GetCaption (fake)
SDL_CreateRGBSurfaceFrom (fake)
SDL_WM_SetIcon (fake)
SDL_DestroyMutex (fake)
Mix_FreeChunk (fake)
Mix_LoadWAV_RW (fake)
Mix_OpenAudio (fake)
Mix_ChannelFinished (fake)
Mix_SetPanning (fake)
Mix_GroupAvailable (fake)
Mix_ReserveChannels (fake)
Mix_GroupOldest (fake)
Mix_GroupChannels (fake)
Mix_HookMusic (fake)
Mix_GetError (fake)
Mix_HaltChannel (fake)
SDL_SaveBMP_RW (fake)
SDL_RWFromMem (fake)
SDL_RWFromFile (fake)
SDL_Delay (fake)

No sé si sirve de algo.

Yo cruzo los dedos para que correr cosas de BennuGD en Saturn ;)
lo marca como malware el avast

Ryo Suzuki

Pues no lo vi, es seguro el archivo.

Me gustaría que pudieráis mirar esto.

Sería genial tener BennuGD en Saturn!