DUDA CON SPRITES

Page 1/3
| 2 | 3

By adan.mastergshock

Master (246)

adan.mastergshock's picture

24-02-2015, 16:34

Buenas tardes a todos.

Para el proyecto que estamos elaborando y por la parte que me toca...tengo unas dudas que prefiero preguntar antes de continuar.Ya tengo editados parte de los sprites de algunas fases, mi idea es saber si haciendo un programa que meta "las datas" de los graficos en memoria, es decir desde basic hago un cargador de sprites tipico, una vez estan en memoria...copio los valores de la zona de memoria de los sprites copiandola en una zona de la vram visible y la guardo como una pantalla completa de video...despues cargo esa pantalla y copio todo ese "copy" a la zona de sprites...¿Se puede hacer?, quiero liberar todo el espacio posible de la memoria RAM.

Igual acabo de escribir el poste estupido del año...pero bueno hay que preguntar.

Muchas gracias.

Login or register to post comments

By AxelStone

Prophet (3108)

AxelStone's picture

24-02-2015, 17:48

Pregunta: ¿son sprites hardware o software?

By adan.mastergshock

Master (246)

adan.mastergshock's picture

24-02-2015, 21:25

Cuando hablo de sprites hablo de sprites hardware, cuando hablo de bitmaps "sprites" son copys.

By jrcp_kun

Paragon (1410)

jrcp_kun's picture

24-02-2015, 22:05

en vram puedes guardar lo que quieras siempre y cuando no vayas a hacer visible esa pagina.
luego lo copias y lo mueves donde quieras
no hace falta tenerlo en ram .

By adan.mastergshock

Master (246)

adan.mastergshock's picture

24-02-2015, 22:47

Me refiero a no meter datas en el programa principal, datas de sprites...si se pueden crear y copiar la zona de memoria de sprites a zona vram visible(visible pero escondida, es decir no set page 0,0), y copiar "ese" copy a la zona de sprites cuando convenga...así no tengo lleno de datas el programa...no se si me explico.
Cargo la pantalla, copio a la zona de vram ese trozo codificado de la zona de sprites...y libero la ram...

¿Me explico o no?

By AxelStone

Prophet (3108)

AxelStone's picture

24-02-2015, 23:44

Ostras pues tiene sentido lo que dices, en verdad los sprites no son más que contenido de memoria así que debería poderse hacer lo que dices. En principio puedes probar y nos cuentas si funciona no? A ver, te comento una posible forma:
1.- Defines los sprites con DATAs, efectivamente estarán en la zona oculta de la página 0.
2.- Con VPEEK y VPOKE copia las posiciones de la zona oculta de video, léase &H6A08-&H7FFF a la página 1.
3.- Haz un new y prueba a volcar a partir de &H6A08 lo que copiaste en la página 1.

De todos modos si tu problema es ahorrar memoria no hace falta ¿no? Me refiero, yo para mi proyecto uso un loader independiente del juego. Es decir, el loader mete todo lo que necesita el motor del juego en RAM/VRAM y después cargo el motor del juego que se va a encontrar ya todo "en su sitio". ¿No lo prefieres así?

By mohai

Paladin (968)

mohai's picture

25-02-2015, 12:34

Hola,
no te líes sin necesidad.
Fíjate lo que pasa cuando defines sprites en BASIC: Se guardan en VRAM en su zona correspondiente, pero no se visualizan hasta que haces un put sprite.
El VDP trabaja como lo necesitas: por un lado guarda las definiciones de sprites y por otro los atributos (lo que haces con put sprite).
Tanto la tabla de atributos, como la zona de definiciones, están guardadas en VRAM y son independientes.
Podrás grabarlas con BSAVE y luego recuperarlas con BLOAD de la manera habitual. Incluso puedes cargarla en la zona de VRAM que quieras, con desplazamiento.

By adan.mastergshock

Master (246)

adan.mastergshock's picture

26-02-2015, 11:52

hola otra vez, voy a hacer pruebas sobre esto.

Lo que no recuerdo es cuantos sprites se pueden definir en screen 5 y cual es la dirección desde donde se guardan imagino que es la que comentas(AxelStone) de &H6A08-&H7FFF...

By AxelStone

Prophet (3108)

AxelStone's picture

26-02-2015, 12:37

adan.mastergshock wrote:

hola otra vez, voy a hacer pruebas sobre esto.

Lo que no recuerdo es cuantos sprites se pueden definir en screen 5 y cual es la dirección desde donde se guardan imagino que es la que comentas(AxelStone) de &H6A08-&H7FFF...

Se guardan en la zona oculta de las páginas 0 y 1. Consideras que cada página tiene 32768bytes para 256x256 y solo hay visibles 256x212, significa que la página visible son 27136bytes, a partir de ahí es zona oculta hasta los 32Kb (los numerajos que te he puesto en hexadecimal).

Para copiar desde la página 1 suma 32Kb a esa cifra, es decir la zona oculta de la página 1 empieza en &HEA00.

Suerte.

By adan.mastergshock

Master (246)

adan.mastergshock's picture

26-02-2015, 12:57

Genial por el apunte, voy a ello.

Lo ultimo, no recuerdo el total de sprites definibles, creo que era 64, no lo recuerdo.

By AxelStone

Prophet (3108)

AxelStone's picture

26-02-2015, 21:16

adan.mastergshock wrote:

Genial por el apunte, voy a ello.

Lo ultimo, no recuerdo el total de sprites definibles, creo que era 64, no lo recuerdo.

256 patrones de 8x8 Wink

Page 1/3
| 2 | 3