Jump to content
RevEng

The Titlescreen Kernel

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.

Share this post


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

Share this post


Link to post
Share on other sites

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.

Share this post


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

Share this post


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

Share this post


Link to post
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")

 

Share this post


Link to post
Share on other sites

I have seen the visible output of Img2Code get truncated when it is running through the wine emulator, but a Select All -> Copy seems to get everything. This is just from memory, though, so it may not be related to the same issue. 

  • Thanks 1

Share this post


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

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.

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