No consigo ni un "hola mundo"

Started by Drumpi, October 05, 2016, 12:30:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Hola a todos:

Pues nada, resulta que Ryu Suzuki me ha metido la curiosidad en el cuerpo y quería intentar portar el Echo a la Dreamcast para ver si se lo podía llevar este fin de semana a la Retrobarcelona, pero de momento ni siquiera he conseguido hacer funcionar un simple "hola mundo" :S
Siempre es el mismo error: invalid OPCode 8C00.

A ver, el código que quiero compilar es este:

program hola_mundo;

BEGIN
    set_mode(640,480,16);
    set_fps(50,0);
   
    //say("Hola mundo");
    write(0,10,10,0,"HOLA MUNDO");
   
    while(!key(_esc))
        frame;
    end
end


Sencillo ¿no? Vale. Entonces compilo el código. Lo he intentado con la r335, la r265 e incluso la r106 de Bennu.
Lo he puesto en una carpeta, lo he renombrado a main.dcb, y le he añadido el 1ST_READ.BIN. He intentado hacerlo con el que tiene Ryo Suzuki en su tutorial, con el del anterior port del Echo, y con el que está en el svn de Colombian Developers.
He usado el BootDreams v1.0.6c para generar el fichero CDI, dejando que sea él el que genere el IP.BIN. de nuevo, siguiendo el tutorial de Ryo (o sea, selecciono la carpeta, le dejo el nombre por defecto, y creo un disco de data/data).
He descargado el nullDC_104_r136, lo he descomprimido (paso de instalaciones), le he añadido la bios (del 20 de Febrero de 2009) y he ejecutado el emulador con el CDI. Sale el logo de DC, el de SEGA, un montón de letras en la ventana de DOS y... mensaje de error.

Para comprobar que realmente el emu funciona, he probado el CDI del port que hizo L1nK3rn3l de la versión 1 o 1.1 del Echo, y funciona. Se ralentiza un poco pero funciona.

Necesito que alguien me eche una mano para hacer funcionar el "hola mundo" para empezar, y luego para poder configurar el emu para que me pueda dar la información de los comandos SAY para poder ir depurando el Echo y hacer un port inicial. Si hacemos que funcione en su estado actual, pondré la carne en el asador para intentar sacar la v1.4 para la dcjam-2016 y, de paso, darle carpetazo al proyecto :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

DCelso

Por ese error parece que no está portado mod_text.

¿Con "say" te da el mismo error?

Prueba a hacer un hola mundo imagen, y hacer put_screen (0,load_png("holamundo.imagen.pgn"))

O bien puede que no funcione el tipo de letra por defecto ( el 0, vamos). Intenta cargar un fnt y usar su puntero en vez de 0 en write.


O bien, puede que esté puesto el text color a negro, intenta pusar settextcolor rgb(0,0,255)



Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

prueba un codigo que solo haga asignaciones de variables, llamadas a procesos sin graficos, funciones que solo retornen valores... o sea, solo cosas basicas:

- asignaciones
- sumas, restas, divisiones, multiplicaciones, operaciones binarias
- llamadas a procesos/funciones escritas en el prg
- return de variables o valores fijos

no llames a ninguna funcion de ningun modulo

yo creo que te va a volver a fallar, pero intentalo.

seguro tenes que usar el mismo bgdc que coincide con el bgdi, y posiblemente incluso compilarlo en la dreamcast (si es que se puede)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Puf, he comentado las lineas del write y del say y ni aun así.
Últimas lineas de la ventana de comandos:

Block 8C0B13CC : disabling read-const @ 1/19
Block 8C010068 : disabling read-const @ 2/11
Block 8C010068 : disabling read-const @ 1/10
TI , invalidating *TLB
Block 8C00E09C : disabling read-const @ 19/29
not implemented opcode : 8C00 : unknown opcode @ 8C00E0A2
Press Any key to continue


Es probable que sea cosa de las versiones entre la compilada y el intérprete, pero es que no sé qué versión es el intérprete. En el tutorial dice que se use el BennuPack 2.2, y creo que la versión del port es la monolítica (no sé si tendrá algo que ver). La que acabo de usar es la r228, que es antigua pero que nunca me ha dado problemas de compatibilidad.

