V9990 - differences between open msx and real hardware

Página 1/2
| 2

Por Joel Verdonck

Rookie (28)

Imagen del Joel Verdonck

08-02-2017, 14:34

Hi all,

Is there any known differences between the way that openMSX is managing the V9990 commands such as LMMM and the real hardware. I've the impression that LMMM is working fine in P1 mode on all the operations on PLAN A, but not on PLAN B.
I've setup a copy data example likr this one sx:512, xy:512 dx:512 dy:416 nx:256 ny:32 and, on screen the result is stange (black filled squares appears in the result on real hardware, in open-msx it's as expected).
I'm using the G9K Library CopyXYToXY method , I've tryed other pieces of code (out of G9K), and the results are always the same.
Is there any issue with the V9990 vram to vram copy actions after the VRAM 0h40000.

PS: same method is working well on plan A ( < #40000)

<>
G9kWriteReg G9K_ARG,0
G9kWriteReg G9K_LOP,G9K_LOP_WCSC
LD HL,#ffff
CALL SetCmdWriteMask

ld hl, copyWaterAnimData
call CopyXYToXY

copyWaterAnimData:
DW 512 ; SX
DW 512 ; SY

DW 512 ; DX
DW 416 ; DY

DW 256 ; NX
DW 32 ; NY

If somebody can help on that because I'm totally puzzled by the VDP behaviour, thanks

:)

Login sesión o register para postear comentarios

Por Langoor2

Supporter (12)

Imagen del Langoor2

08-02-2017, 19:43

Try setting the writemask to ff00.

Por Joel Verdonck

Rookie (28)

Imagen del Joel Verdonck

08-02-2017, 22:30

no it doesn't work, i have the same behavior, it is like it copies 240 pixels/32 isntead of 256/32, I really do not understand why, is it a blitter issue? I really don't know

Por Joel Verdonck

Rookie (28)

Imagen del Joel Verdonck

09-02-2017, 21:59

stargely I've displace of 512 the coord on Y axis and it works ???? but why

Por Manuel

Ascended (15621)

Imagen del Manuel

10-02-2017, 23:02

Well, there may be a bug in the emulation... actually if the real hardware behaves differently for the same software, there's definitely a bug in the emulation... who can help to find it?

Por Manuel

Ascended (15621)

Imagen del Manuel

11-02-2017, 15:48

Can you be more precise on what happens on real hardware and what happens in openMSX? Perhaps also add screenshots?

Por msd

Paragon (1372)

Imagen del msd

12-02-2017, 01:55

iirc there is also something different you have to with the addresses in P1 mode. It is documented in the v9990 manual. But not very clearly. I can't check my sources from here, but I think I might have an example somewhere.

Por Joel Verdonck

Rookie (28)

Imagen del Joel Verdonck

12-02-2017, 15:08

Manuel, actually, The adress #5000 to #5800 cannot be copied in any way by the blitter, we have tested it on 3 differents graph9000 configuration and it doesn't work in any case, which is not normal, open msx is reacting as expected, not the real hardware ??? (Should be the opposite Smile ) When you blit from this vram area, you will always get a partial result.
The demo I gave you in Nijmegen last month doesn't work on real hardware because of that. I've adapted my code and everything is ok, now ... at the exception of the line interupts that providing strange pixel noises. I'll provide you an update if you like
Why this page cannot be used??? I cannot answer to that, but the facts are there, try to do it yourself, wathever the method, it won't work correctly !!!

Por Panzer

Paragon (1041)

Imagen del Panzer

12-02-2017, 16:17

Very interesting...

Por hit9918

Prophet (2866)

Imagen del hit9918

12-02-2017, 17:41

just as a brainstorming:
are there two sets of RAM chips. for doubeling the acess speed.
the nametable is in the other set where the blitter has no acess slot.

and there is dual ported RAM. this is about another doubeling of bandwidth.
maybe each plane is on one of these ports.
it could be that in one plane the blitter can get at the nametable and in the other plane it cant,
because there are slots for sprites.

just pure speculation, what could be the reasons.
and when 3 9990 do it the same, this is very nice. then one doesnt need to wonder whether a wire is broken.

Por Joel Verdonck

Rookie (28)

Imagen del Joel Verdonck

13-02-2017, 15:04

I try to understand what your are writing hit9918, and indeed, I had also this though about the dual ported RAM as well as problem related to VDP interuptions during copy time (I'm making a lot of line interrupts to change the palette on the background). My question is why all the other banks except this one are available to the blitter, why only these 32K area, I'm making copy all the time during the game since almost everything on the screen is animated on both playfield and only this area is creating issue. Crazy

Página 1/2
| 2