Karoshi MSX Community
06 de Julio de 2021, 12:50:25 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1] 2
  Imprimir  
Autor Tema: Hans' Adventure ... 48ks ROM  (Leído 7057 veces)
0 Usuarios y 1 Visitante están viendo este tema.
j4mk3
Karoshi Maniac
****
Mensajes: 376


MSx Powa!


WWW Email
« : 27 de Junio de 2010, 04:00:14 pm »

Sí, sí, sííííí Smiley
He conseguido hacer una ROM de 48Ks para Hans' Adventure. Se compila con el asMSX perfectamente y rula bien en el BlueMSX. He utilizado las rutinas que aparecen en los tutoriales de aquí de la web (by Ramones) y un codigo prestado de Sapphire para iniciar la Page 2. A su vez las dos rutinas albergan en su interior code by Konamiman (amén Roll Eyes)

Hans' Adventure se creo en un principio siendo un .COM, así que no utiliza para nada la BIOS en ninguna de sus rutinas. Va a los puertos de PSG y VDP standard y listo.

Creo que no he hecho los cambios de manera compatible o protocolaria. Diria que lo he hecho demasiado a saco. Os quiero dejar aquí un trozo de como he inicializado las páginas para que me digais si es correcto, si podria dar problemas de compatibilidad, ...etc.

Page 0:
Código:
.BIOS
.ROM
.PAGE 0
.START JOC
dw 0,0,0,0,0,0

.ORG 38h ; Inici de la rutina de interrupció
db 0C3h
dw TIMER_R

; DATOS GRAFICOS

Page 1:
Código:
.PAGE   1

; CABECERA MANUAL para una ROM
db 41h,42h
dw JOC
dw 0,0,0,0,0,0
db "HANS"

; PROGRAMA - Inicialitzacion
JOC:
jp JOC0
.INCLUDE "LIB/SET48K.GEN"
;Librerias de Saphire y Ramones para situar los 48Ks ROM seguidos.

JOC0:
di
ld SP,PILA

; Screen 2,Sprites de 16x16
call SCREEN22
; Posiciona la ROM de 48ks
call SET48K
; Desactivacion del CLICK CLICK
xor A
ld [0F3DBh],A

GAME:

Page 3:
Código:
.ORG 0E000h

PILA0:
ds 256
PILA: .byte
.INCLUDE "Variables"

Como lo veis ? Smiley

P.D: La rutina de interrupcion hace sus PUSH y sus POPs completos, su DI y EI, y sale con RETI. Tal como estaba en el .COM
En línea

---  G Fan  ---  Galious & Gradius  & G Boys   ---
--- Play HANS' ADVENTURE, STAN, THE DREAMER & BITLOGIC ---
kabish
Karoshi Maniac
****
Mensajes: 470


caspaflims@hotmail.com
« Respuesta #1 : 27 de Junio de 2010, 09:42:10 pm »

Dos cosas ..

- En 'page 1' si haces directamente 'dw joco', te ahorras un jp y tres bytes.
- Luego a la hora de iniciar la rom, en la etiqueta 'joco', no se si  tienes que inicializar el modo de interrupciones 1, quedandote asi :

Código:
di
im 1
ld sp,PILA ;-> 0xf380

En mi caso lo tengo que hacer asi por que yo solo guardo datos en la pagina 0, nunca codigo.
En línea
j4mk3
Karoshi Maniac
****
Mensajes: 376


MSx Powa!


WWW Email
« Respuesta #2 : 27 de Junio de 2010, 10:47:13 pm »

Ok Kabish Smiley Gracias.
- Entendido lo del jp joc0 y arreglao...3 bytes pa otras cosas Smiley
- Lo del modo de interrupciones....no lo acabo de pillar pq hacer eso del im1.
En Page 0 solo tengo datos y ya he puesto en la 38h el jp a mi rutina. Funciona bien y retorna correctamente.

Lo que me pasan ahora dos cosas:
- En algunos emuladores como el meisei de Pc o el emulador de MSX de la GP2X Wiz portado por un tal ZX-81, no arranca la rom de 48ks. Va al Basic [enter date (M-d-A)] o reporta que no arranca.
- La ROM creada ahora es de 40960 bytes....que raro...es porque no lo lleno y el asMSX, lo corta ?

Es normal ? need help !  Cry
En línea

---  G Fan  ---  Galious & Gradius  & G Boys   ---
--- Play HANS' ADVENTURE, STAN, THE DREAMER & BITLOGIC ---
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #3 : 28 de Junio de 2010, 10:37:30 am »

