Jump to content
IGNORED

Colecovision Vector Graphics


Recommended Posts

New things are coming.

 

I am writing a brand new set of routines that will recreate, at the highest possible resolution, Vector style graphics within the limitation of the 9928 VDP

 

Here are 3 screenshots.  Sorry they are large but I wanted to keep the CoolCV logo in the same spot for scale and relationship..
 

 

Screenshot(180).thumb.png.ed069bf7f5542cf1b26ba2288a825d3f.pngScreenshot(181).thumb.png.035d920d961bf52beec53e52d56c2ebb.pngScreenshot(183).thumb.png.605e80039a4604f80673880a579a8835.png

 

 

 

Screenshot 1 has the green dot in the middle of the screen from a single plot point like in HGR2 mode.
In reality the middle of the screen is the joining of 4 8x8 patterns.

It looks like this.  1=pixel is on, 0 pixel is off or another color

 

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,1  1,0,0,0,0,0,0,0

 

0,0,0,0,0,0,0,1  1,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

 

 

 

The example in the pictures looks like this

 

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,1  0,0,0,0,0,0,0,0

 

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

0,0,0,0,0,0,0,0  0,0,0,0,0,0,0,0

 

The green dot is slightly offset from the exact middle but I intentionally left it that way to demonstrate what happens when the Vector graphics occupies the same pattern space.

The red square is made up of Vector lines and not patterns.

 

Screenshot 2 is the same square with only the x,y each having a -10 offset.
Notice that it did not effect the green dot in the middle whatsoever.  The Red Square is vectored around the green dot and it is not occupying the same set of patterns.

 

Screenshot 3 shows the limitations of the 9928.

I offset the Red Square with a +10x and +10y but the unfortunate reality is that, despite drawing the Vector around the green dot, it does end up sharing the same color value because of the color limitations per line within a pattern definition.

However, if I refrain from changing colors next to each other I should be able to recreate any type of Vectrex game within reason.
 

Right now I am continuing to refine the subroutines as well as see how far I can go concerning possible games.

At present I am able to Vector any shape within the resolution of 255x191.  I can also place a dot, or series of, anywhere on the screen and in any color within the limitations of the VDP.

 

Hopefully, my next visual will be some type of Vectrex style animation.

 

 

CPT Cozmos

 

 

 

  • Like 2
Link to comment
Share on other sites

My 1st attempt at a Tempest style vector packet.

I really need a good editor if there is anyone out there in the Vectrex Community that knows of one.

Screenshot(184).thumb.png.bc71ca5cdf200a421bb779eb43554ddc.png

 

To do anything significant by hand will take forever.

 

Here is the packet for reference.

SQUARE_LAST_FRAME:
    db $00,$C9,$2C
    db $00,$FF,$FF
    db $00,$01,$01
    db $00,$FF,$04
    db $FF,$00,$C4
    db $FF,$44,$00
    db $FF,$00,$3C
    db $FF,$BC,$00
    db $FF,$08,$E8
    db $FF,$00,$F5
    db $FF,$0C,$00
    db $FF,$00,$0B
    db $FF,$30,$18
    db $00,$D1,$E5
    db $00,$00,$FE
    db $00,$FF,$00
    db $00,$00,$02
    db $FF,$30,$0B
    db $00,$D1,$F0
    db $00,$00,$02
    db $00,$FF,$00
    db $FF,$30,$00
    db $00,$D1,$FD
    db $00,$FF,$00
    db $FF,$30,$F1
    db $00,$D1,$0C
    db $00,$FF,$00
    db $FF,$30,$E8
    db $00,$CD,$18
    db $00,$FF,$00
    db $FF,$20,$E8
    db $00,$E0,$24
    db $00,$FE,$F5
    db $00,$00,$FF
    db $00,$FF,$00
    db $FF,$11,$E8
    db $00,$ED,$18
    db $FF,$04,$E8
    db $00,$FA,$18
    db $00,$FF,$00
    db $FF,$F9,$E8
    db $00,$07,$1E
    db $00,$01,$00
    db $00,$FF,$00
    db $FF,$F8,$00
    db $00,$08,$FC
    db $00,$00,$FF
    db $00,$00,$01
    db $FF,$F9,$F8
    db $00,$07,$0F
    db $FF,$F9,$08
    db $00,$14,$FA
    db $00,$FF,$01
    db $FF,$F4,$00
    db $00,$09,$FF
    db $00,$FF,$01
    db $00,$20,$17
    db $00,$E0,$E9
    db $FF,$20,$17
    db $00,$DD,$E9
    db $FF,$11,$17
    db $00,$ED,$E8
    db $00,$00,$01
    db $FF,$04,$18
    db $01

 

 

03 Cozmos

  • Like 2
Link to comment
Share on other sites

1 hour ago, evg2000 said:

i wonder if patterns can be extracted from the original tempest code?

I looked in all the Tempest Source code I could find online.
The tables are different.
 

 

Created from the Mindstorm game source.

I have to rewrite the scale because this was the only model I could fit on the screen.

 

 

Screenshot(185).thumb.png.b1659989525c490bb066135371874741.png

 

 

Edited by Captain Cozmos
  • Like 2
Link to comment
Share on other sites

OK...

Fixed the scale issue.
 

Here are several Minestorm Objects on a Colecovision Screen in Vectrex packet format.

If the Vectrex was in Z80 assembly I would be able to port a game within a reasonable time.

