Jump to content
  • entries
    657
  • comments
    2,689
  • views
    897,752

96 pixels with 2 colors


SpiceWare

2,168 views

blogentry-3056-0-04082000-1396743447_thumb.png

 

The inspiration came from Chris' Star Castle logo. There's a couple minor differences due to the extra processing time that using DPC+ provides.

  • The logo is centered instead of being slightly offset to the left.
  • Instead of using VLBANK, I'm using SCORE mode to change the playfield pixels from green to black to hide the right and left edges of the screen
  • I'm changing PF1 (in conjunction with SCORE) to hide an extra 8 pixels on the right that couldn't be masked with a missile.

Stella's debug colors:

blogentry-3056-0-92162000-1396886371_thumb.gif

The alternativing frames (phosphor mode off)

blogentry-3056-0-47216300-1396886489_thumb.png blogentry-3056-0-25019000-1396886494_thumb.png

 

The blended image (phosphor mode on)

blogentry-3056-0-17963800-1396886332_thumb.png

 

I could have changed the Playfield Color instead of using SCORE mode, but I'm planning to add the TV Type option from Timmy! so the color value to change the playfield back to green could not be hard coded. When writing the routine I didn't know I'd have X free for use, so thought I'd have to cache Green in ZP RAM which would required a 3 cycle read instead of 2. There's enough free time in the kernel that using ZP RAM would have been fine, but just like the free X register I didn't know that would be the case when I started coding the routine.

 

The TV-Type option will let me build a single ROM that works on NTSC, PAL and SECAM systems - though it has been reported that SECAM has a weird issue of sometimes turning red to grey.

 

 

When I came up with the 2-color 48 pixel routine for Stay Frosty 2 I also used VBLANK. It does have a minor issue, if the brightness of the display is too high the use of VBLANK is noticeable - I showed off that problem before when I finished the initial menu for Frantic.

http://www.atariage.com/forums/uploads//monthly_09_2011/blogentry-3056-0-09401600-1316196948.jpghttp://www.atariage.com/forums/uploads//monthly_09_2011/blogentry-3056-0-92516700-1316196960.jpg

 

With some inspiration from Omegamatrix, I was able to eliminate the use of VBLANK.

 

There is a minor issue with the technique - due to the way TIA generates the video signal there are vertical lines in the image.

blogentry-3056-0-20078400-1396798608_thumb.jpg

 

I believe it's related to how the TIA generates its signal, which can cause other minor display issues like artifact colors.

 

 

If you're checking this out with Stella, be sure to turn on phosphor mode!

  • open Draconian in Stella
  • hit TAB for the in-game-menu
  • select Game Properties
  • Select the Display tab
  • change Use Phosphor to Yes
  • click OK
  • select Exit Menu
  • Reload the ROM (Control-R)

ROM

draconian_20140405.bin

 

Source

Draconian_20140405.zip

 

 

 

Here's the stand alone program I worked up to figure out the timing.

blogentry-3056-0-23350000-1396744339_thumb.png

 

Source and ROM for just the logo

96.zip

 

 

 

Images without PF1 getting updated, alternating frames:

blogentry-3056-0-09566700-1396966429_thumb.png blogentry-3056-0-26978900-1396966435_thumb.png

Blended:

blogentry-3056-0-21815200-1396966420_thumb.png

actual:

blogentry-3056-0-34069300-1396966414_thumb.png

 

ROM w/out PF1 changing

draconian_pf1_not_updated.bin

  • Like 3

13 Comments


Recommended Comments

Was wore out from coding all day yesterday, so last night I only posted a brief blog entry containing the screenshot, ROM, source and stand alone program.

 

This morning I decided it needed something more :)

Link to comment

That logo is awesome!

 

 

It would be even better if at power-on you make the logo expand out to its full size from a single line. I mean start by drawing the middle line only, and pull the top and bottom out from there. The "D" in particular would look sinister as it would appear to be a lengthening spike as it comes to a point. You could also animate the green (station?) in the middle to rotate around and such after the logo is at full size.

 

While the logo is forming play some sinister, scary music. The example that immediately popped in my head was from here. Note that they grow the logo from bottom to top, but I think it would look better starting in the middle and then growing up and down at the same rate. But maybe certain letters should take longer. The "d" would look great if it was the last to stop moving (so that your eyes are fixed on the spike). I think effects like these add a lot of "life" to a titlescreen. I love seeing stuff move around on a title screen. :)

  • Like 1
Link to comment

That could work, the image is in RAM so it could easily be manipulated. I'm not set up for DPC+ music. I don't think in-game music will happen, but I should be able to modify the menu routines to support it. One concern is bank 5, which holds all the 6507 code, only has 139 bytes free - all those reposition kernels take up a lot of space. I could possibly make bank 4 also hold 6507 code, but I suspect a change like this will be done towards the end of the project as I don't yet know how much space the ARM code will use.

 

