Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.


#306 Mirrored VDP mode doesn't work on Toshiba VDP's

Graphics (138)
2 days ago

<n_n> mirrored mode however is known not to work on toshiba vdp
<n_n> to clarify
<n_n> mirrored mode = screen2 with a mask on the pattern or color table address to make it use less than 3 separate tables

<Quibus> mirrored mode doesn't have a test in ident.bas, right?
<n_n> it does
<n_n> it's the 'do you see this text 3 times?' test
<Quibus> ah
<Quibus> mirrorred mode works always, except on Toshiba MSX1 VDP's?
<n_n> yes, it works on v9938/58 too

So, also testable with ident.bas. openMSX doesn't emulate this difference at all.


  • SD Snatcher
    SD Snatcher

    Any news on this matter? Would it be to hard to emulate this VDP and its unique color palette?

    It would be nice to test some future patches, since it's very hard to come by a machine with this specific VDP.

    It would be good to attach the IDENT.BAS file here too. The only test I know is this one:

    screen2:vdp(3)=159:vdp(4)=0:line(33,33)-(99,55),15,bf:a$=input$(1) [ENTER]

    The Toshiba T6950 VDP will show only a single horizontal white band, while the other VDPs (even the v2 of the Toshiba VDP inside the T7937 chipset) will show three horizontal white bands.

    It's unsure which version of the Toshiba VDP is inside the T7775 chipset.

  • ZIP containing ident.bas

  • SD Snatcher
    SD Snatcher

    You asked me to bump important features if I feel they're forgotten. As a developer, the proper Toshiba VDPs emulation is a very high priority feature, because we need to know if the software will misbehave or look weird on certain machines.

    1) The T6950 features:
    - Lack of support for the mirrored VDP modes
    - Different color palette. See here:

    2) The T7937A MSX-Engine features:
    - Supports mirrored VDP modes properly
    - The same color palette as the T6950.

    Bugs #305, #400 and #228 are related with this one and should ideally be solved together. They all deal with hardware idiosyncrasies that have impact for those who develop MSX software.

    Last edit: SD Snatcher 2013-07-17
  • SD Snatcher
    SD Snatcher
    7 days ago


    I feel kinda sad I couldn't detect the T6950 incompatibilities when I tested the MSXdev'14 entries...

    Please implement the T6950 lack of support for the mirrored modes.

  • Do we know exactly how the 'mirroring' stuff on T6950 is behaving? The 'normal' mirror mode is a side effect of how the VRAM address calculation works (base-register AND index), see doc/internal/vram-addressing.txt for more details. If the T6950 does not show this mirror behavior it could be for various different reasons. One possibility (but just a guess) is that the VRAM addressing formula is ((base-register AND index-mask) OR index) with index-mask a value like 0xb1111111000000, so basically ignoring the lower few bits of the register.

    If the vram addressing for the character table uses a different formula, then it's likely that other tables use a different formula as well. Do we know anything about that?

    I'm willing to implement this in openMSX, but only if we're reasonably sure exactly how it works. And I won't be investigating this myself. I also don't have access to a MSX with T6950 VDP.

  • <mth> Quibus: if I understand hap correctly, all there is to it is that the bits that would control masking are treated as always 1 in SCREEN2

    Only for screen 2 and only for the nametable.