Y no, no puedo compilar en DC... creo. Ni el tuto de Ryu ni el port de L1nk contienen nada del BGDC. Le he añadido el código fuente por si acaso pero ni por esas.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

DCelso

coge el dcb del ejemplo de dreamcast que funciona bien y pruebalo en tu pc hasta ver con qué versión bgdi va bien.
Así ya sabrás con que bgdc compilar.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

l1nk3rn3l

#5
=============================
DREAMCAST

=============================


Dreamcast + Mini tutorial:



download "caza muertos test example" include a readme...

more
examples
here

https://sourceforge.net/projects/coldev/files/Dreamcast/

powerfull video tutorial

https://www.youtube.com/watch?v=O-7oaifbSDI


dOWNLOAD EXample  (include readme)
https://sourceforge.net/projects/coldev/files/Dreamcast/cazamuertos%20test%20example.rar/download


bennupack 2.2 (monolitic dreamcast version)

https://code.google.com/archive/p/colombiandevelopers/downloads


please dnt  use modules not supported

Drumpi

DCelso, aunque es buena idea, me puedo tirar horas probando versiones... y que luego sólo funcione con las monolíticas :D :D :D
Puedo intentar compilar con la Wii, que creo que es la misma versión, a ver si al menos el hola mundo funciona, pero como tenga que compilar el Echo, que ni la versión modificada va al 100%...

L1nk3rn3l ¿Hay alguna lista de módulos no soportados? Porque ahora que lo dices, he usado para la prueba rápida el bgdc.import que uso para las pruebas, que incluyen todos los módulos por defecto, y puede que sea eso. No me haría gracia tener que suprimir uno de los módulos que usa el Echo para hacerlo funcionar en DC :S (aunque Ryo Suzuki lo ha hecho funcionar hasta cierta parte).
El resto sí lo he hecho: he buscado vuestro port, ejemplos vuestros y los he echo funcionar, pero es la parte de compilar y ejecutar lo que no me va.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

l1nk3rn3l

Segun el readme incluido se soportan estos modulos

Official mods:
mod_key
mod_proc
mod_video
mod_text
mod_screen
mod_map
mod_time
mod_string
mod_math
mod_mathi   --- include only one math lib in .prg
mod_mouse
mod_sound
mod_rand
mod_grproc
mod_scroll
mod_say
mod_sort
mod_draw
mod_wm
mod_mem
mod_blendop
mod_timers
mod_file
mod_effects
mod_path
mod_joy
mod_m7
mod_dir
mod_sys
mod_flic
mod_regex
mod_time
mod_cd

se incluye un import en el ejemplo
cazamuertos.imp

https://sourceforge.net/projects/coldev/files/Dreamcast/cazamuertos%20test%20example.rar/download


se debe tener en cuenta que la Dreamcast la memoria es limitada, y la SDL tiene muchos memory leaks
asi que cargar y descargar recursos hara que el juego se bloquee...

Otro ejemplo
https://sourceforge.net/projects/coldev/files/Dreamcast/echo%20game%20example.rar/download



Tutorial:
---------

1. compile prg file with current bennupack 2.2,
    http://code.google.com/p/colombiandevelopers/
   and remember, dc root directory are "cd",
   byex: fpg_open("/cd/file.fpg");

2. rename .dcb file to main.dcb

3. copy all resources to same dcb directory

4. copy all files(dcb and resources) in bennu dc executable directory. directory with "1ST_READ.BIN" and "IP.BIN"

5. create a cdi image with bootdreams
   http://code.google.com/p/bootdreams/

6. ready  !!!

Drumpi

Ups, no había visto el final del readme ^^U
Veo que la mod_debug puede ser el problema que tenga. Le echaré un vistazo. Aun así, en alguna parte debería haberme indicado ese error ¿no? ¿No hay ventana de comandos o alguna forma de poder leer los mensajes que devuelve el binario en nullDC? ¿Conexión por el broadband adapter, la ventna de comandos, un log o algo?

