DivMMC RAM y MAPRAM

Software para o relacionado con el core ZX Spectrum / Software for or related to the ZX Spectrum core
Responder
Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

DivMMC RAM y MAPRAM

Mensaje por Uto » 14 Nov 2016, 11:13

Por lo que veo en el Wiki el DivMMC que implementa el ZX-Uno lleva incorporados los 256K de memoria estándar, y además acabo de probar alguna demos del modo ALLRAM y funcionan, por lo que parece que está actualizado a la version equivalente al DivIDE que lleva la R''-GAL (probablemente todos los DIvMMC lo estén ¿no?).

En estas condiciones, sería posible que un juego de ZX-Uno hiciera uso de esa memoria extra ¿no? Es decir, un ZX-Uno con 128K +256K.

La pregunta es teórica, no digo que sea muy práctico, porque con la paginación y que no sea acceso lineal - al final solo puedes acceder a 64k simultáneos - la cosa es incómoda, pero no inviable ¿no?

He leido este artículo de Velesoft y aunque mas o menos se entiende, no se si alguien que entienda más podría hacer una explicación de MAPRAM, CONMEM, ALLRAM, etc. un poco más "for dummies" O:-)

http://velesoft.speccy.cz/zx/divide/divide-memory.htm

Edito: si Pentagon soporta hasta 256K, con la RAM de DivMMC tendríamos un ZX-Uno capaz de manejar 512K de RAM?

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: DivMMC RAM y MAPRAM

Mensaje por antoniovillena » 14 Nov 2016, 11:36

Aquí tienes el mapa de memoria del core de Spectrum

Imagen

Desde una ROM rooteada puedes acceder a los 512K de este mapa de memoria. Lo único es que si escribes en partes que actúan como ROM (de spectrum o de DivMMC) tendrás cuelgues a no ser que tu juego no use la ROM ni DivMMC.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: DivMMC RAM y MAPRAM

Mensaje por Uto » 14 Nov 2016, 11:47

Gracias Antonio. Ese mapa lo había visto, ahí es donde he ido a mirar cuando me he preguntado cuanta RAM soporta el DivMMC que implementa el core de Spectrum.

La cuestión es que no se trata de usar ROMs rooteadas para acceder "a saco" sino de poder usar la RAM de DivMMC como se puede usar en un Spectrum real en un juego cualquiera sin tener que pedirle al usuario "arranca con ROM rooted", y limitándonos a la RAM que nos de el Spectrum

Mirando la info de Velesoft no me da la impresión de que se pueda mapear cualquier banco, pero es que el tema es complicado, o me lo parece :-?

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: DivMMC RAM y MAPRAM

Mensaje por antoniovillena » 14 Nov 2016, 12:32

Pues me temo que no todos los DivIDEs/DivMMC tienen la misma cantidad de RAM disponible, y la mínima soportada es 32K (4 bancos de 8K). Así que desde tu juego solo puedes acceder a 128K+32K= 160K, lo cual tampoco es una mejora considerable, y teniendo en cuenta que sólo los que tengan DivIDE/DivMMC pueden disfrutarla.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: DivMMC RAM y MAPRAM

Mensaje por Uto » 14 Nov 2016, 12:43

antoniovillena escribió:Pues me temo que no todos los DivIDEs/DivMMC tienen la misma cantidad de RAM disponible, y la mínima soportada es 32K (4 bancos de 8K). Así que desde tu juego solo puedes acceder a 128K+32K= 160K, lo cual tampoco es una mejora considerable, y teniendo en cuenta que sólo los que tengan DivIDE/DivMMC pueden disfrutarla.
Ciertamente 32K más no es gran cosa, pero bueno, igual que algunos juegos piden Spectrum 128k, algunas demos piden Pentagon, y un juego pide modo radastaniano (Ship Fix), y otro Timex HiColor (nextipede), siempre se puede hacer un juego o lo que sea que requiera un DivIDE/MMC, o incluso un DivIDE/MMC con una cantidad de memoria mínima. Reduces los posibles usuario pero todos los otros ejemplos que he puesto también los reducen, y ahora con ZX-Uno hay muchísima más gente que "tiene" un DivMMC de 256K :-)

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: DivMMC RAM y MAPRAM

Mensaje por antoniovillena » 14 Nov 2016, 13:14

Uto escribió: Ciertamente 32K más no es gran cosa, pero bueno, igual que algunos juegos piden Spectrum 128k, algunas demos piden Pentagon, y un juego pide modo radastaniano (Ship Fix), y otro Timex HiColor (nextipede), siempre se puede hacer un juego o lo que sea que requiera un DivIDE/MMC, o incluso un DivIDE/MMC con una cantidad de memoria mínima. Reduces los posibles usuario pero todos los otros ejemplos que he puesto también los reducen, y ahora con ZX-Uno hay muchísima más gente que "tiene" un DivMMC de 256K :-)
El DivMMC del ZX-Uno no tiene 256K. Según el mapa tiene reservados 128K, pero no sé si está implementado o McLeod sólo puso los 32K obligatorios.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: DivMMC RAM y MAPRAM

Mensaje por Uto » 14 Nov 2016, 13:53

Hay 8 slots, no se por qué me he liado y he contado 16, luego sería 128K (si están implementados en el core claro).

Avatar de Usuario
Kyp
Mensajes: 240
Registrado: 18 May 2016, 20:16

Re: DivMMC RAM y MAPRAM

Mensaje por Kyp » 14 Nov 2016, 14:06

Según me dijo mcleod cuando estaba haciendo mi core, se usan 128K.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: DivMMC RAM y MAPRAM

Mensaje por Uto » 14 Nov 2016, 14:31

Kyp escribió:Según me dijo mcleod cuando estaba haciendo mi core, se usan 128K.
Gracias Kyp. Pues son 128 más. Lo que no recuerdo es si el Pentagon llegaba a usar 256K, y si los llegaba a tener de donde los pilla (supongo que de los slots para el Chloe).

Supongo que juntando todo se puede hacer un juego específico para ZX-Uno que use 128+256K de RAM si fuera necesario/útil.

La verdad es que no se me ocurre muy bien para que podría usarse tanta RAM, pero la pregunta como digo es teórica, saber qué se puede hacer, hasta donde podemos usar esa RAM, para que un juego hecho para ZX-Uno pueda aprovecharla si le hace falta.

Una caché de disco sería una opción interesante,para tener un juego que cargue los recursos necesarios de disco (sprites, fondos e incluso código de determinadas cosas) pero que tenga un caché en memoria por delante que evite la lectura continua de la SD y por tanto los tirones continuos. Es el mismo modelo que se usó mucho en DOS (aunque algunas cosas las implementaba el juego, y otros simplemente se beneficiaban del SMARTDRV directamente).

Responder