MSX2 VPD speed (Development MSX Fora)MSX Resource Center MSXdev 2008 - MSX1 development bonanza!           
            
English Nederlands Español Português Russian         
 Nieuws
   Voorpagina
  Nieuws archief
  Nieuws onderwerpen

 Informatie
   MSX Fora
  Artikelen
  Recensies
  Beursverslagen
  Fotoreportages
  Beurzen en meetings
  Enquêtes
  Links
  Zoek

 Software
   Downloads
  Webshop

 MRC
   Wie we zijn
  Kom bij ons team
  Doneren
  Policies
  Contact met het MRC
  Link naar Ons
  Statistieken

 Zoek
 
  

  

 Login
 

Gebruikersnaam

Wachtwoord




Ben je nog niet lid? Klik hier en word MSX vriend!


 Statistieken
 

Er zijn 118 gasten en 1 MSX vriend online

Je bent een anonieme bezoeker.
 

MSX Fora


MSX Fora

Development - MSX2 VPD speed

Ga naar pagina ( 1 | 2 | 3 Volgende pagina )
Schrijver

MSX2 VPD speed

ASK
msx user
Berichten: 38
Geplaatst: 05 Maart 2007, 10:23   
Hi people!

I am coding a scroll pixel to pixel in msx2 using the copy msxbasic sentence.

The problem is that some emulators the scroll is faster than another one.

What is the emulator that simulate better the vdp processor?

In a real msx, would be the speed fast or slow?

If the scroll is slowly in a real msx, is there any solutions?

Thx!!!
wolf_

msx legend
Berichten: 4653
Geplaatst: 05 Maart 2007, 11:11   
Using copies is slow, that's the nature of the beast.. iirc max 5kb vram per interrupt, in fast copy mode.

Solutions:

- use scroll registers, whenever possible
- use assembly
manuel
msx guru
Berichten: 3375
Geplaatst: 05 Maart 2007, 13:14   
Emulators in which it is slow are probably correct (blueMSX and openMSX at least should be pretty accurate). Using assembly doesn't speed up copy-scrolling a lot though...
Edwin
msx professional
Berichten: 592
Geplaatst: 05 Maart 2007, 20:11   
Copy in basic doesn't use high speed copies though. You would have to that with the vdp registers directly.
norakomi
msx professional
Berichten: 861
Geplaatst: 06 Maart 2007, 00:05   
Hi

Can you program in assembly (machine language) ??
In basic you can also use register 18 (thats vdp(18) or vdp(19)) to move the entire screen to the left/right.
10 screen 5
20 bload"picture.sc5",s
30 vdp(18)=vdp(18)+1
or is it
30 vdp(19)=vdp(19)+1
40 goto 30

you could use this in combination with a full screen copy of 8 pixels per copy.

And you can use register 23 (thats vdp(23) or vdp(24)) to scroll vertically.
wolf_

msx legend
Berichten: 4653
Geplaatst: 06 Maart 2007, 01:06   
In BASIC it's 24 and 19
ASK
msx user
Berichten: 38
Geplaatst: 06 Maart 2007, 10:40   
Thx, for your replies.

The problem to use the register is: that is not a real scroll.

The register 18 or vdp(19) is equal to use the set adjust basic sentence.

To the use register 18, the x coord. is moved, if the x coord is always moved, what is the situation de object?

Using assembler is slowly, the same.

Do you know any examples in basic about this?

Thx!!!, another time.
norakomi
msx professional
Berichten: 861
Geplaatst: 06 Maart 2007, 11:14   
Quote:

Thx, for your replies.
The problem to use the register is: that is not a real scroll.
The register 18 or vdp(19) is equal to use the set adjust basic sentence..

you are right, but these registers (r#18 and r#23) ARE used for scrolling in ALOT of games.
Like this:

* Use r#18 to "move" the screen to the left in 16 steps.
* In these 16 steps you can copy the entire screen 16 steps to the left (in another page)
* then you switch page, and start over with adjusting r#18

In this way you have a nice looking smoothscroll. You could scroll with 1 or 2 pixels every frame, which is really fast.

r#23 is much cooler !
norakomi
msx professional
Berichten: 861
Geplaatst: 06 Maart 2007, 11:16   
Quote:

To the use register 18, the x coord. is moved, if the x coord is always moved, what is the situation de object?

the x coord ??? the x coord of a sprite you mean ???
then, when you change r#18, you need to move the x coord of the sprite as well
NYYRIKKI
msx master
Berichten: 1502
Geplaatst: 06 Maart 2007, 16:59   
To make it smooth, execute with CALL RUN (MSX-Basic KUN compiler aka XBASIC)

10 DEFINT A-Z:SCREEN 5
20 P0=0:P1=1
30 CIRCLE (128,106),100,8:PAINT (128,106),8
40 FOR K=0 TO 15
50 COPY (16,0)-(255,211),P0 TO (0,0),P1
60 FOR I=0 TO 15:VDP(19)=((I-8)AND15)
70 TIME=0:FOR T=0 TO 1:T=TIME:NEXT T
80 NEXT I
90 SWAP P0,P1:SET PAGE P0,P1
100 NEXT K

ASK
msx user
Berichten: 38
Geplaatst: 07 Maart 2007, 16:58   
I have been testing the register 18, but I don't know.

There is a screen unsquare. Something fault.

I have been looking the YS III. This program has a multi screen scroll, and I think that it is not made with the register 18 technique.

I am going to test the NYYRIKKI example. It is a great help.

Thx for all !!!!!
wolf_

msx legend
Berichten: 4653
Geplaatst: 07 Maart 2007, 17:01   
Ys 3 uses the "brute force" method ..
ASK
msx user
Berichten: 38
Geplaatst: 07 Maart 2007, 17:19   
And what is that?

The scroll is a little quick.
Edwin
msx professional
Berichten: 592
Geplaatst: 07 Maart 2007, 18:32   
That's just copying everything in place all the time. In order to get it reasonably quick, a bit repetitive graphics is needed so you can skip some parts. When very well done, it looks impressive!
manuel
msx guru
Berichten: 3375
Geplaatst: 07 Maart 2007, 19:12   
Ys III uses cleary 8x8 pixel blocks to speed things up...
 
Ga naar pagina ( 1 | 2 | 3 Volgende pagina )
 







(c) 1994 - 2008 Stichting MSX Resource Center. MSX is een trademark van MSX Licensing Corporation.