OpenMSX / G9K / Real hardware issue / V9990

Pagina 2/3
1 | | 3

Van GhostwriterP

Hero (626)

afbeelding van GhostwriterP

07-09-2021, 22:01

There are two thing to keep track on in P1 mode using LMMM:

  1. destination address bit DX9 specifies the destination target screen (0 = screen/layer A, 1 = screen/layer B)
  2. the writemask must indeed be set up so that writing to the screen/layer you do not want to write to is prohibited where R#46 represents screen A and R#47 screen B. so if your target is screen A write 255 in R#46 and 0 in R#47 and vice versa.

BMLL can also be used but it will then be more convenient to update 32 characters at once on both screen A and screen B (so 64 characters at the same time => twice the data with the same speed), but that is expert stuff and maybe for later Wink

Edit: Or even use BMXL to flip a character horizontal and/or vertical for that matter... do not know if this is already properly emulated yet in openMSX... also expert level stuff, so maybe for a rainy day Wink

Van Trebmint2

Master (242)

afbeelding van Trebmint2

08-09-2021, 10:03

GhostwriterP wrote:

There are two thing to keep track on in P1 mode using LMMM:

  1. destination address bit DX9 specifies the destination target screen (0 = screen/layer A, 1 = screen/layer B)
  2. the writemask must indeed be set up so that writing to the screen/layer you do not want to write to is prohibited where R#46 represents screen A and R#47 screen B. so if your target is screen A write 255 in R#46 and 0 in R#47 and vice versa.

BMLL can also be used but it will then be more convenient to update 32 characters at once on both screen A and screen B (so 64 characters at the same time => twice the data with the same speed), but that is expert stuff and maybe for later Wink

Edit: Or even use BMXL to flip a character horizontal and/or vertical for that matter... do not know if this is already properly emulated yet in openMSX... also expert level stuff, so maybe for a rainy day Wink

Hey GhostwriterP, that worked thanks. Now I can get onto how to implement in the language.

Van Trebmint2

Master (242)

afbeelding van Trebmint2

08-09-2021, 13:40

Oh I've tested the X/Y Flip and in OpenMSX atleast it doesn't appear to be implemented.

Van Grauw

Ascended (10157)

afbeelding van Grauw

08-09-2021, 14:12

If you give them a test case I bet they’ll add it Smile.

Van edoz

Prophet (2397)

afbeelding van edoz

08-09-2021, 14:34

Hey Rob, just, let me know if i can test it for you!

Van edoz

Prophet (2397)

afbeelding van edoz

08-09-2021, 14:35

oh Sorry, i mean Trebmint2 LOL! LOL! LOL!

Van Manuel

Ascended (18244)

afbeelding van Manuel

08-09-2021, 18:06

Is this the effect of the ARG register? That is definitely used in the BMXL implementation... so yeah, a test case that works on real V9990 would be very useful to check what's going on.

Van edoz

Prophet (2397)

afbeelding van edoz

08-09-2021, 18:08

We are working on it. A soon i can write something i will send you and exe file to test in OpenMSX, after we tested it on real hardware

Van GhostwriterP

Hero (626)

afbeelding van GhostwriterP

08-09-2021, 18:26

That test case already exists: Beast
directly from github link as issue to be solved, guess it snowed under ;)

Van Trebmint2

Master (242)

afbeelding van Trebmint2

09-09-2021, 17:56

Does anyone know is the speed of vdp memory copies on v9990 and openmsx accurate??? Using P1 and LMMM 40 scanlines to copy a 16x64 area, surely not?

Pagina 2/3
1 | | 3