Jump to content
RevEng

The Titlescreen Kernel

Recommended Posts

Hello good Atari folks and happy new year! So I think I understand how to use the kernels more or less.. but some questions..

 

1) How can I change the background color in the 96_2_1_bmp asm kernel? There is an option for the 48's but not the 96's.. 

 

2) Do all the kernels only stack vertically above or below each other? Or is there a way to display them side by side? (E.g. a 48 scrolling up next to a 48 scrolling down? etc..)

 

3) (Besides the player kernel) can the other kernels ever overlap each other? Or are they always either above or below, perfectly centered?

 

Thanks!

Share this post


Link to post
Share on other sites
6 hours ago, freshbrood said:

Hello good Atari folks and happy new year! So I think I understand how to use the kernels more or less.. but some questions..

 

1) How can I change the background color in the 96_2_1_bmp asm kernel? There is an option for the 48's but not the 96's.. 

 

2) Do all the kernels only stack vertically above or below each other? Or is there a way to display them side by side? (E.g. a 48 scrolling up next to a 48 scrolling down? etc..)

 

3) (Besides the player kernel) can the other kernels ever overlap each other? Or are they always either above or below, perfectly centered?

 

Thanks!

I am not an expert at the kernels- I had @Karl G help me with the kernel parts at https://alienbill.com/2600/atari-background-builder/ (and so my imagination of what kernels CAN do is mixed up with what flexibility i built into the editor.

 

But :

1 pretty sure colors are an option for 48 because there's time to change the color, but 96 too much is happening 

 

2 i think they can stack vertically but yeah nothing horizontal- no time for the cpu to figure so much stuff out. 

 

3 same for overlap - there's just not enough time.  

 

so you should probably work to get a little familiar with kernels in general, like maybe skim some simple asm tutorials like http://alienbill.com/2600/101

 

thst said, much of my knowledge might be out of date with the new hardware assisted carts, where the chip on the cart does more of the thinking. sky is probably the limit there but it's a different style than these kernels

 

  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks Kisrael, but I definitely can't use an enhanced cart for this project. 

 

So 96 wides can only have a solid black background, final verdict? 

 

Because in the 48 there is a couple lines of assembly code for the background color that is easily edited.  These lines don't exist in the 96. 

Edited by freshbrood

Share this post


Link to post
Share on other sites
14 hours ago, freshbrood said:

Hello good Atari folks and happy new year! So I think I understand how to use the kernels more or less.. but some questions..

 

1) How can I change the background color in the 96_2_1_bmp asm kernel? There is an option for the 48's but not the 96's.. 

 

2) Do all the kernels only stack vertically above or below each other? Or is there a way to display them side by side? (E.g. a 48 scrolling up next to a 48 scrolling down? etc..)

 

3) (Besides the player kernel) can the other kernels ever overlap each other? Or are they always either above or below, perfectly centered?

 

Thanks!

I'll give this a shot. Usually with bB you don't have to worry about how kernels work since it does that part under the hood for you. The Titlescreen Kernel is a bit different, allowing you to have more power and flexibility in creating a title at the expense of simplicity.

 

As @kisrael was saying, overlapping or side-by-side kernels aren't an option because that's not how kernels work.

 

Now, as far as the background color goes, there's no reason why that option couldn't be added to the 96x2 kernel. I suspect it was omitted because it might end up looking weird. The 96x2 kernel relies on flicker, with half of the image pixels displayed at any given time. If there is a background color, then the areas where the pixels aren't currently shown will instead show the background color, effectively causing the background color to mix with the image color. In most cases, this would probably not be what you wanted. I'm guessing this is why that option was omitted.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

(oh sorry didn't read closely enough, yeah I'm not sure about background color but Karl knows more than I ever will)

  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, Karl G said:

Now, as far as the background color goes, there's no reason why that option couldn't be added to the 96x2 kernel. I suspect it was omitted because it might end up looking weird. 

