Nuevo pokeador: POKEMON

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Nuevo pokeador: POKEMON

Mensajepor antoniovillena » 03 Mar 2013, 18:39

Como dice McLeod estos modos se pensaron exclusivamente para soportar CP/M. De los 4 modos hay uno sin contención (0/4), otro todo contención (4/4) y los otros con 3/4 de contención. Habría sido muy útil un modo con contención 1/4, por ejemplo las páginas 0523, pero bueno es lo que hay. La contención afecta a algunos juegos, sobre todo los que tienen tiempos muy críticos. Personalmente lo he probado en CargandoLeches, conmutando entre el modo 0 (rutina de carga sin contención) y el modo 2 (para mostrar el progreso de la carga y para jugar una vez cargado el juego). No necesariamente tiene que haber una página común al conmutar, pero es preferible. Puedes saltar del modo 0 (0123) al modo 1 (4567) si lo tienes todo muy controlado (pila, instrucciones que se ejecutan), teniendo en cuenta que hay en medio un salto invisible.

Con respecto a lo que piensas hacer:

Poder cargar desde disco juegos de IF2. Teniendo en cuenta que dichos juegos están disponibles en otros formatos no tiene otra utilidad que el reto de hacerlo en sí mismo.

Hacer un emulador de 48k con OpenSE. Esto si es factible y no muy difícil. En disco no tiene mucha historia, pero en cinta, si quieres que la carga sea rápida, se puede usar la propia ROM del spectrum a modo de diccionario para la compresión. Sin usar diccionario la ROM ocuparía unos 12-13K, usando diccionario se puede quedar en 2-3K.

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 3013
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 86 veces
Gracias recibidas: 359 veces
Contactar:

Re: Nuevo pokeador: POKEMON

Mensajepor zup » 03 Mar 2013, 20:29

Bueno, ni Gyruss, Q*Bert ni la ROM de test del Spectrum se publicaron en cinta. Los dos primeros, de hecho, ni siquiera se publicaron en ROM (fueron prototipos, aunque hubo un clón de Q*Bert llamado Pogo) y el segundo no tiene mucho sentido cargarlo en RAM, pero bueno. Del resto hay juegos que sí fueron publicados (todos los de Ultimate y algún prototipo como Panama Joe), pero es posible que alguno de los que están catalogados como prototipos tampoco fuera publicado en cinta (ni en disco).

En el caso de las ROMs, creo que no habría problemas. Todos los juegos que se publicaron en cinta eran para 16k, y ahí la contención afecta a toda la RAM... dudo mucho que hayan hecho rutinas diferentes para RAM (contenida) y ROM (sin contención). Además, cargarlos en un "pseudo IF2" puede dar menos problemas, ya que a veces los juegos de 16k usan áreas de la página 5 que son muy necesarias para el +3. La secuencia que tenía en mente era cargar el juego en la RAM 4, saltar al modo 4567 o 4563, bloquear el puerto para que no se pueda paginar otra cosa y saltar a 0. El juego debería inicializar la RAM y el estado del buffer de impresora y variables de sistema ya no debería ser importante.

La capacidad de cargar ROMs personalizadas de 48k (OpenSE, +4 y demás) es una idea que me lleva rondando la cabeza (básicamente es la misma jugada que las ROMs del IF2), pero el tema de la contención puede ser problemático. Si la ROM no está contenida, supongo que afectará a las rutinas LOAD/SAVE de la ROM y puede que sea imposible cargar programas en este modo (¿o esas rutinas han sido escritas para ser "inmunes" a la contención?).
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Nuevo pokeador: POKEMON

Mensajepor antoniovillena » 03 Mar 2013, 20:44

No conocía dichos prototipos de juegos en ROM, entonces sí merece la pena. En cuanto a lo problemas de contención en las rutinas LOAD/SAVE de la ROM no te preocupes, tengo los parches por ahí (de CargandoLeches) que los hacen inmunes: básicamente es disminuir el valor de algunas constantes de tal forma que el retardo sea equivalente a la ROM sin contención. Esto cubre todos los casos salvo:
  • Juegos con cargadores que copien la ROM a la zona no contenida (c000-ffff).
  • Juegos con cargadores en la zona antes no contenida, ahora contenida (8000-bfff).

De todas formas la carga estándar es muy robusta e incluso funciona con la ROM contenida, pero es deseable hacer el parche para que la carga dé menos errores.

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Nuevo pokeador: POKEMON

Mensajepor antoniovillena » 05 Mar 2013, 23:48

Ya he terminado la utilidad. Si te interesa aquí pongo la tabla de las constantes de tiempo a modificar para que las rutinas LOAD y SAVE funcionen correctamente en los modos all RAM (con contención en la zona baja):

Código: Seleccionar todo

 Dirección
 |    Byte original
 |    |  Byte a reemplazar
 04df a4 90
 04e9 2f 29
 04f1 37 31
 0519 42 3a
 051f 3e 34
 052e 31 29
 0581 9c a4
 0590 c9 cc
 05a6 b0 b8
 05c7 b2 ba
 05d4 b0 b8

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Nuevo pokeador: POKEMON

Mensajepor antoniovillena » 12 Mar 2013, 23:34

Ya he creado la versión DivIDE de la herramienta y la he probado en Fuse. Desgraciadamente no tengo el dispositivo físico para probarlo, así que si alguien se anima se lo agradecería.

http://retrolandia.net/foro/showthread. ... 335#pid335


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 17 invitados