El asMSX tiene una granularidad de 8 KB para las ROMs, así que si no llenas más de 40 KB, se te quedará en ese tamaño. Para solucionarlo, prueba a usar lo siguiente:

Código:
size 48

A ver si así va mejor. En cuanto a los problemas con los emuladores, pueden tener que ver con cómo cargan en memoria las ROMs. Asegúrate de que soportan ROMs de 48 KB.

Ánimos.
En línea
SapphiRe_MSX
Visitante
« Respuesta #4 : 28 de Junio de 2010, 11:26:48 am »

En cuanto a los problemas con los emuladores, pueden tener que ver con cómo cargan en memoria las ROMs. Asegúrate de que soportan ROMs de 48 KB.

El meisei las soporta, ya que el QBIQS funciona perfectamente en él.
En línea
kabish
Karoshi Maniac
****
Mensajes: 470


caspaflims@hotmail.com
« Respuesta #5 : 28 de Junio de 2010, 11:31:01 am »

Me tengo que ir a currar ahora, pero intentare responderte algo que recuerde de memoria ..

- 'im 1' es asi por definicion. Al arrancar la rom, inhabilita las interrupciones, pone el modo de interrupciones a 1 y coloca el puntero de la pila.
- Lo del relleno, a mi tambien me pasaba. Prueba a rellenarlo a mano, o  como dice pitpan y ya esta.
- Prueba el tutorial de Ramones al pie de la letra y una vez que veas que funciona pues ya metes mas cosas. Yo lo segui y me fue de perlas  Wink
- El meisei creo recordar que soporta roms de 48ks. De todas formas usa 'odo' y asi sales de dudas. El odo creo que lo programo un tal Armando.  Smiley

Si tienes mas problemas te puedo mandar un codigo funcional de una rom de 48ks.
Sigue buscando, hay miles de premios.  Wink
En línea
j4mk3
Karoshi Maniac
****
Mensajes: 376


MSx Powa!


WWW Email
« Respuesta #6 : 28 de Junio de 2010, 02:29:27 pm »

Muchas gracias a todos por las aportaciones.
@pitpan
Probé lo del size, pero creo que me decia algo que no podia ponerse si se usaba la directiva .ROM. Lo intentaré de nuevo.

@Sapphire
Que el meisei las soporta es una gran noticia, gracias. Ara ya se que si no va es pq algo hago mal. Sad

@Kabish
He seguido el tuto de Ramones (que tiene su miga tal como se explica :p ) Si, ODO lo conozco...jODO si lo conozco ! :p

A todo esto...
...algunod e vosotros puede decirme un "Sí tu codigo de inicialización es correcto" o un "toca aquí y allí para que lo sea"...que me teneis en ascuas y yo toy inseguro de si está bien. Wink

Además Ramones está "out of combat" y no puedo pasar su "sello de calidad" Wink
En línea

---  G Fan  ---  Galious & Gradius  & G Boys   ---
--- Play HANS' ADVENTURE, STAN, THE DREAMER & BITLOGIC ---
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #7 : 28 de Junio de 2010, 03:31:57 pm »

Muchas gracias a todos por las aportaciones.
@pitpan
Probé lo del size, pero creo que me decia algo que no podia ponerse si se usaba la directiva .ROM. Lo intentaré de nuevo.

Es que el asMSX, por lo menos hasta donde yo se, no tiene un soporte nativo de ROMs de tamaño 48KB. Si no llegas a rellenarlo todo de datos, creo que tienes que hacerlo a pelo y poner al final de tu código un byte suelto, antes de las variables de RAM. El típico...

.org $bfff
db $0

para que te ensamble el ROM al tamaño con tus 3 páginas.
En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
SapphiRe_MSX
Visitante
« Respuesta #8 : 28 de Junio de 2010, 04:08:09 pm »

Yo lo que hago es pasar directamente de la directiva .ROM y ensamblar tal cual. Posteriormente le añado un bloque de $FF (no de $00 como hace el asMSX) y recorto al tamaño deseado. Todo ello realizado cómodamente desde un batch...

...algunod e vosotros puede decirme un "Sí tu codigo de inicialización es correcto" o un "toca aquí y allí para que lo sea"...que me teneis en ascuas y yo toy inseguro de si está bien. Wink

