screensplit (Development MSX Fora)MSX Resource Center            
            
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 71 gasten en 2 MSX vrienden online

Je bent een anonieme bezoeker.
 

MSX Fora


MSX Fora

Development - screensplit

Ga naar pagina ( 1 | 2 Volgende pagina )
Schrijver

screensplit

norakomi
msx professional
Berichten: 861
Geplaatst: 31 Maart 2005, 22:33   
I played with the interrupt in vdp(1) in basic
lets say I use screen 5 and there is a ship flying around using the arrowkeys.

If I disable the interups (vdp(1)=80) and then erase my old ship (and enemies) and then place my new ship, with new coordinates, and place the enemies, and background. and Then....... enable the interups (vdp(1)=112) everything looks good.

However when I fly with my ship in a region between y=30 and y=100 (approx.) there is a lot of flickering and or no ship at all........

how come??








Another thing

I read the article about screensplit, experimented a bit,
But, I´d like to know what to do to disable the screen from y=100 for example.


NYYRIKKI
msx master
Berichten: 1525
Geplaatst: 01 April 2005, 01:31   

Disabling the VDP interrupts does not help. It will cause VDP to stop "bothering" CPU, but the display will be updated to anyway.

Flickering is caused by the fact, that you first remove the ship from screen and then draw it again to another place. When you have removed the ship, the screen refresh draws the picture before you have managed to draw the ship to VRAM again.

There are two ways to solve this:
1. Don't let that happen... Start to delete & redraw your ship just after screen refresh has passed your ship. This way you have most time to do your job, that is about 0.015 sec depending of VDP(10) bit 1 & size of your ship.

2. Give up your 50/60fps dream, free some VRAM and start double buffering. More of this subject from here: http://www.msx.org/forumtopic4397.html

Quote:


But, I´d like to know what to do to disable the screen from y=100 for example.



Here is an interesting discussion about this topic: http://es.msx.org/forumtopic1456.html


norakomi
msx professional
Berichten: 861
Geplaatst: 03 April 2005, 05:27   
So there is no way to disable screen output for a while.......
thnxfer da tip
Edwin
msx professional
Berichten: 626
Geplaatst: 03 April 2005, 12:48   
Quote:

So there is no way to disable screen output for a while.......
thnxfer da tip



Yes, bit 6 of VDP R#1 sets the screen on and off. This works perfectly in screen splits. It also has the added benefit op making VDP transfers faster as no memory bandwidth is needed for displaying that part of the screen.
Sonic_aka_T

msx guru
Berichten: 2269
Geplaatst: 03 April 2005, 13:10   
I think what he wants is not to disable the screen, but more to freeze-frame it, right? And unfortunately, I haven't quite figured that one out yet Double-buffering does the trick nicely though, albeit at a cost of one page and some extra commands...
norakomi
msx professional
Berichten: 861
Geplaatst: 04 April 2005, 20:50   
and double buffering is the trick i have been using so far, untill I started to experiment with horizontal scrolling, which brings new problems to the light.....

(like not only does the screen scroll nice, the characters also scroll along, which is wat I NOT want !)
Grauw
msx professional
Berichten: 1006
Geplaatst: 04 April 2005, 22:04   

norakomi
msx professional
Berichten: 861
Geplaatst: 05 April 2005, 18:38   
if I have 2 screen splits


part 1 starting at y=0


part 2 starting at y=50


part 3 starting at y=51


can I then enable part 3 (just simply taking it out) and disable it again, and continue doing this (resulting in a page switching (p=1-p) kinda thing ???

and can I devide the screen with a screen split and make one part function in page 0 and the other in page 1????

Edwin
msx professional
Berichten: 626
Geplaatst: 05 April 2005, 21:42   
Quote:

can I devide the screen with a screen split and make one part function in page 0 and the other in page 1????



Yes. You can change almost anything at a screensplit.

Split y=0

R#2 = $1F

Split y=51

R#2 = $3F

(loop)

this way you show page 0 on top and page 1 starting at line 51. It's as simple as that.
Grauw
msx professional
Berichten: 1006
Geplaatst: 05 April 2005, 22:37   
pagesplits, scrollsplits, coloursplits, spritesplits... they rule .
norakomi
msx professional
Berichten: 861
Geplaatst: 08 April 2005, 23:46   
Quote:

--------------------------------------------------------------------------------

can I devide the screen with a screen split and make one part function in page 0 and the other in page 1????
--------------------------------------------------------------------------------
Yes. You can change almost anything at a screensplit.



Then can I do this:

Split the screen at y=30 (and making y=30-y=211 page 0).
Split the screen at y=31 (and making y=31-y=211 page 1).

put a background in page 0 (y=30-y=211)
put the exact same background in page 1 (y=31-y=211)
put a character in page 1 at (100,100)

at this point page 0 will not be viewed because of the screensplit.
However can I do this in page 0:

Put the character at (101,100)
scroll the entire screen one pixel to the left (using hor.scroll register)
disable the 2nd screensplit which shows page 1 (disable the 2ndscreensplit at y=31)

???? is this possible






why do I want this?
This makes it possible to scroll independantly in page 0 or page 1 !!!!
Edwin
msx professional
Berichten: 626
Geplaatst: 09 April 2005, 00:35   
Quote:

Split the screen at y=30 (and making y=30-y=211 page 0).
Split the screen at y=31 (and making y=31-y=211 page 1).



This is pointless, use one split and change the page to what you need.


As for the rest, I'm still not entirely clear on what you're trying to accomplish. But I do have a feeling you don't entirely see what a screensplit is.

But instead of posting the question here, try out what you want to know. It's shows more than we can tell you. Also it gives a better base for questions.
Grauw
msx professional
Berichten: 1006
Geplaatst: 09 April 2005, 12:24   
Yes, you can scroll page 0 and 1 independantly, and show them at the same time (one page before the screensplit line, the other after).

However what you are describing isn't possible. You cannot achieve general purpose ‘multilayer’ effects by using screensplits.

It *is* however possible as said earlier, to e.g. have a playing field at the top of the screen (e.g. lines 0-160) and have a status overview below it (lines 160-212). The field area at the top can then be in a different page and scroll independantly from the status area at the bottom.

If you want multilayer (within the same horizontal line, that is!, which is usually the case), it should be done with COPY commands and perhaps sprites (depending on your needs). COPY commands are slow, but you can still achieve quite nice effects with them, just look at the intro demos of games like Xak, Ys, Dragon Slayer, etc.

Ys 3 is also a very good example. The game is entirely multilayer, using just COPY commands, and still very fast. Of course, you must be an extremely good assembly coder to be able to make a game engine like that , it’s really admireable. Cas Cremer’s Akin and Core Dump games (the latter never released but a demo version is available) are similarly impressive, although not as much as Ys 3 is. Neither of those use smooth scrolling though, because that's just not possible, they scroll per 8 pixels.


~Grauw
ro
msx guru
Berichten: 2346
Geplaatst: 11 April 2005, 12:57   
you could use some sort of pseude multi layer though... just split the screen multiple time and make the top and bottom parts scroll faster than the middle part.. for example, here's a 5 layered scroll. the top and bottom are both 2 layers while the middle part is the actual playfield

(y-split, scroll speed)
0, 6 <- top 1, fast scrollspeed
32, 4 <- top 2, medium scrollspeed
64, 2 <- middle (playfield), slowest scrollspeed
140, 4 <- bottom 2, medium scrollspeed
172, 6 <- bottom 1, fastest scrollspeed

for example; put some "clouds" in the top layers and repeat the scroll. at the bottom some "stones" or alike and do the same. the actual playingfield might could be a starfield for example. or some actual background as in other games I could mention.
try it.
cheers.
ro
msx guru
Berichten: 2346
Geplaatst: 11 April 2005, 12:57   
note that the above example include LNI (Line Interrupts) routines!
 
Ga naar pagina ( 1 | 2 Volgende pagina )
 







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