Jump to content
IGNORED

Anyone think Ballblazer is possible on the 2600?


Recommended Posts

The interlacing looks good using Alt-P in Stella

 

The problem with that is the comb effect on horizontal movement, something that won't go away unless the framerate were reduced to 30fps. Interlace only looks good on polygonal systems where there aren't as many right angles and high contrast edges, not to mention greater horizontal res.

 

I think more mileage can be gotten through intelligent sprite flicker vs. breaking up the entire playfield.

Edited by mos6507
Link to comment
Share on other sites

The interlacing effect makes it still sort of ugly.

 

I'm also breaking the checkerboard source, so I can generate checkerboard kernels through macros. Next step will be creating multiple checkerboard kernels so each kernel only has to scroll a small distance instead of 1 whole tile. That gives some more time during horizontal blanking.

Edited by roland p
Link to comment
Share on other sites

Just looked through the latest experimental binaries and - the solid looks better, but IMO the wide screen looks so much better that it outweighs.

 

Of all of them, the gradient one looks the best in emulation; it's hard to evaluate the interlaced in emulation. I think that flickering the entire grid is probably too much flicker, though.

Link to comment
Share on other sites

It would be kind of cool to have the first VCS game run in true interlace, and to make full use of the doubled vertical resolution. I would like to see how the game would look with 1/30th of a second updates. The tearing should all go away but the animation will be a little jerkier. No worse than most Playstation 1 games.

 

Tod Fry's lost Ballblazer prototype also used interlace, but was surely a static interlace (i.e. half resolution). So this is clearly a case of convergent evolution.

Link to comment
Share on other sites

Just looked through the latest experimental binaries and - the solid looks better, but IMO the wide screen looks so much better that it outweighs.

 

interlaced : solid 1 : 1

 

I think the visual differences will be now:

 

SOLID:

No flickering lines

checkerboard resolution: 40 x 20

field of view: 3 tiles deep, 7 tiles wide (max)

 

FLICKERING:

Flickering lines

checkerboard resolution: 53,3 x 40

field of view: 6 tiles deep, 9 tiles wide (max)

 

I'm going to work out the flickering solution a bit more to see what more improvements it gives. You see still a black borders on top of each playfield, a part of it is checkerboard setup code, I hope I can integrate this into the gradient lines.

 

It would be kind of cool to have the first VCS game run in true interlace, and to make full use of the doubled vertical resolution. I would like to see how the game would look with 1/30th of a second updates. The tearing should all go away but the animation will be a little jerkier. No worse than most Playstation 1 games.

 

Tod Fry's lost Ballblazer prototype also used interlace, but was surely a static interlace (i.e. half resolution). So this is clearly a case of convergent evolution.

 

Well it isn't interlaced as in normal television interlacing, but the principal is the same.

The 1/30th solution could work, but depends how Stella is simulating the phosphor effect. If it merges frame (frame as in 59.94 fps) 1+2, 2+3, 3+4, you would still see combing effects. If it merges frame 1+2, 3+4, 5+6 then there is 50% chance you see combing, since I can never know if an odd or even frame is displayed. Ballblazer should have a mode then to find this out and correct it if needed :)

 

What did Tod Fry's Ballblazer prototype look like?

Edited by roland p
Link to comment
Share on other sites

What did Tod Fry's Ballblazer prototype look like?

That's a good question... I have heard that some people inside of Atari had seen the 20% or so demo of Ballblazer, but has there ever been a screen shot of it on the 2600? I remember reading that Tod Frye said he lost the one listing of the work he done, but never anything about a ROM image.

--Selgus

Link to comment
Share on other sites

I'm working on the new kernel right now.

The playfield is now much wider. I like the effect. There is now minimal 54 cycles free on each line. Maybe I can incorporate the tile-setup code in the kernel, this in now done in the black borders on top of the playfields. If this is possible, I could make the playfield higher, just like the original ballblazer. Interlacing should not be a too big problem. To be continued.

ballblazer.bin

  • Like 1
Link to comment
Share on other sites

The playfield is now much wider. I like the effect. There is now minimal 54 cycles free on each line. Maybe I can incorporate the tile-setup code in the kernel, this in now done in the black borders on top of the playfields. If this is possible, I could make the playfield higher, just like the original ballblazer. Interlacing should not be a too big problem. To be continued.

 

