find a new vdp for msx

Página 3/7
1 | 2 | | 4 | 5 | 6 | 7

Por flyguille

Prophet (3031)

imagem de flyguille

26-04-2016, 00:41

Grauw wrote:

Wink I wish you could pick any of the four palettes freely for each tile though. Nevertheless, V9990 is a pretty strong proposition. Only downside is availability and the pattern modes being 15 kHz-only (how hard is it to make a scandoubler).

I recently wrote some V99x8 code for softsprites; worst case, save-draw-restore softsprites take 12 draw calls in stead of 3, it costs a lot of VDP time to draw.

And as for V99x8 sprites, y=216 is such a useless and annoying function, why aren’t sprite colours looked up by sprite attribute number in stead of the pattern number, and who on earth thought it was a good idea to specify early clock (EC) per-line in stead of per-sprite (16 outs to change EC!). Sorry, had to vent some frustration on the design Smile.

12 draws calls? why?

And about the EC per line, it is because them hack up the v9918 design. Enginners didn't go deeper in the hardware sprite engine, them just change the way that engine is feed with information in a per line..., them already had EC + COLOR in the attribute table, and a way to increase the colour was changing one color per sprite by one colour per line, so them do it feed up that same byte per line, reading from a table, instead of the same fixed location from the main spr att table.

Also them use that same byte to add the other two bits functionality.

It is the law of the minimal effort, lowering the cost, minimizing dev time.

Por Grauw

Ascended (10707)

imagem de Grauw

26-04-2016, 00:48

flyguille wrote:
Grauw wrote:

I recently wrote some V99x8 code for softsprites; worst case, save-draw-restore softsprites take 12 draw calls in stead of 3, it costs a lot of VDP time to draw.

12 draws calls? why?

One for save, one for draw and one for restore. However, if the sprite is on both an x and y screen boundary, all three draws need to be split both vertically and horizontally, resulting in 12 draws in total.

I understand the legacy reasons for the sprite design, wanting to reuse transistors between sprite modes 1 and 2, but it’s annoying nevertheless Smile. Especially the EC bit was rather shocking to me to find out that they changed it in such a way, it changed from a relatively easy way to specify coordinates in the left border of the screen into something quite more complicated and expensive to work with.

Por flyguille

Prophet (3031)

imagem de flyguille

26-04-2016, 00:49

Grauw wrote:
flyguille wrote:
Grauw wrote:

I recently wrote some V99x8 code for softsprites; worst case, save-draw-restore softsprites take 12 draw calls in stead of 3, it costs a lot of VDP time to draw.

12 draws calls? why?

One for save, one for draw and one for restore. However, if the sprite is on both an x and y screen boundary, all three draws need to be split both vertically and horizontally, resulting in 12 draws in total.

I understand the legacy reasons for the sprite design, wanting to reuse transistors between sprite modes 1 and 2, but it’s annoying nevertheless Smile. Especially the EC bit was rather shocking to me to find out that they changed it in such a way, it changed from a relatively easy way to specify coordinates in the left border of the screen into something quite more complicated and expensive to work with.

Ah, it is because you do SAVEs, with my engine in the worst case it do 8. If X & Y boundaries, one for draw, and other for restore. No save is required, no "sort" is required, nothing on that bothering the run.

Por Grauw

Ascended (10707)

imagem de Grauw

26-04-2016, 01:01

[moved response to different thread]

Por flyguille

Prophet (3031)

imagem de flyguille

26-04-2016, 01:04

Grauw wrote:

How do you avoid the save? You don’t restore straight from the tiles do you? (As it requires even more draw calls.) And if you restore from the back buffer, you can run into flickering issues.

(p.s. you can answer me in your game’s thread if you want to stay on-topic here.)

In screen 8 double buffer framming, you can't save to VRAM, because all the vram is for screen buffer.

And to restore, you are doing only 4 if X & Y boundaries.

If you do 4 for save, 4 for restore if boundaries, you are doing the double of the work.

4+4+4 instead of 4+4.

Por flyguille

Prophet (3031)

imagem de flyguille

26-04-2016, 14:44

I forget another thing that I hate about actual vdp..., it is the "send the first byte BEFORE the command number", that is a headache if the source of the data is not just plain as a simple stream, forcing to adding several overheads and several special entry to the functions.

Por ricbit

Champion (438)

imagem de ricbit

26-04-2016, 14:46

flyguille wrote:

If just VDP were SMART enough to have X/Y wrapping, and bitbliting flip capabilities.

My memory may be tricking me, but can't you do bitblt flip using DIX and DIY? I seem to remember Ys 3 doing that to flip the sprites, and it was kind of a big deal for some players because Adol's sword changed hands (in the mega drive version they have two different sprites to avoid this sword hand problem).

Por Grauw

Ascended (10707)

imagem de Grauw

26-04-2016, 15:00

ricbit: No, DIX and DIY flip the order for both source and destination coordinates. They are designed to allow displacing (overlapping) copies without causing repetition.

Por Lord_Zett

Paladin (807)

imagem de Lord_Zett

26-04-2016, 16:15

finding a new vdp is not a good idea. we got 2 good vpd cards. if i look ad my upcomming game its not the vdp thats the problem but the speed of the z80.

look ad the v9990 in the gfx9k its realy a master video chip. damn fast and great to make games and stuf. it got it al. and best part... lots of msxers got one.

Por tvalenca

Paladin (747)

imagem de tvalenca

26-04-2016, 22:40

Lord_Zett wrote:

finding a new vdp is not a good idea. we got 2 good vpd cards. if i look ad my upcomming game its not the vdp thats the problem but the speed of the z80.

look ad the v9990 in the gfx9k its realy a master video chip. damn fast and great to make games and stuf. it got it al. and best part... lots of msxers got one.

and it is already emulated on OpenMSX so you don't need to code exclusively on MSX.

Página 3/7
1 | 2 | | 4 | 5 | 6 | 7