Jump to content
IGNORED

The Titlescreen Kernel


RevEng

Recommended Posts

If you try to include any assembly module more than once, the assembler will complain about duplicate symbols that are defined in each. There are a super huge number of these, including the labels for each section of the image data itself. That's why there are separate modules for multiples of each image type within the titlescreen kernel itself (e.g. 48x1_1_kernel.asm, 48x1_2_kernel.asm, etc.) with the appropriate prefix in each one for the symbols used within each file so that none of them conflict with one another. With multiple titlescreen kernels, all of these would conflict without a massive effort to rename all of them in all of the modules that are used. That was part of my reason for creating the aforementioned splash screen - it's something that's a tiny subset of the titlescreen kernel's functionality, but it uses different symbols so it doesn't conflict in a project that also uses the titlescreen kernel.

Link to comment
Share on other sites

Thanks guys - yeah looking to overlay the game over messages on the existing screen as it seemed to be an easier way to do what I wanted.

 

Guess i'll try using sprites to do what I need.

 

Thanks again!

Link to comment
Share on other sites

  • 10 months later...

Hello everyone,

 

I just started to use the Titlescreen Kernel (I downloaded version 1.8), and I have a problem. I follow the instructions in the manual to convert the images to code, pasted them into the right files, and tried to compile my game (using batari Basic v1.01dreveng41); I get:

Found dasm version: DASM 2.20.11 20171206
Starting build of Twitter_Life.bas
batari Basic v1.01dreveng41 (C)2005-2017
2600 Basic compilation complete.
--- Unresolved Symbol List

 free ram: 0
 DPC free RAM= 603
      49 bytes of ROM space left in bank 1
      3342 bytes of ROM space left in bank 2
      3058 bytes of ROM space left in bank 3
      3883 bytes of ROM space left in bank 4
      3883 bytes of ROM space left in bank 5
      3247 bytes of ROM space left in bank 6
      2661 bytes of ROM space left in graphics bank


Fatal assembly error: Source is not resolvable.
Build complete.

As you can see, it indicates an "unresolved symbol", but it does not show anything.

 

If I edit "titlescreen/titlescreen_layout.asm" and remove all the minikernels, except the "draw_space", then I get a clean compilation.

 

Any ideas about what could be happening? In case it is relevant, I'm using DPC+ kernel.

 

Thanks!

 

Andres.

Link to comment
Share on other sites

Without seeing your code, it's nothing more than a guess... I'm assuming you used vbb to generate the titlescreen data. When you generated the data, did you select the right "copy" number that corresponded to the minikernel copy that you pasted your data into?

 

If that's not it, maybe you can zip up your titlescreen directory and attach it here.

Link to comment
Share on other sites

On 11/13/2019 at 9:16 PM, RevEng said:

Without seeing your code, it's nothing more than a guess... I'm assuming you used vbb to generate the titlescreen data. When you generated the data, did you select the right "copy" number that corresponded to the minikernel copy that you pasted your data into?

 

If that's not it, maybe you can zip up your titlescreen directory and attach it here.

Thank you so much for your message, RevEng.

 

I used the Img2Code program that comes with vbb to generate the titlescreen data but, because I'm using Linux, that's the only component from vbb that I'm using (I prefer to use vi ;-) ).

 

Attached is the titlescreen directory, so you can take a look.

 

Again, thank you so much for this.

 

Andres.

 

titlescreen.zip

Link to comment
Share on other sites

It looks like your graphic files are too short. For example, your 96x2_1_image.asm file only has a single "bmp_96x2_1_00" block of data. There should be a lot more output from img2code, including data blocks for bmp_96x2_1_01, bmp_96x2_1_02, ... , bmp_96x2_1_11. The titlescreen kernel expects to see all of these blocks in a file, which is why compilation fails when they're missing.

 

So the question is why are they too short? Either you missed data during copy and paste, or maybe you didn't select the right mode in img2code. (e.g. "sprite", "Title kernel 96x2", "copy 1")

 

Link to comment
Share on other sites

On 11/14/2019 at 11:00 PM, RevEng said:

So the question is why are they too short? Either you missed data during copy and paste, or maybe you didn't select the right mode in img2code. (e.g. "sprite", "Title kernel 96x2", "copy 1")

 

Aha! I assumed that I downloaded the latest VbB (the one pinned in the first post of this thread), and when I saw the screenshot in the instructions (showing the different versions under "Title kernel" and "copy"), I thought the instructions were just out of date. But your comment made me think I was using the wrong VbB version, and I found build 568. That one had the right Img2Code version, and generated the right code.

 

Thanks for taking a look! ?

 

Andres.

  • Like 1
Link to comment
Share on other sites

  • 11 months later...
  • 4 months later...

I playee with this a bit. Can I make a 96p wide multi color full screen image? It seems the larger multicolored images are only 48p but only the ROBOTRON text is 96p. I'm a bit cornfused on which one to use exactly. 

 

I'd just like the largest fullest screen multi colored image I could make, but also maybe with a scrolling text. 

 

 

Link to comment
Share on other sites

  • 2 weeks later...
On 9/23/2010 at 4:45 PM, RevEng said:

The bB Titlescreen Kernel can be used to create high-quality titlescreens for your bB games. Enjoy!

 

titlescreen_kernel_1.8.zip 1.56 MB · 497 downloads

 

Jeff Wierer's most excellent vbb project now has an integrated Titlescreen Wizard!

 

Here are some screenshots from 3 of the examples in the zip.

post-23476-128527425178_thumb.png post-23476-12852742643_thumb.png post-23476-128537761208_thumb.gif

 

And here are the bins from the examples.

ex1-basic_color.bas.bin 16 kB · 977 downloads