Hasta que no termine con toda la vorágine de corrección de trabajos no tengo ni un minuto libre... sorry Undecided
En línea
aorante
Karoshi Maniac
****
Mensajes: 451


nuTella Power!


WWW Email
« Respuesta #9 : 28 de Junio de 2010, 07:16:17 pm »

Puedes utilizar una aplicación que se llama FillFile.exe (MS-DOS), que acompaña el tutorial de Nerlaska para crear ROMs en SDCC ("MSX-ROMS de 32Kb con SDCC"). http://www.nerlaska.com/msx/

ejemplo de uso:
Código:
fillfile prueba.rom 32768

Lo que no se ahora es si utiliza FFh o 0h  Huh

Supongo que habrá otras aplicaciones, pero esta es la única que conozco.
También puedo adaptar la aplicación que ya conoces (ROM tools), para que trabaje con ROMs de 48ks.
En línea

--------------------------------- ------ ----- --- -- -
aorante/303bcn
http://aorante.blogspot.com
http://twitter.com/#!/aorante
http://303bcn.wordpress.com/
--------------------------------- ------ ----- --- -- -
kabish
Karoshi Maniac
****
Mensajes: 470


caspaflims@hotmail.com
« Respuesta #10 : 29 de Junio de 2010, 11:04:12 am »

Para rellenar yo hago esto ..

Código:
DataPage0End: equ $
ds 0x4000h-$,0xffh

El label 'DataPage0End' me sirve para saber los datos utiles que tengo en la pagina 0, mientras que con la segunda linea relleno hasta el final de la pagina con 0xffh.

Lamento no poder ayudarte mas con este tema, pero yo no tengo codigo en la pagina 0 y solo puedo comentarte algo sobre la teoria, que no es mucha en mi caso tampoco. Tongue

Un saludo.
En línea
j4mk3
Karoshi Maniac
****
Mensajes: 376


MSx Powa!


WWW Email
« Respuesta #11 : 29 de Junio de 2010, 12:52:01 pm »

Hmm hmmm el relleno es la clave...mmm
Me gusta el modelo del "viejo"...a rellenar de ceros.

@Sapphire
No hay prisa, ya me espero.
El que tiene prisa es el Maki que me da por culo cada vez que me ve o me escribe "el juego que que que pa abril,no?" Wink

Doy un dato más que me da que pensar que algo no hago bien.
Ayer por la tarde pusimos la ROM (de 40ks) en el Pazos MegaFlash pinchao en un F700S de Sony....y que si quieres arroz catalina...se fue al Basic Sad
Sudó de la ROM tanto si lo ponias en el Slot1 como en el 2 de Cartucho.  Cry
En línea

---  G Fan  ---  Galious & Gradius  & G Boys   ---
--- Play HANS' ADVENTURE, STAN, THE DREAMER & BITLOGIC ---
SapphiRe_MSX
Visitante
« Respuesta #12 : 29 de Junio de 2010, 01:14:53 pm »

Citar
Ayer por la tarde pusimos la ROM (de 40ks) en el Pazos MegaFlash pinchao en un F700S de Sony....y que si quieres arroz catalina...se fue al Basic Sad

¿Pero cuál? ¿MegaFlash SCC? ¿MegaFlash de 1024? ¿O el MegaFlash nuevo con la FPGA? Si es el primero es normal, porque no soporta las ROMS de 48K. Los otros dos sí.
En línea
aorante
Karoshi Maniac
****
Mensajes: 451


nuTella Power!


WWW Email
« Respuesta #13 : 29 de Junio de 2010, 01:20:43 pm »

En el megaflashROM SCC+ solo acepta los ficheros con los bytes exactos.
En línea

--------------------------------- ------ ----- --- -- -
aorante/303bcn
http://aorante.blogspot.com
http://twitter.com/#!/aorante
http://303bcn.wordpress.com/
--------------------------------- ------ ----- --- -- -
j4mk3
Karoshi Maniac
****
Mensajes: 376


MSx Powa!


WWW Email
« Respuesta #14 : 29 de Junio de 2010, 01:42:44 pm »

Pues va a ser eso...lo probamos con el clasico de 1024.
Cachis.  Cool

Hoy mientras me okupan el comedor con el "putofurgol de los coone", haré las pruebas pertinentes.  Cool
En línea

---  G Fan  ---  Galious & Gradius  & G Boys   ---
--- Play HANS' ADVENTURE, STAN, THE DREAMER & BITLOGIC ---
Páginas: [1] 2
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!