New "SCREEN 9" found from V9958!

Door NYYRIKKI

Enlighted (5877)

afbeelding van NYYRIKKI

06-09-2021, 22:26

Ok, ok.. it is kind of bad idea to call any new mode SCREEN 9 as in reality "the lost" SCREEN 9 was reserved for Korean models... From technical perspective it just fits so nicely... SCREEN 11 is mode that you draw like SCREEN 8, SCREEN 10 is a mode that you draw like SCREEN 5, so why not SCREEN 9 could be mode that you draw like SCREEN 7.

This is actually so obvious trick that I find it really strange that I've not heard about it, seen it documented or even mentioned anywhere. I'm pretty confident that I'm not nearly the first one to notice it, but maybe people have just considered this so totally useless that it has not been worth mentioning. It works like this:

SCREEN 7:VDP(26)=VDP(26)OR24

Now you can control your SCREEN 10/11 like it would be SCREEN 7. Ok, this trick works also with pure YJK, but then it is even more useless. In SCREEN 10/11 there are at least some theoretical use cases to copy RGB shapes without messing up J and K components. See this example to get idea what I mean. (although as I did not know about this trick before, the example does copying in real SCREEN 7 instead)

So... No, this is not important news, more like a clickbait. :) I'm just wondering did you all knew this already?

Aangemeld of registreer om reacties te plaatsen

Van MsxKun

Paragon (1031)

afbeelding van MsxKun

06-09-2021, 22:38

NYYRIKKI wrote:

So... No, this is not important news, more like a clickbait. Smile I'm just wondering did you all knew this already?

No, i don't like to spank my VDPs so hard! Tongue
Well, maybe from time to time they deserve it... Still you can call it Screen 7+

Van Grauw

Ascended (10068)

afbeelding van Grauw

07-09-2021, 02:29

So you stay in YJK-YAE mode, and only the command execution engine changes? That’s nice!

With that you could blit palette colour-based software sprites with TIMP directly. Normally you would need two commands, first to clear the lower 4 colour index bits with AND and then an OR to write the colour values. It solves a problem that was on my mind for a screen 10-11 game!

Next question on my mind is: is it emulated? Smile

Van NYYRIKKI

Enlighted (5877)

afbeelding van NYYRIKKI

07-09-2021, 07:52

@Grauw: Yes, exactly my thoughts. (Although you still may need to change the RGB-bit 3 it self)

It seems that BlueMSX does not implement this, but in openMSX and WebMSX this seems to work fine... Either it has been implemented intentionally or it is accidental result of similar handling that happens on real V9958.

Van Grauw

Ascended (10068)

afbeelding van Grauw

07-09-2021, 12:29

NYYRIKKI wrote:

Although you still may need to change the RGB-bit 3 it self

Oh yeah, you’re right, then it doesn’t really solve the problem after all… Face

Van sd_snatcher

Prophet (3473)

afbeelding van sd_snatcher

07-09-2021, 14:20

Technically, it's still "screen-10". But with a much more useful blitter mode. Great finding! Big smile

Similarly, I wish there was a way to change the blitter mode on screen-4 too. It was stupid that the Yamaha engineers chose to set it to the screen-8 behavior. It should have been the screen-5 behavior.

Van NYYRIKKI

Enlighted (5877)

afbeelding van NYYRIKKI

07-09-2021, 16:29

Grauw wrote:

Oh yeah, you’re right, then it doesn’t really solve the problem after all… Face

Well... It is not perfect solution, but I think it is still somewhat useful as it anyway allows you to get rid of calculating / keeping in VRAM the separate AND-mask.
Writing example in BASIC is pretty stupid, but I know you'll get my point:

100 SCREEN 11
110 SX=128:SY=0:NX=127:NY=105:DX=0:DY=0
120 GOSUB 150
130 A$=INPUT$(1)
140 END
150 ' RGB copy
160 A=POINT(0,0):VDP(0)=14:POKE &HFCAF,8
170 COPY (SX,SY)-STEP(NX,NY) TO (DX,DY),,OR
180 A=POINT(0,0):VDP(0)=10:POKE &HFCAF,7
190 FOR I=0 TO NX
200 COPY ((SX+I)*2,SY)-STEP(0,NY) TO ((DX+I)*2,DY),,TPSET
210 NEXT I
220 RETURN