50/60Hz switch for MSX-DOS that checks VDP version?

Page 2/7
1 | | 3 | 4 | 5 | 6 | 7

By Grauw

Ascended (10074)

Grauw's picture

03-07-2021, 16:39

PingPong wrote:
Grauw wrote:

http://map.grauw.nl/sources/vdp_detection.php

Does not rely on sprites and works in every screen mode.

i see, but i was relying in vram wrap around because the alternative methods i've found around relay on the polling of hr flag that on TMS (and maybe V9938) is not reliable because of the race condition, even if not so easy to hit this situation. Or i'm wrong?

If a poll is missed due to the race condition issue while polling, the detection will simply take a frame longer to complete. Since this detection is only intended to be done once at the start of the program, that should not be a problem. I added a note to the bottom of the article to say as much.

By PingPong

Prophet (3769)

PingPong's picture

03-07-2021, 19:51

do you think my idea, even more elaborate could work? basically i'm trying to set screen 4 by setting Mx bit of register 0, in this case the VRAM AutoIncrement Wrap-Around does not occur in screen 4. But i'm unsure what is the effect on a TMS VDP nor its clones. Those buts are unused and doc say should be "0"...

By sdsnatcher73

Prophet (2243)

sdsnatcher73's picture

05-07-2021, 10:10

Okay, so what detection would work best? Seems the method Grauw uses should work. I can test it on several MSX1 with TMS9xx8 and TMS9xx9 chip, YM2220 and V9938 chips (as well as MSX2, 2+ and turbo R). The 1 or 2 frames delay don’t seem like an issue to me. Could someone create these programs? (Beyond my skill set unfortunately).

By gdx

Enlighted (4718)

gdx's picture

05-07-2021, 10:43

sdsnatcher73 wrote:

Seems the method Grauw uses should work. I can test it on several MSX1 with TMS9xx8 and TMS9xx9 chip, YM2220 and V9938 chips (as well as MSX2, 2+ and turbo R).

It is not useful to do the test with the TMS9xx8, TMS9xx9 chip and YM2220 but yes, test it with V9938 and V9938. Please also test the firmware switch state bit on MSXs that have a switch to enable the firmware.

By Grauw

Ascended (10074)

Grauw's picture

05-07-2021, 12:28

sdsnatcher73 wrote:

Okay, so what detection would work best? Seems the method Grauw uses should work. I can test it on several MSX1 with TMS9xx8 and TMS9xx9 chip, YM2220 and V9938 chips (as well as MSX2, 2+ and turbo R). The 1 or 2 frames delay don’t seem like an issue to me. Could someone create these programs? (Beyond my skill set unfortunately).

I wrapped the detection routine on the MAP in a DOS executable:

http://www.grauw.nl/etc/msx/vdpid.com

It will report either TMS9918, V9938 or V9958.

By sdsnatcher73

Prophet (2243)

sdsnatcher73's picture

05-07-2021, 17:24

gdx wrote:
sdsnatcher73 wrote:

Seems the method Grauw uses should work. I can test it on several MSX1 with TMS9xx8 and TMS9xx9 chip, YM2220 and V9938 chips (as well as MSX2, 2+ and turbo R).

It is not useful to do the test with the TMS9xx8, TMS9xx9 chip and YM2220 but yes, test it with V9938 and V9938. Please also test the firmware switch state bit on MSXs that have a switch to enable the firmware.

It is extremely useful to test on all VDP, so that ultimately the switch of VDP frequency is executed only only VDPs that support this function, thus preventing a garbled screen that only a reset can fix.

I am not sure what the firmware switch state bit has got to do with this thread, could you explain?

By gdx

Enlighted (4718)

gdx's picture

06-07-2021, 01:04

Not for the turbo mode of the Panasonic MSX2+.

By sdsnatcher73

Prophet (2243)

sdsnatcher73's picture

06-07-2021, 07:14

Quick test before feeding the kids:
Panasonic FS-A1FX - V9958
Panasonic FS-A1ST - V9958
Panasonic CX7M - V9938
Panasonic CX11 - V9938

One more thing to note, on the CX11 (and probably other MSX1 with V9938) the 50HZ.COM (this machine boots in 60Hz) in currently works but it garbles the display of the last 2.5 lines. In screen 1 (MODE 32 or less) I get seemingly random kana characters (although in some sort of pattern). In screen 0 (MODE 33 or higher) the prompt appears in that area (old buffer I guess).

I will test on some MSX1 with TMS or clone VDPs later.

By Grauw

Ascended (10074)

Grauw's picture

06-07-2021, 08:55

sdsnatcher73 wrote:

One more thing to note, on the CX11 (and probably other MSX1 with V9938) the 50HZ.COM (this machine boots in 60Hz) in currently works but it garbles the display of the last 2.5 lines. In screen 1 (MODE 32 or less) I get seemingly random kana characters (although in some sort of pattern). In screen 0 (MODE 33 or higher) the prompt appears in that area (old buffer I guess).

Ah, that is probably because on MSX1 the RG9SAV is uninitialised. It can be initialised to 0 if the BIOS version ID is 0.

By sdsnatcher73

Prophet (2243)

sdsnatcher73's picture

06-07-2021, 10:14

So I tested 3 more machines:
Yamaha CX5F - TMS9918
Toshiba HX10 - TMS9918
Philips VG8020 - TMS9918

@Grauw: it seems the detection works very well. I was wondering if you could make just one tool with vdpid as base. It could be called vdpfreq and take either 50 or 60 as parameter. And maybe print the current frequency if no parameter is given?

Anyway no rush of course and thanks everyone for the help!

Page 2/7
1 | | 3 | 4 | 5 | 6 | 7