Jump to content
IGNORED

The Titlescreen Kernel


RevEng

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!

Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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 2
  • Thanks 1
Link to comment
Share on other sites

  • 1 month later...
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
Link to comment
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
Link to comment
Share on other sites

  • 2 years later...

I try to have multiple titlescreens for my game. I though to create 7 differents titlescreen minikernel and manually rename each labels inside each titlescreen folders would be easy. I created a copy of titlescreen and planned to add severals of copie with incremented ending for each name entcoutered in it. (all kernels in first folder were given an extra "_1" at the end of its name and I wanted to do the same for a titlescreen_2, etc..)

Unfortunately, it doesn't compile as I guess it create problems later in the compilation process.

I use a 64SC kernel for the whole game. Was my idea stupid ?

 

 

titlescreen_1.zip

Link to comment
Share on other sites

7 hours ago, abaudrand said:

I try to have multiple titlescreens for my game. I though to create 7 differents titlescreen minikernel and manually rename each labels inside each titlescreen folders would be easy. I created a copy of titlescreen and planned to add severals of copie with incremented ending for each name entcoutered in it. (all kernels in first folder were given an extra "_1" at the end of its name and I wanted to do the same for a titlescreen_2, etc..)

Unfortunately, it doesn't compile as I guess it create problems later in the compilation process.

I use a 64SC kernel for the whole game. Was my idea stupid ?

 

 

titlescreen_1.zip 63.38 kB · 1 download

Changing all of those symbols for all of those copies of the titlescreen sounds like more of a headache than would be worth it to me at least. You don't list what errors you got when you attempted this, and your zip only contains one copy of the titlescreen, and not the bB code that includes it, either, so that doesn't give any information as to the cause of your compile issue, either.

Link to comment
Share on other sites

Ok I managed to do it. There was some typo mistakes in the previous uploaded file. I understand it seems an headache but I donno know how to have more than 3 differentes 96x2 tiles besides this lamer technique.

I've put the original titlescreen kernel folder in bank1 for the main title of the game and put this folder with all labels renamed one by one (an _1 is added to all labels) in another bank. The compilation works fine. So I got 3 extra screens that I will use for the game. I will eventually repeat the process.

 

titlescreen_1.zip

  • Like 1
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...