Karoshi MSX Community
27 de Junio de 2017, 07:31:05 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Calendario Ingresar Registrarse  
Páginas: 1 2 3 [4]
  Imprimir  
Autor Tema: Dudas varias sobre programación en MSX  (Leído 11076 veces)
0 Usuarios y 2 Visitantes están viendo este tema.
ARTRAG
Visitante
« Respuesta #45 : 20 de Abril de 2014, 07:25:19 pm »

Sorry this demo does not shows what it should
https://sites.google.com/site/devmsx/split-screen-on-msx1/split%20screen.rar?attredirects=0&d=1

Tomorrow I'll try more using real hw an I will tell more
In my previous experiment I discovered I was actually having 5 sprites even if I wasn't testing the 5th bit flag

The demo shows the normal split screen using 5th bit flag: you can see two SAT's with 64 sprites active

https://sites.google.com/site/devmsx/split-screen-on-msx1/split%20screen.rar?attredirects=0&d=1
« Última modificación: 20 de Abril de 2014, 08:54:18 pm por AR » En línea
ARTRAG
Visitante
« Respuesta #46 : 20 de Abril de 2014, 11:06:10 pm »

this is why on emulators it does not work without 5 sprites on one line
http://www.msx.org/forum/development/msx-development/msx1-vdp-statusregister-details?page=3
tomorrow I'll try on real HW
En línea
Jos'b
Karoshi Maniac
****
Mensajes: 262


Ver Perfil
« Respuesta #47 : 21 de Abril de 2014, 10:08:32 am »

this is why on emulators it does not work without 5 sprites on one line
http://www.msx.org/forum/development/msx-development/msx1-vdp-statusregister-details?page=3
tomorrow I'll try on real HW
Interesting due to the fact that it can be used for knowing whether you are using a real machine or not. So, it could be easy way for real cartridges in order to avoid emulators.

Am I mistook?
En línea
ARTRAG
Visitante
« Respuesta #48 : 21 de Abril de 2014, 12:36:00 pm »

Correct, but the rom posted works on emulators too as the polling loop tests also the 5th sprite flag
if you want to do a test that works only on real HW you need to poll for &h1F skipping the flag

[edit]
I updated the files in the attach
https://sites.google.com/site/devmsx/split-screen-on-msx1/split%20screen.rar?attredirects=0&d=1

Now the files in the "standard" directory show a normal split screen using 5 sprites on a line as split point.
The code works in emulators and shows two sat's of 32 sprites (total 64) on the same screen.
The last 5 sprites of the upper sat have to be sacrificed as placeholders for line split

The files in "active sprite counter" directory show a screen split using just one sprite as split point
The code does not work properly on emulators and I have to test it (I hope tonight) on real HW
The last sprite of the upper sat is sacrificed as placeholders for line split so you can use 63 sprites freely
After the tests on real HW I'll tell if it works as expected.
 
« Última modificación: 21 de Abril de 2014, 06:51:42 pm por AR » En línea
ARTRAG
Visitante
« Respuesta #49 : 21 de Abril de 2014, 11:21:36 pm »

I've just tested files in "standard" directory and those in "active sprite counter" directory on my TR and only the split screen that uses the 5th sprite flag works.

In order to reproduce hap's results on the behaviour of "sprite counter" of the status register more tests and investigations are needed.

Anyway, Dioniso, if you can, try the standard files. The split screen works great and I expect nothing strange on msx1 vdp's.
« Última modificación: 21 de Abril de 2014, 11:37:17 pm por AR » En línea
Dioniso
Visitante
« Respuesta #50 : 22 de Abril de 2014, 06:55:26 pm »

I've just tested files in "standard" directory and those in "active sprite counter" directory on my TR and only the split screen that uses the 5th sprite flag works.

In order to reproduce hap's results on the behaviour of "sprite counter" of the status register more tests and investigations are needed.

Anyway, Dioniso, if you can, try the standard files. The split screen works great and I expect nothing strange on msx1 vdp's.

I have also tried both ROM in a MSX1 HB-75D. The "sprite counter" one doesn't work properly and everytime I reset de MSX I have a different result; showing 8 sprites at the top and none or 32 at the bottom. Could it be the way of writing to the VRAM?

I could reproduce the SCREEN 2- SCREEN 3 - SCREEN 2 screen splits I coded with syncho code using your technique of the 5th sprite flag but not with the "active sprite counter". Thanks for the code. If you want to do some tests on the HB-75D (Germany, PAL) just tell me. I also have some others MSX1 computers:

-SONY HB-75P (Europe)
-SONY HB-75 (Japan)
-SONY HB-55 (Japan)
-PHILIPS VG8020 (Europe)
-Alamiah AX-150 (Arabic)
-DAEWOO ZEMMIX CPC-51B (Korean console)
-MSX Selector-6 (Japanish console for hotels with 6 slots for cartridges)

You can send me a mail and I can take photos or videos of the ROM running in a MSX1.
En línea
ARTRAG
Visitante
« Respuesta #51 : 22 de Abril de 2014, 10:54:12 pm »

Thanks! Actually I'm starting to think that hap's ideas about the status register working as "active sprite counter" is just a mental trip :-)

I did some more tests on my TR without success: if the feature exists and turns out to be only present in TMS9918 (and equivalents) but not supported by V9938/58, it could be not worth of being emulated and used in actual SW.

I'll try to do a test rom where the position of the placeholder can be changed by keyboard.
In this way it should be possible to pass from "standard" screen split with 5th sprite condition to "active sprite counter". I let you know asap.

En línea
Mr Matsusaka
Karoshi Newbie
*
Mensajes: 15


Ver Perfil Email
« Respuesta #52 : 16 de Agosto de 2014, 09:01:45 pm »

Hola!

Después de mucho tiempo vuelvo por estos lares con una nueva pregunta.
Anteriormente pregunte por la interrupciones para dibujar mas de 32 sprites. El caso es que en mi juego es difícil controlar los sprites que habrán en la parte alta de la pantalla y los que habrán abajo. Bien podria ser que los 64 esten el la parte alta o baja en determinados momentos.

Así que renuncie a esta idea y me decidí por otra idea que me dio AR, que es la de hacer parpadear los primeros 32 frames y los últimos entre frames pares e impares. Aunque no se vean perfectamente no es un mal sistema. Ademas puestos los sprites con inteligencia el sistema también sirve para evitar el problema del 5º sprite.

Ahora la pregunta es esta: veo que cuando 5 sprites se sobreponen en la misma linea la acción se ralentiza, siendo esto cada vez mas patente si la superposición de sprites sucede varias veces al mismo tiempo. No parece conveniente, ya que ralentiza la acción en determinados puntos. Esto supongo que se trata de la famosa interrupción. Probablemente la respuesta sea negativa pero, existe manera de desactivar esta interrupción del 5º sprite?

Gracias de antemano
En línea
Páginas: 1 2 3 [4]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!