Las tripas del OPF (Debates en Español Foros MSX)MSX Resource Center MSXdev 2008 - MSX1 development bonanza!           
                       
English Nederlands Español Português Russian                  
 Noticias
   Página principal
  Almacén de noticias
  Temas de noticias

 Recursos
   Foros MSX
  Artículos
  Analisis
  Informe de ferias/RUs
  Álbum de fotos
  Ferias y encuentros
  Encuestas
  Enlaces
  Buscar

 Software
   Descargas
  Tienda Online

 MRC
   Quiénes somos
  Únete a nuestro equipo
  Donar
  Políticas
  Contacta con nosotros
  Enlázanos
  Estadísticas

 Buscar
 
  

  

 Login
 

Login

Contraseña




¿Aún no tienes una cuenta? ¡Conviértete en miembro del MSX Resource Center! ¡Únete a nosotros!.


 Estadísticas
 

Hay 123 invitados y 4 miembros en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Debates en Español - Las tripas del OPF

Autor

Las tripas del OPF

pitpan
msx master
Mensajes: 1368
Publicado: Marzo 07 2005, 14:15   
Esta es una preguntilla para el amigo Gillian.

Recibi hace poco mi SCC+ ya actualizado a 128 KB y ahora estoy haciendo pruebas con mi propio software para crear automaticamente WAVs de megaROMs que carguen en el aparatito en cuestion.

Por supuesto, los juegos con mapper Konami SCC no necesitan modificacion alguna y funcionan perfectamente (por cierto, que consigo cargar megaROMs en menos de 2 minutos por el puerto de cassette).

Pero que hago con los otros tipos de mapeado? Solo he hecho algunas pruebas con juegos de Konami no SCC y mapper de 8 KB, y lo que hago es buscar los siguientes comandos:

LD [6000h],A
LD [8000h],A
LD [A000h],A

Y sustituirlos por

LD [7000h],A
LD [9000h],A
LD [B000h],A

Y, por supuesto, los juegos que he probado funcionan perfectamente. Pero tengo la impresion de que estoy parcheando partes que no deberia, quizas grafico o sonido. Me baso para decir esto en que en algunas de las ROMs el programa hace el cambio mas de 500 veces... Me parece mucho, pero quizas es lo adecuado.

Como me consta que el OPF esta muy bien programado, me gustaria saber como funciona, es decir, que cadenas busca y como las sustituye. Que otros mapeadores podria implementar sin problemas? Supongo que el ASCII 8 KB no tendra mayores dificultades, pero no se como funciona (desconozco las direcciones de cambio de pagina).

Un saludo y gracias. Me ha salido un mensaje un tanto tecnico, espero que la gente no se asuste! Si hay alguien mas con un SCC+ ampliado y que quiera probar WAVs vertiginosos, que me cuente!


Guillian
msx professional
Mensajes: 619
Publicado: Marzo 07 2005, 15:18   
Lo que haces para adaptar las ROMs de Konami4 (no SCC) a Konami5 (SCC) es correcto. Aunque te parezca exagerado el numero de veces que se cambia de página, es normal. Date cuenta que hay juegos que cambian a cada interrupcion algunos bancos.

Los mapper ASCII funcionan de manera similar, sólo que usando otro rango de direcciones:
 Mode			Memory Bank		Bank registers	
----------------------------------------------------------------------------------------

- 8KB Mode		4000-5FFFh		6000-67FFh
			6000-7FFFh		6800-6FFFh
			8000-9FFFh		7000-77FFh
			A000-BFFFh		7800-7FFFh

- 16KB Mode:		4000-7FFFh		6000-67FFh
			8000-BFFFh		7000-77FFh


Pero en el caso de los ASCII la cosa no será tan sencilla como con los Konamis, ya que en éstos últimos siempre se usan las mismas direcciones para cambiar de banco, a pesar de poder usar otras sin problemas dentro de su rango (por ejemplo #6034 en vez de #5000)

Así que en algunos casos te bastará con buscar cadenas del tipo: LD (#6800), A y similares. Pero también te puedes encontrar con ROMs que usan #68FF o cualquier otra válida. Y eso no es todo, como es lógico también se pueden hacer cosas como:
LD HL,#68FF
LD (HL), A

Fijo que no te vas a aburrir en una temporada ^^!

pitpan
msx master
Mensajes: 1368
Publicado: Marzo 08 2005, 17:24   
Si, seguro que no me aburro ;-)

Gracias por la informacion, me quedo con la copla. Eso si, para el mapeado de paginas de 16 KB, que haces exactamente? Empotrar en la ROM una rutina que cambie dos paginas a la vez o poner algo asi en la RAM, para que conmute dos paginas consecutivas al mismo tiempo? Lo digo porque no veo ninguna solucion trivial para hacerlo...


Guillian
msx professional
Mensajes: 619
Publicado: Marzo 08 2005, 23:09   
Lo que hice para las ROMs de 16K fue añadir hardware extra (con ayuda de Tsujikawa ^^!) para poder cambiar el modo de paginación en los modelos ASCII (estos mappers pueden funcionar en ambos modos). En los modelos SCC esto no es posible, ya que el SCC trabaja siempre con bancos de 8K. Así que la solución es la que tú apuntas: cambiar los LDs por CALLs a tus propias rutinas de mapeo. Algo así como:
                LD (#6000), A

cambiarlo por

                CALL BANK4
                .
                .
                .
BANK4:
                PUSH AF
                RLCA
                LD (#5000), A
                INC A
                LD (#7000), A
                POP AF
                RET

usuario_msx2
msx freak
Mensajes: 143
Publicado: Marzo 09 2005, 12:09   
una pregunta que se sale de contexto

No tengo información sobre el SCC+, habría forma de añadir mas ram para ser usada en el scc+?

saludos
pitpan
msx master
Mensajes: 1368
Publicado: Marzo 09 2005, 23:00   
El problema es que luego no se podria usar del mismo modo el registro de control. No creo que se pueda hacer "por las buenas". Aunque supongo que haciendo el bestia si que se podria. O usar un SCC+, como hizo aqui Gillian, para ponerle una memoria Flash y usarlo con el OPF (si no recuerdo mal, claro). Un SCC+ con 1 MByte (es decir, 8 Mbits) seria una autentica gozada para los sentidos.

El problema es que todavia no me he puesto con la info tecnica del chip flash, para hacer la version que funcione desde el puerto de cassette. Todo se andara!

Guillian
msx professional
Mensajes: 619
Publicado: Marzo 10 2005, 04:39   
En esto no puedo ayudaros ya que no dispongo del "pinout" del SCC-I2312P001 (SCC+ para los colegas). Dependiendo de las señales que de se podría ampliar o no a más memoria. Pero me temo que no es posible pasar de 128KB. Como ya sabréis, dependiendo si el cartucho es del Snatcher o del SD-Snatcher, la RAM se encuentra en los bancos 0-7 o en los 8-15. Pero el banco 0 es el mismo que el #10, y el mismo que el #20 y así sucesivamente. Esto me hace pensar que no puede direccionar más de 128KB a priori. Podría ser que tenga algunos pins de configuración para indicar la RAM con la que tiene que trabajar, y lineas extra para las señales /CAS para direccionarlo. Pero me temo que no es así.
 
 







(c) 1994 - 2008 Fundación MSX Resource Center. MSX es una marca registrada de MSX Licensing Corporation