Pretty much this. The more options added in, the more complicated using the thing is, and the more of a pain it the code is to support. In this case, it didn't seem worth the effort.

  • Like 1

Share this post


Link to post
Share on other sites

Understood. But I would like it and I don't mind a little more complication. In the 48 image it's just a tiny couple lines of assmbly code added in, is this not feasible for the 96? For what I have in mind, even two halves of the entire background color flickering may not look terrible. 

Share this post


Link to post
Share on other sites

I have the scrolling text working. I'd like to make the background dark blue, but flicker might look good too.

 

The original graphic had a static blue and black "flashes/light beams" behind it, before fading to a darker color and scrolling text.

 

My plan is to flicker the background black and blue for a couple seconds then fade to solid black as the text begins to scroll. Not perfect but emulating the original more closely. 

 

 

 

In the 48 it contains:

 

Ifconst bmp_48x1_2_background

bmp_48x1_2_background

endif

 

    BYTE $00

 

 

Can we try to see how this works in the 96 pleeeeease?

 

Edited by freshbrood

Share this post


Link to post
Share on other sites
33 minutes ago, freshbrood said:

Understood. But I would like it and I don't mind a little more complication. In the 48 image it's just a tiny couple lines of assmbly code added in, is this not feasible for the 96? For what I have in mind, even two halves of the entire background color flickering may not look terrible. 

Sure, knock yourself out. Just add the background colour changes to titlescreen_layout.asm.

 

 ; To use a minikernel, just list it below. They'll be drawn on the screen in
 ; in the order they were listed.
 ;
 ; If a minikernel isn't listed, it won't be compiled into your program, and
 ; it won't use any rom space.

 MAC titlescreenlayout

    ; colour change before the 96 kernel.
	lda #$22 
	STA WSYNC
	STA COLUBK

	draw_96x2_1
    
    ; colour change after the 96 kernel.
	LDA #0
	STA WSYNC
	STA COLUBK

	draw_48x1_1
	draw_48x1_2
	draw_space 3
	draw_gameselect
	draw_score
 ENDM

 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

RevEng you are lovely. Thank you! 

 

I see there are two 48 bmp images listed. Is that accurate or a typo? 

Edited by freshbrood

Share this post


Link to post
Share on other sites

You're welcome.

 

Your layout file will differ - edit it and add the colour changing assembly to yours, instead of copying mine verbatim. The file contains whichever minikernels you've selected. For the code I posted, I just grabbed one of the sample files to use as an example.

  • Thanks 1

Share this post


Link to post
Share on other sites

I did some source diving before I saw the reply from @RevEng. I couldn't find it in the docs, but if you dim a variable named "titlescreencolor", you can then change the color of the titlescreen background on the fly. The variable could be reused in your main game. I modified the first example to do this.

 

 dim titlescreencolor=c

 titlescreencolor=$30

ex1-basic_color_bas.thumb.png.6257a924a9671bedf6d320163a894a0c.png

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
8 hours ago, freshbrood said:

Also.. Is there a way to REMOVE the spacing between 2 48 kernels so I could line up the top and bottom window edges? 

No - the blank lines are due to processing time setting up the next kernel. However, if the two kernels are the same type, why not just turn it into one big image? 

  • Thanks 2

Share this post


Link to post
Share on other sites

Activision Patch screen maybe?

 

Be cool if when you got a high score on an Activision game and a patch would come on screen after the game was over!

 

Probably take a little re-writing the game to have it check for a high score and more.

Share this post


Link to post
Share on other sites
4 hours ago, Karl G said:

No - the blank lines are due to processing time setting up the next kernel. However, if the two kernels are the same type, why not just turn it into one big image? 

I was thinking it would use less memory space to maybe draw a box with eyes- then one above that with eyebrows and then another at the bottom with the mouth.. So instead of redrawing the entire image you could just animate the parts that change- ala a NES style fmv like Ninja Gaiden.. 

  • Like 1

Share this post


Link to post
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...