Epic Darius tech demo for V9990

By Grauw

Ascended (10676)

Grauw's picture

13-02-2022, 18:59

Tiny Yarou made another cool tech demo for the V9990:

MSX(Z80)+V9990 drawing test using PCG, sprites, and scrolling functions

Tiny Yarou wrote:

This is the verification of the V9990 cartridge PowerGraph Light for MSX.

The previous V9990 verification video was a bitmap mode demo, but this time I used the V9990's own "P1 mode" (256x212, 16-color PCG x 2 layers) and made full use of sprites and scrolling functions to create a so-called "game-like" demo.

I felt once again that even with a Z80 CPU, if you have a powerful VDP, you can (and will) make a great game.

The video was captured from the actual machine (the background music was added later).

Previous V9990 verification videos
Test of drawing everything on a bitmap screen without using PCG, sprites, or scrolling functions on MSX(Z80) + V9990.

Login or register to post comments

By hamlet

Scribe (4105)

hamlet's picture

13-02-2022, 19:29

Yeah, this is really hot!

By Grauw

Ascended (10676)

Grauw's picture

13-02-2022, 19:31

In-video text (using Google Translate camera):

Tiny Yarou wrote:

This demo used screen mode P1 with powerful BG functionality. This mode has two 512x512 (64x64 pattern) BG layers. Any 256x212 area can be displayed by scrolling.

The boss is drawn on BG layer A and moved by scrolling. The pattern change can be done by rewriting a few bytes. I used a VDP command to run it in the background.

BG layer B uses scan line interrupts 4 times. The score, the upper wall, the background, and the lower wall are controlled separately. Implemented palette switching and split scrolling for each area.

The size of the V9990 sprite is fixed at 16x16. Because there is a limit of 125 on screen (up to 16 side by side), it is difficult to draw all the huge characters with sprites. It also has the advantage that the entire VRAM can be used as a pattern area. This time, in addition to the bullets and the muzzle, the DARIUS logo was also implemented with sprites.

As for the number of colours, 4 palettes of 5 bits x 16 colours for each RGB can be used. The score, own machine, bullets, boss, background, and DARIUS logo are used properly.

Up to 120 boss bullets are displayed. I tried to push the limit of the number of sprites displayed in V9990.

Since the scan line interrupt is used, the processing omission is absolutely NG. This demo runs at a stable 60 fps in Z80 mode. MSX is pretty fast.

V9990 has limited materials and samples, and there are few compatible apps. Rich screen modes and large VRAM are a treasure trove of possibilities. It may be fun to get one if you want to touch it yourself.

By wolf_

Ambassador_ (10076)

wolf_'s picture

13-02-2022, 20:58

Fishy-boss is nice! Did spot disappearing sprites lines though, too much bullet-hell I guess.
And let's hope the level graphics get better (more variation, more imaginative) than this. BA-team

By sdsnatcher73

Prophet (3804)

sdsnatcher73's picture

13-02-2022, 20:04

Who cares if V9990 is part of the standard, if we can get this level of ports with just Z80 CPU that is just great!

By PingPong

Prophet (4086)

PingPong's picture

13-02-2022, 20:11


BG layer B uses scan line interrupts 4 times. The score, the upper wall, the background, and the lower wall are controlled separately. Implemented palette switching and split scrolling for each area.

i've heard that a palette split (via scanline int) is a source of trouble on v9990. Did it work correctly?

By Grauw

Ascended (10676)

Grauw's picture

13-02-2022, 20:33

I heard the same, though I’ve never seen it in person nor in screenshots or a video. Maybe worth trying sometime, I also wonder if there is a way around it by e.g. blanking a line, double buffering the palette, or timing it carefully. But I guess Tiny Yarou only changes the palette selection (r#13) and not the palette itself?

By msd

Paragon (1510)

msd's picture

13-02-2022, 21:48

White pixel noice appears when you change the palette values. Only way I found it to be less visible when I changed it with the screen in overscan mode and then during vertical retrace. I think this issue occurs during any time the Vdp is using the palette data . So also during drawing of the border .

By GhostwriterP

Paladin (682)

GhostwriterP's picture

13-02-2022, 22:36

Palette selection with R#13 works fine without noise as far as I know. IIRC it is also possible changing at least 1 color in hblank on turbor without noise if timed correctly.

By msd

Paragon (1510)

msd's picture

14-02-2022, 19:24

I think the noise is generated when the palette data is accessed by writing in the palette data register /port

By Grauw

Ascended (10676)

Grauw's picture

14-02-2022, 20:45

Tiny Yarou added English subtitles for our convenience.