The wide playfield looks great, and nicely compensates for the blank lines! Personally, I would concentrate on getting the sprites in there first before moving more calculations into the kernel, but you are doing a great job.

 

Chris

Link to comment
Share on other sites

I think this is a keeper. Having the solid dark green squares makes all the difference in fooling the eye into thinking that the blank lines are intentional dithering. You may want to use a less reddish brown for the background now because it is not blending well with the green alternating lines (red and green being opposite colors). Maybe more of a neutral brown or an olive?

Link to comment
Share on other sites

Just threw a bunch of the last few binaries on my Kroc cart and...:o This really looks amazing on my TV!

 

The last binary looks very good and is stable but the other ones (with scaling rotofoil) were very jittery.

 

:thumbsup:

Hmm, I need to do that. I have not yet tried it on a real television. :)

 

..Al

Link to comment
Share on other sites

Just threw a bunch of the last few binaries on my Kroc cart and...:o This really looks amazing on my TV!

 

The last binary looks very good and is stable but the other ones (with scaling rotofoil) were very jittery.

 

:thumbsup:

:cool:

That's great.

I didn't keep track of the scanline count, so that's a sort of coincedence. I will keep track of the scanline count in the next version.

 

I'll now work out some ideas for scaling rotofoils.

Link to comment
Share on other sites

I'm working on the new kernel right now.

The playfield is now much wider. I like the effect. There is now minimal 54 cycles free on each line. Maybe I can incorporate the tile-setup code in the kernel, this in now done in the black borders on top of the playfields. If this is possible, I could make the playfield higher, just like the original ballblazer. Interlacing should not be a too big problem. To be continued.

So the current kernel trick now is to use 2 scanlines of cycles for the effect? I do agree, the wider playfield is closer to the original. Also remember between the playfields is the scores and timer. You will need cycles to process that.

--Selgus

Link to comment
Share on other sites

I'm working on the new kernel right now.

The playfield is now much wider. I like the effect. There is now minimal 54 cycles free on each line. Maybe I can incorporate the tile-setup code in the kernel, this in now done in the black borders on top of the playfields. If this is possible, I could make the playfield higher, just like the original ballblazer. Interlacing should not be a too big problem. To be continued.

So the current kernel trick now is to use 2 scanlines of cycles for the effect? I do agree, the wider playfield is closer to the original. Also remember between the playfields is the scores and timer. You will need cycles to process that.

--Selgus

Yep, the tile-setup-code has to move somewhere. I can even make the screen not 262 lines now :D

Due to the more efficient kernel, it can now be put in inside the sky-kernel, consuming one byte of RAM per line, about 20 bytes now. Or inside the checkerboard kernel. enough options now :)

Link to comment
Share on other sites

Yep, the tile-setup-code has to move somewhere. I can even make the screen not 262 lines now :D

Due to the more efficient kernel, it can now be put in inside the sky-kernel, consuming one byte of RAM per line, about 20 bytes now. Or inside the checkerboard kernel. enough options now :)

So when is your next post of kernel source and something new? :)

--Selgus

Link to comment
Share on other sites

Yep, the tile-setup-code has to move somewhere. I can even make the screen not 262 lines now :D

Due to the more efficient kernel, it can now be put in inside the sky-kernel, consuming one byte of RAM per line, about 20 bytes now. Or inside the checkerboard kernel. enough options now :)

So when is your next post of kernel source and something new? :)

--Selgus

 

I don't know yet. I take little steps, program every day a little bit, so I don't get burned out. For the rotofoils I have now two options:

1. store all versions of the rotofoils in ROM, but there a lot of them if you want to do it smoothly. The code would look something like:

LDA (ROTOFOIL_PTR),Y

STA GRP0

STA GRP1

 

2. use some templates in rom and map them over each other, code would look something like:

LDA (Foot_A),Y ;lower part template 1

ORA (Foot_B),Y ;lower part template 2

AND (Head),Y ;the head of the rotofoil

AND (Mask),Y ;some mask to remove garbage.

STA GRP0

STA GRP1

 

Or some combination of the above two options...

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