v9990 bmxl and bmlx in P1

By GhostwriterP

Hero (527)

GhostwriterP's picture

14-01-2020, 21:08

For those who are interested I posted the issue regarding bmxl and bmlx emulation on openMSX on github. You can freely download the test & code at p1_bmxl_bmlx_test
Enjoy!

Login or register to post comments

By alexito

Hero (613)

alexito's picture

15-01-2020, 17:38

Thanks already tested on Real Turbo R + GFX9000 (Tecnobytes) works great with not corrupted graphics comparing to OpenMSX 0.15.0 and thanks again for share your discoveries. I will pray for a Debugging tool (GFX9000 Bitmap Viewer and VDP Registers)

Great Job, GhostwriterP

By Manuel

Ascended (16125)

Manuel's picture

15-01-2020, 17:59

Praying won't help. Coding, or finding someone to code will.

By Juan Luis

Expert (100)

Juan Luis's picture

15-01-2020, 20:15

GhostwriterP wrote:

For those who are interested I posted the issue regarding bmxl and bmlx emulation on openMSX on github. You can freely download the test & code at p1_bmxl_bmlx_test
Enjoy!

GhostwriterP, thanks for your cooperation.

By GhostwriterP

Hero (527)

GhostwriterP's picture

16-01-2020, 20:52

Made two small mistakes though, vram on plane B was not cleared properly and address for bmlx was 202h instead of 22000h , both are now corrected update.

By GhostwriterP

Hero (527)

GhostwriterP's picture

17-01-2020, 19:53

Because of this interleaved memory in P1, the use of bmll is also quite interesting.

In principle it has a transfer speed of 12.25 kb/60Hz frame. But in order to fully benefit from this speed you would have to have something to transfer on both plane A and plane B of the same size and aligned source and destination addresses (B=A+40000h). If bmll is specified for only for plane A, the plane B side is still executed and normally should be masked out with the write mask. But effectively means the amount of data that can be transferred (per frame) is cut in half, i.e. 6.125 kb / 60Hz frame.

So in the case one would require animation of tiles on both on plane A and plane B, it would be wise to align them such that all these tiles (both on plane A and B) can be updated with one single bmll command. Doing it for plane A and B separately is twice the workload on the vdp... just something to keep in mind Wink.

By Manel46

Hero (516)

Manel46's picture

17-01-2020, 20:17

Ingenious what you do with the bmxl. Simple and fast.
We take note of what you say about bmll. Thanks for everything.

By Manel46

Hero (516)

Manel46's picture

20-01-2020, 15:09

All this of the BMXL, initiated by Juan Luis, has served for all of us to do our tests. I have learned from experience. This allows you to write symmetric patterns in X and Y, in the table.
But in summary: We can make symmetry of tiles with a graphic editor. Let's not get complicated.