v9990 bmxl and bmlx in P1

Door GhostwriterP

Hero (541)

afbeelding van GhostwriterP

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!

Aangemeld of registreer om reacties te plaatsen

Van alexito

Hero (627)

afbeelding van alexito

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

Van Manuel

Ascended (16951)

afbeelding van Manuel

15-01-2020, 17:59

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

Van Juan Luis

Expert (109)

afbeelding van Juan Luis

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.

Van GhostwriterP

Hero (541)

afbeelding van GhostwriterP

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.

Van GhostwriterP

Hero (541)

afbeelding van GhostwriterP

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.

Van Manel46

Hero (595)

afbeelding van Manel46

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.

Van Manel46

Hero (595)

afbeelding van Manel46

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.