HispaMSX

RE: [hispamsx] "Emulación"

2000-01-11 18:53:56

    Hola JAM!!!

    Por fin, alguien que tambien opina sobre esto!!!

A ver, cómo veo yo esto ..... Yo creo que lo importante no
es suponer que el EP.COM debe o no debe restaurar los registros
del PPI-C .... En principio, yo pienso que no, puesto que si
la propia BIOS no lo hace, y se supone que el uso de la BIOS es
seguro, significa que no podemos permitirnos pre-suponer que
el emulador de diskette de la megascsi deba hacerlo.

    Desde mi punto de vista, creo que no estás enfocando
adecuadamente la situación del problema:

    Que la BIOS no restaure el PPI-C es totalmente
indiferente a que otro programa lo haga. Como ya dije en
otro mensaje, si usamos la bios para leer el teclado, es
absurdo que lo restaure, ya que nunca vamos a usar el
puerto $AA directamente.

    Si hicieramos las dos cosas, usar la Bios y el puerto $AA
por nuestra cuenta, es que no tenemos muy claro que clase de
beneficio tiene usar la BIOS. El hecho de usar la BIOS es muy
simple, se debe a que en el supuesto de que un MSX tenga el
acceso al PPI en otros puertos que no sean los habituales.
Algo así como cuando dijiste de obtener los puertos del VDP
leyendo de la Bios (Bytes $6 y $7 de la BIOS)

    El único beneficio que tiene usar la Bios es este, que
accederemos al puerto correcto donde se encuentra el PPI.

    ¿Porque el Emulador de la MegaSCSI si DEBE de restaurarlo?

    Pues por la naturaleza de su objetivo, PARCHEAR unas funciones
de la DiskROM para poder simular un disquet físico en el Disco duro.

    Al tratarse de un Parche DEBE ser lo más trasparente posible,
o sinó, la cagará como hace con el SBB.

Pero la cuestión no es esta .... La cosa está en, no simplemente hacer que
un programa funcione en MSX y punto .... Si con el mismo trabajo se puede
hacer para que rule en disco duro, ¿por qué no hacerlo?

    Vamos a ver, apuesto lo que sea que si MK-II llega a probar el
SBB con el MegaSCSI y ve que no funciona, seguro que habría puesto
remedio.

    El problema está en que un programador de un juego nunca piensa
en que le van a meter un parche en la DiskROM (MegaSCSI) o que le van
a parchear la Interrupción $38 (Cheat Master) y que le van a modificar
algún puerto hardware sin que él se entere. Ya que en el caso del SBB
MK-II tiene el control total del MSX (en todos los niveles) Es absurdo
que esté TODO el RATO actualizando el Puerto $AA con el valor 8, si
sabe perfectamente que no hay NADIE en el MSX que se lo modifique.
Es algo así como estar todo el rato actualizando la paleta de colores
si sabemos que no hay nadie que la pueda modificar.

    De aquí la importancia de la trasparencia de los Parches.

    El programador de un parcheador tiene que tener muy presente, que
todos los programas que parchee no sabén que él está ahí, por eso
tiene que ser lo mas invisible que pueda, en cuanto de descubren
pues pasa esto, que el programa emulado falla. Evidentemente por
la instransparencia del emulador.

Porque, si nos ponemos serios, para hacer un programa que fuese
100% fiable y 100% compatible, habría que usar llamadas a la BIOS
y no leer/escribir directamente los puertos. Así que si se programa
saltándose la BIOS, cualquier programa es susceptible de fallar, y
partiendo de esto, lo importante (ya que nos hemos saltado las reglas) es
hacer que nuestro programa sea compatible con la máxima cantidad de
interfaces/emuladores/residentes que haya ....

    Exactamente, para no tener problemas con los puertos como
tu dices, no tiene NADA que ver que la Bios no restaure el PPI-C
respecto al MegaSCSI.

    Y por cierto ¿Quien se ha saltado las reglas? El SBB trabaja
según las reglas, pero el MegaSCSI se ha saltado las reglas de
la trasparencia de un parcheador modificando el PPI-C.

    Como tú dices, lo mejor es que funcione con todos los emuladores,
pero la verdad es que realmente se tendría que decir: que los
emuladores funcionen con todos los porgramas que emulen.

    Cuando usas un emulador de pecera y un juego no va, ¿de quien es
la culpa? del juego o del emulador.

Es mi opinión. Pero simplemente eso, una opinión desde mis limitados
conociemientos. No quiero entrar en la polémica, pero
por supuesto acepto correciones si he dicho alguna burrada.

    Me parece estupendo que hayas opinado sobre esto, de verdad.

    Por cierto, otra cosa, en tu futuro LoadROM harás que pueda
parchear ciertos juegos MegaROM para que funcionen correctamente
con poca RAM, te lo digo porque puedo ayudarte a encontrar todos
los lugares del MegaROM donde escribe en su mapper y saber cuales
son las únicas combinaciones posibles de bloques de 16Kb.

    Un gran saludo!

    Juan Ant, Gómez









<Anterior en la conversación] Conversación actual [Siguiente en la conversación>