Unfortunately I do not know 6809 very well.  Actually not all, I am familiar with a bit of 6801, 68000/20/30/40/60 x86 but of all things, not the 6809

 

The other problem, is of course, when these objects pass each other the colors will bleed.  So, I would have to create the game in black and white or a single color.

 

Screenshot(187).thumb.png.837484a94ed1548abca37b8ff6aac13e.png

 

 

Here are the packets:

 

MINE2:
    DB      $00,$20,$00      ;  'MAGNETIC' MINE
    DB      $FF,$30,$B0      ;  .
    DB      $FF,$B0,$30      ;  .
    DB      $FF,$B0,$D0      ;  .
    DB      $FF,$30,$50      ;  .
    DB      $FF,$D0,$50      ;  .
    DB      $FF,$50,$D0      ;  .
    DB      $FF,$50,$30      ;  .
    DB      $FF,$D0,$B0      ;  .
    DB      $01              ;  .    PACKET TERMINATOR

SHIP:
   DB      $00,$3F,$00      ;  ANOTHER NEW SHIP
    DB      $FF,$C4,$08      ;  .
    DB      $FF,$D8,$D8      ;  .
    DB      $FF,$20,$00      ;  .
    DB      $00,$00,$40      ;  .
    DB      $FF,$E0,$00      ;  .
    DB      $FF,$28,$D8      ;  .
    DB      $FF,$3C,$08      ;  .
    DB      $01              ;  .

EXPLODE:
    DB      $FF,$7F,$20
    db      $00,$C0,$10
    db      $FF,$C0,$D0
    db      $FF,$20,$7F
    db      $00,$E0,$C0
    db      $FF,$00,$C0
    db      $FF,$E0,$30
    db      $00,$C0,$00
    db      $FF,$60,$CD
    db      $FF,$A0,$00
    db      $00,$20,$D0
    db      $FF,$3C,$30
    db      $FF,$00,$82
    db      $00,$30,$30
    db      $FF,$D0,$50
    db      $FF,$20,$F0
    db      $01

 

These packets are from the Mindstorm Source Code which is available on Github.
The Packets are standard Vectrex format as I understand them.
Pen Down, Pen Up, draw to Offset and Terminate with 1
Scale, Color and YX is determined separately.  Otherwise the middle of the screen is 0,0 (Y,X) which goes from -128 to +128 (Y) and -128 to +128 (X).

 

 

O3 Cozmos

 

 

 

edit:

 

Another thought to consider.
If I am to have a bit map screen then I can not use tiles for any other purpose unless I have a mix where vector and tiles can not cross paths.
So a game like Armor attack would have to be 100% vector driven or 100% tile patterns and some creative sprite use for the giant helicopter blades.
So, to reiterate, all of it would have to be in one color unless you do not mind the color bleed when crossing paths.

 

Edited by Captain Cozmos
  • Like 2
Link to comment
Share on other sites

OK, to bring it all home.
Here is a screenshot of all 3 objects somewhat overlaid.

You can see that the last object to be drawn gets the full color while everything below it gets the bleed.

Notice that it does 'not' take over the pattern itself.  If the 9928 had a color for every pixel then this would be golden but it is what it is.


It was Mine --> Ship --> explosion.

You can make out each if you look closely but they are 3 distinct objects that I would have to have constantly draw and redraw every refresh to maintain their structure when they move or another object intersects with them.

 

Screenshot(188).thumb.png.9b0acb88a4c8ab792bbf790215024e86.png

 

 

 

Other than color bleed, these are truly separate objects within the Colecovision pattern space.
I'm kind of proud of myself.

 

O3 Cozmos

 

Edited by Captain Cozmos
  • Like 1
Link to comment
Share on other sites

The main issue with bitmap vector games on the 9918A is line draw speed - have you measured the performance of your line draw to see how many lines per second you can get?

 

On the TI I couldn't get draws much faster than 32 lines per second in color (average), 40 or so in monochrome. While that's not terrible, but remember you need to divide that by the frame rate you want to pull, and halve that for the line erase.

 

 

Link to comment
Share on other sites

6 hours ago, Tursi said:

The main issue with bitmap vector games on the 9918A is line draw speed - have you measured the performance of your line draw to see how many lines per second you can get?

 

On the TI I couldn't get draws much faster than 32 lines per second in color (average), 40 or so in monochrome. While that's not terrible, but remember you need to divide that by the frame rate you want to pull, and halve that for the line erase.

 

 

I have a plan

  • Like 1
Link to comment
Share on other sites

11 minutes ago, Tornadoboy said:

Someone needs to hack Star Wars and Star Trek to be vector now :D

I thought Star Wars was already Vector, at least most of it.
Minus the music, exploding death star, proper R2D2 beeps.

As nice as Star Wars for the Colecovision is I thought it could be better.
Star Trek  is a different matter.

I was thinking more of low end games like Rip Off.
Armor Attack might be possible but with a combination of sprites and vector.

Tempest is a reality, I already figured it out the mechanics.  I'm just not going to map out all those levels and program the thing for free.

Edited by Captain Cozmos
Link to comment
Share on other sites

I hadn't looked at Star Wars in a long time but I thought it had been modded to plain graphics but maybe I was mistaken, though Space Fury definitely was changed. Cinematronics has a nice library of games to pick from, getting Tempest though will be epic!

Edited by Tornadoboy
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...