ex2-scroller.bas.bin 16 kB · 886 downloads

ex3-animation.bas.bin 16 kB · 841 downloads

ex4-color_by_flicker.bas.bin 16 kB · 907 downloads

ex5-player_and_playfield.bas.bin 16 kB · 650 downloads

 

Please report any bugs in this thread. Go forth and make titlescreens!

For the scroller example is it possible to have different colors in the 2084? I'm able to do it with the Robotron. These colors are horizontal. If this possible it would help the game I'm about 80 percent complete with, thanks.

Link to comment
Share on other sites

4 minutes ago, Lewis2907 said:

For the scroller example is it possible to have different colors in the 2084? I'm able to do it with the Robotron. These colors are horizontal. If this possible it would help the game I'm about 80 percent complete with, thanks.

Yes. This part uses the 48x1_1 kernel, which has this comment at the top:

 

 ; *** if you want to modify the bitmap color on the fly, just dim a
 ; *** variable in bB called "bmp_48x1_1_color", and use it to set the
 ; *** color.

 

So, you can dim any of your variables with this name for this purpose. You don't have to reserve it beyond the title screen; just use a variable that you don't need on the title screen, and you can overwrite it after you exit the titlescreen.  You can dim the same variable twice to give it two names, e.g.:

 

    dim bmp_48x1_1_color=a
    dim lives=a

 

Link to comment
Share on other sites

Karl G,

 

I tried it and some other variations. I'm trying to figure our how to make each ghost the correct color. It's been a learning curve with the Titlescreen. I am making some Powerpoint Notes and others stuff to help others who are probably struggling with the Titlescreen Kernel as well. Not sure if it's possible to do what I'm asking. Thanks if you can explain it better or what I should do next. 

 

 

 

 

image.thumb.png.52e780e12df64d9c640a62121b14b40f.png

Link to comment
Share on other sites

If you use the 48x2 kernel for a single image for all 4 ghosts, then you can define the color on a line by line basis, and have each ghost a different color. If you are wanting to use the 48x1 kernel for the higher resolution, then you will need 4 separate instances of the kernel (one for each ghost), and set 4 different variables to control the color of each one. So, yes, it can be done a couple of different ways depending on what you are aiming for. 

Link to comment
Share on other sites

You can't with the 48x1 kernel - you would need to switch it with the 48x2 kernel, where the lines are twice as tall (lower vertical resolution), but it has the ability to add in the color data. Here's how the PDF explains the difference between the two kernels:

 

Quote

B.the 48x1 minikernel - this displays a 48-pixel wide bitmap image.
The "x1" part of the name means that this minikernel display pixels using a single line on your

TV; the pixels are half height, making them look like rectangles instead of squares.

This is a single color minikernel, though it's possible to set the color dynamically using a variable in your batari Basic program. You can also have a background playfield behind the image of any color.

 

C.the 48x2 minikernels - these allow you to display a 48 wide bitmap image.
The "x2" part of the name means that this minikernel display pixels using 2 lines on your TV.

This means the pixels it displays are square, more or less.

With this minikernel you set the color of each line, so it's possible to create a very colorful logo or graphic with it. You can also have a background playfield behind the image of any color.

 

  • Thanks 1
Link to comment
Share on other sites

  • 1 month later...
7 minutes ago, kisrael said:

@Karl G one of these weeks we should really take on integrating this with atari-background-builder :-D 

I have been thinking of this as well. I don't think it will be a lot of work to adapt what you have now to be able to produce output usable by the various titlescreen kernels. It would be great to have a cross-platform solution to both draw the screens as well as import graphics.

  • Like 2
Link to comment
Share on other sites

44 minutes ago, Karl G said:

I have been thinking of this as well. I don't think it will be a lot of work to adapt what you have now to be able to produce output usable by the various titlescreen kernels. It would be great to have a cross-platform solution to both draw the screens as well as import graphics.

Yeah! Its been a while since I looked at the whole kit of it, and I remember getting confused by some aspects, but probably together we can figure out where to shove the bits and then we have a nice cross-platform image import and edit.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

 

the aforementioned work is started :-D

Three major differences from the old methods:
1. multiplatform because a-b-b is browser based

2. much, much easier than the old techniques - it provides the 1.8 zip, and then the 4 or so critical files (the .asm for the image, the overall templatelayout and templatecolor, an then a launching .bas file)

3. I noticed that my important routine actually isn't great at importing already sized files - so like if you import a 48x?? image, presized, it won't be quite pixel perfect. But it is good at resizing big images and I think the results overall are good-looking!

For now it only does the color 48x2 , and for now only the 48x2_1 "location" of it.

 

Plans are to add all non-trivial kernel types, though maybe not the sprite one for now. But I would like to try the animations and the flicker color ones.

Thanks to @RevEng for the main work and @Karl G who has helped my tired and not reading carefully enough brain sort through the abundance of files in the zip.

 

(Of course, thanks to Karl's earlier work, a-b-b has many different modes that are already pretty good for making a bB titlescreen :-D  And if you haven't been following, this thing supports DPC+ (including per scanline background color changes), has tools for doing gradients and text and various shapes, copy-and-paste, image import, "undo", etc etc. But hopefully while keeping it relatively easy to use, and always with ready to run code.

  • Like 4
Link to comment
Share on other sites

I see you can make a 48p wide by 2 scanline tall multi color still image. 

 

Is there a 96p wide multi color image? And is that the largest size for a still image with multiple colors and no flicker? I'm interested in the widest, tallest 2scanlines tall pixels that I can use also with different colors on each vertical line. 

 

Would you pease clarify which of these would best be suited for that. Thanks.

Edited by freshbrood
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...