Questions related to the vpd
Moderators: BigEvilCorporation, Mask of Destiny
Questions related to the vpd
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
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.
-
- Very interested
- Posts: 616
- Joined: Thu Nov 30, 2006 6:30 am
Re: Questions related to the vpd
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: 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.
Nope. Obviously you can use transparent tiles to achieve a similar effect though.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.
I haven't tested it, but I believe it should work. There's no particularly good reason why it wouldn't.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 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.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"?
Re: Questions related to the vpd
Notice in documentation states about transfer from "Out of ROM", for example from RAM.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"?
Results from some tests: viewtopic.php?p=19993#19993
Re: Questions related to the vpd
If I understand properly, thats exist in many games: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).
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.
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.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.
Re: Questions related to the vpd
..
Last edited by eteream on Sat Jul 20, 2013 8:28 pm, edited 2 times in total.
-
- Very interested
- Posts: 616
- Joined: Thu Nov 30, 2006 6:30 am
Re: Questions related to the vpd
This thread seems to have notes from all the people that have looked into it so far: viewtopic.php?t=1206eteream wrote:Nice! Where I can find more info about this test register?Mask of Destiny wrote: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: 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.
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.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.
-
- Very interested
- Posts: 2442
- Joined: Tue Dec 05, 2006 1:37 pm
- Location: Estonia, Rapla City
- Contact:
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
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen