V9990 & tilemap scrolling

Page 3/3
1 | 2 |

By Manuel

Ascended (15527)

Manuel's picture

03-07-2019, 23:33

That would be awesome, thanks!

By GhostwriterP

Champion (507)

GhostwriterP's picture

04-07-2019, 22:18

So far no luck reproducing the "bug", must be something other than I thought... It is going to be difficult to figure out what exactly. To be continued...

By Manuel

Ascended (15527)

Manuel's picture

04-07-2019, 22:21

OK, thanks, keep us posted...

By GhostwriterP

Champion (507)

GhostwriterP's picture

06-07-2019, 18:56

Good news, I was to quick to judge, the issue I encountered is not related to name table updates using the commands. That part works fine on both real v9990 and openMSX. There is a small difference in speed, where copy speed in emulator appears slightly faster. This should in most cases not be a problem, only if you're really working on the edge.

Now about the bug:
I suspect there is a bug in the command completion interrupt (CE int) in openMSX. In my program the CE int only follows directly after processing a line interrupt. Therewith it seems a command completion does not generate a interrupt directly or by itself (only flags are set?) and only once you had another interrupt, then it is. Question (I used openMSX 0.15.0.)

Is this issue already being tackled by the openMSX team?

By Manuel

Ascended (15527)

Manuel's picture

06-07-2019, 19:39

I don't think so. Please create a ticket and add the test code with a description on what happens on real hardware.

By Manuel

Ascended (15527)

Manuel's picture

20-07-2019, 11:30

Wouter just implemented the proper timing/sync for the CE interrupt. Thanks again for reporting!

By GhostwriterP

Champion (507)

GhostwriterP's picture

24-07-2019, 17:57

tested the patch for CE implementation and can confirm it is working a lot better now, much appreciated!

PingPong wrote:

Hi, i'm not an expert in V9990 cmd engine. I'm wondering if it is easy to move the nametable in P1/P2 on a charater basis using VDP commands.

Coming back to initial topic, note that it is also possible to store the complete map in vram and then copy the visible part directly into the name table and no need to roll the screen. You may have to split it in 4 commands but it is very doable and does not require much cpu bandwidth at all.

By PingPong

Prophet (3328)

PingPong's picture

26-07-2019, 09:14

why to you need 4 commands?

By GhostwriterP

Champion (507)

GhostwriterP's picture

26-07-2019, 12:18

A map in vram would be stored in bits of two screens wide (64 tiles/128 bytes). If your map will be only two screens wide one command (per layer) would suffice. When your map is wider then you need to split the command in two on the 2 screen border. In P1 you have 2 layers, so 2 x 2 = 4 commands.

Page 3/3
1 | 2 |