Questions related to the vpd

For anything related to VDP (plane, color, sprite, tiles)

Moderators: BigEvilCorporation, Mask of Destiny

Post Reply
eteream
Very interested
Posts: 81
Joined: Tue Dec 22, 2009 2:13 pm

Questions related to the vpd

Post by eteream » Thu Jun 27, 2013 6:35 pm

4 possibly tricky questions:

1) Can I disable a plane? I mean individually, and not by using a transparent tile, but simply put a bit to 0 or something like that.

2) Can I disable the scrolling of a plane? I mean plane is no longer an infinite plane but a finite rectangle which not necessarily fills all the screen.

3) Can I change the register with the address of the begin of a plane inside an HINT? I mean changing registers 2 & 4 of vpd within an HINT. Any example or any game which makes this? Yes, it seems weird at first but with games of limited playfield is usefull (road rash for example).

4) The documentation speaks about a "feature" (bug?) when setting the dma, in case of doing it from rom, it can fail. I redid the function so last operand is loaded from memory* (I will show it among other things in the sdk forum), but I don't know why is that, any thoughts about the "feature"?

thanks!

EDIT:
* RAM memory, I mean
Last edited by eteream on Mon Jul 01, 2013 1:48 pm, edited 1 time in total.

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Questions related to the vpd

Post by Mask of Destiny » Thu Jun 27, 2013 6:47 pm

eteream wrote: 1) Can I disable a plane? I mean individually, and not by using a transparent tile, but simply put a bit to 0 or something like that.
Maybe with the test register, but outside of that you can't disable a plane completely. Games that only need a single plane will typically use the same table for both planes.
eteream wrote: 2) Can I disable the scrolling of a plane? I mean plane is no longer an infinite plane but a finite rectangle which not necessarily fills all the screen.
Nope. Obviously you can use transparent tiles to achieve a similar effect though.
eteream wrote: 3) Can I change the register with the address of the begin of a plane inside an HINT? I mean changing registers 2 & 4 of vpd within an HINT. Any example or any game which makes this? Yes, it seems weird at first but with games of limited playfield is usefull (road rash for example).
I haven't tested it, but I believe it should work. There's no particularly good reason why it wouldn't.
eteream wrote: 4) The documentation speaks about a "feature" (bug?) when setting the dma, in case of doing it from rom, it can fail. I redid the function so last operand is loaded from memory (I will show it among other things in the sdk forum), but I don't know why is that, any thoughts about the "feature"?
I don't have any information about this beyond seeing the same warning you mention. It would be interesting to poke around with a logic analyzer if someone can produce a reliable repro case of the bug.

r57shell
Very interested
Posts: 478
Joined: Sun Dec 23, 2012 1:30 pm
Location: Russia
Contact:

Re: Questions related to the vpd

Post by r57shell » Thu Jun 27, 2013 7:53 pm

eteream wrote:4) The documentation speaks about a "feature" (bug?) when setting the dma, in case of doing it from rom, it can fail. I redid the function so last operand is loaded from memory (I will show it among other things in the sdk forum), but I don't know why is that, any thoughts about the "feature"?
Notice in documentation states about transfer from "Out of ROM", for example from RAM.
Results from some tests: viewtopic.php?p=19993#19993
Image

Ti_
Very interested
Posts: 97
Joined: Tue Aug 30, 2011 7:50 am
Contact:

Re: Questions related to the vpd

Post by Ti_ » Thu Jun 27, 2013 8:42 pm

eteream wrote: 3) Can I change the register with the address of the begin of a plane inside an HINT? I mean changing registers 2 & 4 of vpd within an HINT. Any example or any game which makes this? Yes, it seems weird at first but with games of limited playfield is usefull (road rash for example).
If I understand properly, thats exist in many games:
example Rock n' Roll Racing split screen: 4 tilemaps: planA+plaB for first screen , and planA+planB for second at VRAM: $8000,$A000,$C000 and $E000.

Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Post by Nemesis » Fri Jun 28, 2013 6:52 am

I don't have any information about this beyond seeing the same warning you mention. It would be interesting to poke around with a logic analyzer if someone can produce a reliable repro case of the bug.
I plan to do some tests on that when I can get the time. I know from doing hardware testing that lockups do in fact occur if you don't follow this rule, but I haven't tested why. I've also encountered lockups when the DMA enable bit is left on, which is another thing the documentation says not to do. I haven't checked the bus signals to identify the cause of these lockups though.

eteream
Very interested
Posts: 81
Joined: Tue Dec 22, 2009 2:13 pm

Re: Questions related to the vpd

Post by eteream » Mon Jul 01, 2013 1:43 pm

..
Last edited by eteream on Sat Jul 20, 2013 8:28 pm, edited 2 times in total.

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Questions related to the vpd

Post by Mask of Destiny » Tue Jul 02, 2013 1:41 am

eteream wrote:
Mask of Destiny wrote:
eteream wrote: 1) Can I disable a plane? I mean individually, and not by using a transparent tile, but simply put a bit to 0 or something like that.
Maybe with the test register, but outside of that you can't disable a plane completely. Games that only need a single plane will typically use the same table for both planes.
Nice! Where I can find more info about this test register?
This thread seems to have notes from all the people that have looked into it so far: viewtopic.php?t=1206
Nemesis wrote:I've also encountered lockups when the DMA enable bit is left on, which is another thing the documentation says not to do. I haven't checked the bus signals to identify the cause of these lockups though.
Really? A bunch of commercially released games seem to leave DMA enabled for an extended period of time (Fatal Labyrinth, Toejam & Earl, Streets of Rage 3, Ecco the Dolphin and Ecco the Tides of Time at least). I don't doubt that the documentation says not to do it since some games turn it off immediately after finishing a DMA operation, but it would seem that it's possible to leave it on safely.

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) » Tue Jul 02, 2013 1:54 am

I only ever experienced DMA lockup when Z80 was not running and accessing ROM.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

Post Reply