It'll be a week or more before my next Frantic or Draconian update. I'm keeping my Sundays code-free to help stave off burn out. Tomorrow I plan to return to work on Stella and won't work on anything else until after my Cartridge RAM addition is finished and has been submitted to stephena.

Link to comment

Quote, "There is a minor issue with the technique - due to the way TIA generates the video signal there are vertical lines in the image."

Such a perfectionist. Relax!

It is not a minor problem. It is just the way it is. There will always be someone who will point out the smallest flaw, but everyone else will see the overall beauty.

 

Someone pointed out my tune in DK should end on the key of F.

Great feedback, much appreciated, but it DOES end on F. The TIA's F is very sharp, and coming off the previous note which is very flat, the brain can tell something is off.

Link to comment

It'll be a week or more before my next Frantic or Draconian update. I'm keeping my Sundays code-free to help stave off burn out. Tomorrow I plan to return to work on Stella and won't work on anything else until after my Cartridge RAM addition is finished and has been submitted to stephena.

One change I've been craving for (with Stella, with DPC+) is to not see a value in the debugger disassembly listing when LDA #Immediate is being used.

 

I would rather see LDA #$XX because you don't know what the value is going to be, and it becomes annoying trying to figure out if something is going to branch or not when you forget that.

Link to comment

Such a perfectionist. Relax!

Just wanted to point it out, and why it occurs, before somebody unfamiliar with the system brought it up. I bet somebody will bring it up when I post the Homebrew topic, I'll try to remember not to mention it there to see if that happens :)

 

One change I've been craving for (with Stella, with DPC+) is to not see a value in the debugger disassembly listing when LDA #Immediate is being used.

 

I would rather see LDA #$XX...

I see how that could be useful. It should probably be aware of the state of FastFetch mode as well, and only show the #$XX if FastFetch is turned on. I've got too many projects on my plate though, so I don't plan to add another one at this time. Frantic's been delayed enough as it is, and then along came Draconian :lol:

Link to comment

Added some screenshots with Stella's Debug Color mode turned on to help you see how the 96 pixel image is created.

Link to comment

The lines in any 96 pixel display at sprite boundaries are due to the fact that chroma/luma aren't perfect square waves, taking differing amounts of time to ramp up and down, and doing so in an analog fashion.

 

Some people lessen the lines by forgoing flickerblinds and doing a solid 6 sprites in a row on the left in even frames, and another solid 6 sprites in a row on the right in odd frames. That just leaves just a single darker line down the middle.

 

The bB titlescreen 96-wide minikernel uses flickerblinds and does the same. Personally I agree with the others that it's no big deal.

 

(and beautiful title!)

Link to comment

I can wrap my head around how you make that titlescreen, except how can you have 6 missile0 and 6 missile1?

Never mind. Just forgot you get 2 sets of triple missiles.

The part about PF1 masking... is that due to the "every other line" player1? (Debug colors doesn't show PF0 PF1 PF2 or SCORE colors differentiation -- it's all playfield.)

Link to comment

I've added some screenshots and a new ROM to show how it looks if PF1 isn't updated (technically PF1 is updated, I just changed the value so it's always the same).

 

Ideally, what we want to do with the players(0, 1) and missiles(m, n) is this:

0m0m0m1n1n1n
m0m0m0n1n1n1
0m0m0m1n1n1n
m0m0m0n1n1n1
...
To do that we need to shift players right by 8 pixels at the same time as we shift missiles left by 8 pixels.

 

That's not possible as the normal HMOVE can move 8 right but only 7 left. The early HMOVE can only move left(though up to 15 pixels).

 

So instead I move everything right 8 pixels using a normal HMOVE, then everything left 8 pixels using the early HMOVE.

 m0m0m0n1n1n1
m0m0m0n1n1n1
 m0m0m0n1n1n1
m0m0m0n1n1n1
...
The problem with that pattern is the background (b) color shows up on the right:

 m0m0m0n1n1n1
m0m0m0n1n1n1b
 m0m0m0n1n1n1
m0m0m0n1n1n1b
...
To hide the background color I use the playfield(p) in conjunction with SCORE mode. On that line the missile that's all the way to the left is masking the part of playfield that doesn't need to be masked, but everything's black so it doesn't matter.

 m0m0m0n1n1n1
m0m0m0n1n1n1p
 m0m0m0n1n1n1
m0m0m0n1n1n1p
...
Using VSYNC works as well, though there's that "noticeable when brightness is up" issue. Plus due to timing a couple pixels end up behind VSYNC, leaving you with only 94 pixels visible.
  • Like 2
Link to comment

That's actually kind of cool (the screenshot without the PF1 update). It looks like there's a spotlight illuminating the letter N from below. Could be useful someday. :)

Link to comment
Guest
Add a comment...

×   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...