¿Y qué es el IP.BIN, que se puede generar a través del bootdreams?

¿Y lo del "/CD/" en las rutas es obligatorio? ¿No se pueden usar rutas relativas?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

l1nk3rn3l

#9
Quote from: Drumpi on October 07, 2016, 04:35:27 PM

Ups, no había visto el final del readme ^^U
Veo que la mod_debug puede ser el problema que tenga. Le echaré un vistazo. Aun así, en alguna parte debería haberme indicado ese error ¿no? ¿No hay ventana de comandos o alguna forma de poder leer los mensajes que devuelve el binario en nullDC? ¿Conexión por el broadband adapter, la ventna de comandos, un log o algo?

¿Y qué es el IP.BIN, que se puede generar a través del bootdreams?

¿Y lo del "/CD/" en las rutas es obligatorio? ¿No se pueden usar rutas relativas?

¿No hay ventana de comandos o alguna forma de poder leer los mensajes que devuelve el binario en nullDC?
claro que si , debe tener opciones de log.. 
para desarrollo lo mejor es nulldc, debes correr el null dc en modo ventana para ver el debugger (options->nullDC->settings)
https://firedrop.com/eef96b341ecd6921

Cuando corres el juego (file->normal boot)  detras del emulador hay una consola que va escribiendo lo que pasa ..
inclusive aparece si estas leyendo un fichero como en la imagen..  creo que la funcion say funciona tmbn



¿Y qué es el IP.BIN, que se puede generar a través del bootdreams?
+(IP.BIN) es la tabla de iniciacion del disco cd.. hay esta la imagen de inicio(modificable), y las restricciones de zona,
   asi si quieres que el juego solo corra en marte debes modificar este archivo.
   Puedes modificar la imagen de inicio desde el bootdreams activas la opcion (extras->insert mr logo)

+  luego se carga el segundo que es bennugd compilado (1ST_READ.BIN) el motor bennugd  ocupa 1mb


¿Y lo del "/CD/" en las rutas es obligatorio? ¿No se pueden usar rutas relativas?

si es obligatorio, ya que igual que en playstation2 el sistema de archivos es una cagada
puedes usar un detector de sistema operativo , creo que bennu tiene una variable para saber en donde
esta corriendo el juego , asi si usas windows .. dejas la ruta como esta.. si corre en dreamcast
agregarle en tiempo de ejecucion la cadena    if (OS_ID ==  5) miruta= "/cd/"+"imagen.png";   else  miruta= "imagen.png"; 


Se ha subido un nuevo pack de ejemplos con el arreglo de los ejemplos en la ruta
fecha 20161008
https://sourceforge.net/projects/coldev/files/Dreamcast/



Drumpi

Sí, la ventana de comando la veo. El problema es que si hay alguna información como la de la captura que has puesto, me ha pasado desapercibida, porque sólo puedo leer unas 100 líneas, pero como el nullDC lanza como unas 2500 hasta que se para en el mensaje que puse en el otro hilo (que no lo encuentro), de que no encuentra no se qué OPCode.
Pensaba que la salida de datos del juego y del emulador eran vías diferentes, pero ya que me lo has dicho, intentaré leer lo que pueda de la ventana de comandos. Una salida de log, un exportador a txt o cualquier cosa así hubiera estado de lujo. Voy a tener que buscarlo para Linux ^^U

Por cierto, gracias por la ayuda, que aun no te la he dado.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

l1nk3rn3l


Drumpi

La buena noticia es que, gracias a Linkernel, he conseguido echar a andar un "hola mundo" compilado con una r226 oficial y todo los que ya tenía "instalado". Incluso he podido ver mensajes escritos con SAY y todo :D
La mala es que el mimso procedimiento ha sido un fracaso con el código del Echo. Ni siquiera un SAY en la primera línea del begin del main a dicho nada... al menos que haya podido ver:

GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
Block 8C04F428 : disabling read-const @ 1/21
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
Block 8C045240 : disabling read-const @ 2/26
Block 8C045240 : disabling read-const @ 1/25
GDROM: Write to GD_DRVSEL
Block 8C0452F4 : disabling read-const @ 6/72
Block 8C045380 : disabling read-const @ 3/18
Block 8C0CFD54 : disabling read-const @ 9/17
Block 8C0CFD54 : disabling read-const @ 8/16
Block 8C0CFD5C : disabling read-const @ 3/11
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
Block 8C0446A8 : disabling read-const @ 0/22
Block 8C0446C6 : disabling read-const @ 4/24
Block 8C0446C6 : disabling read-const @ 1/24
Block 8C0445A0 : disabling read-const @ 0/35
Block 8C0445A0 : disabling read-const @ 0/34
Block 8C0447B0 : disabling read-const @ 16/22
Block 8C0447B0 : disabling read-const @ 15/21
Block 8C0446CC : disabling read-const @ 1/21
Block 8C0444DC : disabling read-const @ 0/19
Block 8C045AA8 : disabling read-const @ 1/23
Block 8C044024 : disabling read-const @ 1/6
Block 8C04D648 : disabling read-const @ 0/41
Block 8C04D648 : disabling read-const @ 0/40
Block 8C04D68A : disabling read-const @ 3/32
Block 8C04D68A : disabling read-const @ 0/29
Block 8C04B8E4 : disabling read-const @ 0/11
Block 8C04D6E0 : disabling read-const @ 3/9
Block 8C04D6E0 : disabling read-const @ 2/9
Block 8C04D4B8 : disabling read-const @ 0/19
Block 8C04D502 : disabling read-const @ 0/17
Block 8C04D244 : disabling read-const @ 0/19
Block 8C04D792 : disabling read-const @ 4/6
Block 8C04D792 : disabling read-const @ 3/6
Block 8C04D79A : disabling read-const @ 4/6
Block 8C04D79A : disabling read-const @ 3/6
Block 8C04D7A2 : disabling read-const @ 4/6
Block 8C04D7A2 : disabling read-const @ 3/6
Block 8C04D7AA : disabling read-const @ 4/6
Block 8C04D7AA : disabling read-const @ 3/6
Block 8C04D7B2 : disabling read-const @ 4/6
Block 8C04D7B2 : disabling read-const @ 3/6
Block 8C04D7BA : disabling read-const @ 4/6
Block 8C04D7BA : disabling read-const @ 3/6
Block 8C04D7C2 : disabling read-const @ 4/6
Block 8C04D7C2 : disabling read-const @ 3/6
Block 8C04D7CA : disabling read-const @ 4/6
Block 8C04D7CA : disabling read-const @ 3/6
Block 8C04D618 : disabling read-const @ 0/10
Block 8C04DBF4 : disabling read-const @ 2/8
Block 8C04DBF4 : disabling read-const @ 0/7
Block 8C04DC00 : disabling read-const @ 0/2
Block 8C04D8AC : disabling read-const @ 3/11
Block 8C04DBE2 : disabling read-const @ 2/8
Block 8C04DBE2 : disabling read-const @ 0/7
Block 8C04DBEE : disabling read-const @ 0/2
Block 8C04D8D8 : disabling read-const @ 3/11
Block 8C04DB9C : disabling read-const @ 1/8
Block 8C04DB9C : disabling read-const @ 0/7
Block 8C04DBA8 : disabling read-const @ 3/4
Block 8C04D9F6 : disabling read-const @ 9/15
Block 8C04DA14 : disabling read-const @ 3/23
Block 8C04DA14 : disabling read-const @ 2/22
Block 8C04CD9C : disabling read-const @ 0/34
Block 8C04CB74 : disabling read-const @ 0/27
Block 8C04CC1C : disabling read-const @ 5/15
Block 8C04CC1C : disabling read-const @ 3/14
Block 8C04CD40 : disabling read-const @ 5/15
Block 8C04CD44 : disabling read-const @ 4/14
Block 8C04CD5E : disabling read-const @ 0/1
Block 8C04CC38 : disabling read-const @ 2/21
Block 8C04CC38 : disabling read-const @ 1/20
Block 8C04CCBA : disabling read-const @ 2/57
Block 8C04CCBA : disabling read-const @ 2/56
Block 8C04CE58 : disabling read-const @ 4/10
Block 8C04CE68 : disabling read-const @ 5/56
Block 8C04CE68 : disabling read-const @ 5/54
Block 8C04CD16 : disabling read-const @ 2/21
Block 8C04D1DA : disabling read-const @ 4/5
Block 8C04D1E4 : disabling read-const @ 3/35
Block 8C04C8FC : disabling read-const @ 0/44
Block 8C04C8FC : disabling read-const @ 0/43
Block 8C04D22E : disabling read-const @ 0/1
Block 8C04D9F4 : disabling read-const @ 10/16
Block 8C04D0EA : disabling read-const @ 7/58
Block 8C04D0EA : disabling read-const @ 7/55
GDROM: Write to GD_DRVSEL
GDROM: Write to GD_DRVSEL
Block 8C04DC3C : disabling read-const @ 2/8
Block 8C04DC3C : disabling read-const @ 0/7
Block 8C04DC48 : disabling read-const @ 0/2
Block 8C04D904 : disabling read-const @ 3/11
Block 8C04DC2A : disabling read-const @ 2/8
Block 8C04DC2A : disabling read-const @ 0/7
Block 8C04DC36 : disabling read-const @ 0/2
Block 8C04D930 : disabling read-const @ 3/11
Block 8C04D6FE : disabling read-const @ 5/12
Block 8C04D6FE : disabling read-const @ 1/11
Block 8C0D4BF2 : disabling read-const @ 0/6
Block 8C04D704 : disabling read-const @ 3/10
Block 8C04D704 : disabling read-const @ 1/10
Block 8C0D5280 : disabling read-const @ 3/11
Block 8C0D5280 : disabling read-const @ 2/10
 Ò(C9d↑C        D       D9P
Block 8C0CE0B4 : disabling read-const @ 2/10
Block 8C0CE0B4 : disabling read-const @ 0/9
Block 8C0D7180 : disabling read-const @ 0/24
Block 8C0D719C : disabling read-const @ 5/15
Block 8C0D719C : disabling read-const @ 3/14
Block 8C0CF3AC : disabling read-const @ 0/21
Block 8C0CE0E4 : disabling read-const @ 0/17
Block 8C0CE15A : disabling read-const @ 2/7
Block 8C0CE15A : disabling read-const @ 1/6
Block 8C0DB884 : disabling read-const @ 1/6
Block 8C0DB884 : disabling read-const @ 0/5
Block 8C0B34F4 : disabling read-const @ 0/9
Block 8C0B343C : disabling read-const @ 1/6
Block 8C0B343C : disabling read-const @ 0/5
Block 8C0B33C8 : disabling read-const @ 1/6
Block 8C0B33C8 : disabling read-const @ 0/5
Block 8C0C01AC : disabling read-const @ 0/14
Block 8C0DB9FC : disabling read-const @ 0/10
Block 8C0DB9FC : disabling read-const @ 0/10
Block 8C010150 : disabling read-const @ 0/15
Block 8C0101A0 : disabling read-const @ 0/13
Block 8C0A8230 : disabling read-const @ 5/20
Block 8C0A8230 : disabling read-const @ 4/19
arch: shutting down kernel
Block 8C0B33DE : disabling read-const @ 2/9
Block 8C0B33DE : disabling read-const @ 1/8
Block 8C0B3310 : disabling read-const @ 1/6
Block 8C0B3310 : disabling read-const @ 0/5
Block 8C0C36BC : disabling read-const @ 0/16
Block 8C0B54E4 : disabling read-const @ 0/15
Block 8C0BE2CC : disabling read-const @ 0/9
Block 8C0B19B0 : disabling read-const @ 0/26
Block 8C0B19DA : disabling read-const @ 1/23
Block 8C0C801C : disabling read-const @ 0/9
Block 8C0C8F08 : disabling read-const @ 0/9
Block 8C0CDC50 : disabling read-const @ 1/13
Block 8C0CDC50 : disabling read-const @ 0/12
Block 8C0B5346 : disabling read-const @ 2/9
Block 8C0CD2CC : disabling read-const @ 0/14
Block 8C0CD45C : disabling read-const @ 0/9
Block 8C0AFD5C : disabling read-const @ 1/10
Block 8C0AFD5C : disabling read-const @ 0/9
Block 8C0AFD70 : disabling read-const @ 0/9
Block 8C0B4974 : disabling read-const @ 1/6
Block 8C0B4974 : disabling read-const @ 0/5
Block 8C0B478C : disabling read-const @ 0/16
Block 8C0B1AE8 : disabling read-const @ 1/11
Block 8C0B1AE8 : disabling read-const @ 0/10
Block 8C0B1B14 : disabling read-const @ 1/10
Block 8C0B2582 : disabling read-const @ 12/15
Block 8C0B2582 : disabling read-const @ 11/14
Block 8C0AB920 : disabling read-const @ 2/5
Block 8C0AB920 : disabling read-const @ 1/5
Block 8C0B47C0 : disabling read-const @ 3/5
Block 8C0B47C0 : disabling read-const @ 1/4
Block 8C0AB900 : disabling read-const @ 2/5
Block 8C0AB900 : disabling read-const @ 1/5
Block 8C0B47DA : disabling read-const @ 2/17
Block 8C0B47FA : disabling read-const @ 0/6
Block 8C0B480A : disabling read-const @ 4/9
Block 8C0B480A : disabling read-const @ 2/9
Block 8C0D4A94 : disabling read-const @ 5/6
Block 8C0D4A94 : disabling read-const @ 5/6
maple: final stats -- device count = 2, vbl_cntr = 15, dma_cntr = 15
Block 8C0C8F86 : disabling read-const @ 1/8
Block 8C0C8F8C : disabling read-const @ 3/5
Block 8C0CC9D0 : disabling read-const @ 0/31
Block 8C0CC9D0 : disabling read-const @ 0/30
Block 8C0B259E : disabling read-const @ 16/19
Block 8C0B259E : disabling read-const @ 14/17
Block 8C0CC698 : disabling read-const @ 7/16
Block 8C0CC698 : disabling read-const @ 6/15
Block 8C0B0478 : disabling read-const @ 1/6
Block 8C0B0478 : disabling read-const @ 0/5
VREG = 03 ARMRST 01
vid_set_mode: 640x480IL NTSC
VREG = 03 ARMRST 01
Block 8C0B1B98 : disabling read-const @ 0/14
Block 8C0B1BC6 : disabling read-const @ 1/14
Block 8C0B2684 : disabling read-const @ 0/21
Block 8C0AD1C8 : disabling read-const @ 0/15
Block 8C0B3620 : disabling read-const @ 0/15
Block 8C0B3640 : disabling read-const @ 0/11
Block 8C0C7EF0 : disabling read-const @ 0/18
Block 8C0ACAE4 : disabling read-const @ 1/10
Block 8C0ACAE4 : disabling read-const @ 0/9
Block 8C0ACB2E : disabling read-const @ 2/14
Block 8C0C0190 : disabling read-const @ 1/7
Block 8C0C0190 : disabling read-const @ 0/6
Block 8C0C4868 : disabling read-const @ 0/17
Block 8C0C6190 : disabling read-const @ 0/17
Block 8C0C68C0 : disabling read-const @ 0/21
Block 8C0C6938 : disabling read-const @ 1/21
Block 8C0C5506 : disabling read-const @ 0/21
Block 8C0AC7D6 : disabling read-const @ 1/2
Block 8C0C555C : disabling read-const @ 3/22
Block 8C0B1380 : disabling read-const @ 0/17
Block 8C0B2D06 : disabling read-const @ 7/8
Block 8C0B2D06 : disabling read-const @ 6/8
Block 8C0B2CC8 : disabling read-const @ 2/8
Block 8C0B2CEE : disabling read-const @ 0/13
Block 8C0B2EAE : disabling read-const @ 1/8
Block 8C0B2EAE : disabling read-const @ 0/8
Block 8C0B1A28 : disabling read-const @ 1/12
Block 8C0B1A28 : disabling read-const @ 0/12
Block 8C0B13CC : disabling read-const @ 1/19
Block 8C010068 : disabling read-const @ 2/11
Block 8C010068 : disabling read-const @ 1/10
TI , invalidating *TLB
Block 8C00E09C : disabling read-const @ 19/29
not implemented opcode : 8C00 : unknown opcode @ 8C00E0A2
Press Any key to continue


También le he hecho algunos ajustes al código, como eliminar los módulos que no eran usados (aun seguía usando el bgdc.import de debug, con todas las librerías, ya lo he sustituido por un archivo con los imports absolutamente necesarios... Lo mismo hasta gano rendimiento en Wiz ^^U) y añadir a todas las rutas de carga de recursos una cadena al inicio que será "/cd/" en Dreamcast, y vacía en los demás sistemas (sí, ya había código multisistema desde antes).
Lo dicho, sigue sin funcionar, pero hemos dado otro pasito. Sólo tengo que dar con la combinación adecuada de compilador, port de Bennu, etc.

Se supone que cuando llegue Ryo el Lunes me dará más detalles de cómo ha logrado él mostrar los logos del juego, usando su "versión actualizada" del port de Dreamcast. Así tendremos más información.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Ryo Suzuki

Holaaa, estoy vivo tras los 5 días de tute de la Retrobarcelona 2016.

Drumpi, tengo una mala noticia, realmente no conseguí hacer funcionar la nueva versión de tu código en Dreamcast. Como ví que saltaban muchos errores y andaba fatal de tiempo usé la antigua de l1nk3rn3l. El objetivo era, como sabes, que la gente en la Retrobarcelona pudiera probar el juego corriendo en Dreamcast y de alguna forma "oficializar" que el port está en marcha para ese sistema (aunque por falta de tiempo usando si fuese necesario la versión antigua).

El problema es que ni siquiera la versión antigua funciona en Dreamcast hardware real, ya sea con el binario original -o lo que es lo mismo versión de BennuGD de Dreamcast- de l1nk3rn3l, ni tampoco con la actualización del bueno de Indiket. Sí, ya sé que en emulador funciona, pero en la consola si grabas el CD y lo pruebas se queda en negro cuando tendría que aparecer el juego en sí (los gráficos de inicio, press start, seleccionar partida y todo eso sí que funcionan).

Esto es algo que no suele suceder. Sobre todo en Demul, que por todas las pruebas que he venido haciendo con mi pequeño juego (proyecto Bennu que le llamo de momento) me ha demostrado que es muy fiel a la consola real, casi yo diría que al 100% aparentemente. Sin embargo tu juego demuestra que no, ya que Echo -al menos la versión antigua de l1nk3rn3l,- también va en Demul pero no en hardware real.

Así que tenemos dos problemas aparentemente. La versión antigua no va en consola real y el código actual como lo llevas ni siquiera funciona en ninguno de los emuladores por el opcode o error que siempre tira y tenemos que mirar de qué es.

Haz una cosa si puedes, pásame la última versión del código con los cambios que ya has hecho de rutas y demás pensando también en la Dreamcast y se lo pasamos al amigo Indiket que apuesto a que podrá quizás descubrir porqué salta ese error (a mi me había pasado alguna vez con mi juego y me lo había acabado solventando). No sé como lo hace, y estaría bien que nos los explicase, pero es capaz de saber a que se deben realmente los errores gordos como estos que tira el emulador y que crashea totalmente la ejecución del juego (no sé si traza de alguna forma o tiene alguna consola que le da alguna información extra)

Por otro lado, si se pasa por aquí Indiket directamente seguro que nos aporta bastante luz al tema en general.


P.D: Con la tontería el post da bastante información de Bennu en Dreamcast. Y gracias a l1nk3rn3l por el uptdate y todo el trabajo que está haciendo e hizo con el port a la consola de SEGA.

DCelso

¿y que juegos hay portados ya para la DC?
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/