Jump to content
RevEng

The Titlescreen Kernel

Recommended Posts

Perhaps I do. I have seen it on two different systems, but both are Atari Jrs. If I recall correctly, it was certain Jrs that has problems with bus-stuffing demos, so perhaps Maggie and I are both "blessed" with these "special" TIAs.

Share this post


Link to post
Share on other sites

Yeah, usually it's the 7800's and certain Jr's that have the odd TIAs.

 

Here's one that waits an extra cycle prior to changing the graphics for the second copy of the player 0 sprite. I have my console packed away at the moment, so it's not tested beyond Stella. Buyer beware.

 

[edit - removed. Used kdgarris' working score_kernel.asm fix in the main titlescreen kernel, in the first post]

Share this post


Link to post
Share on other sites

My titlescreen gets a VERY similar character on the hundred thousand digit but I'm using a different font to, I thought it was because I didn't use DEC but might be this bug, it's not in the game only when returning to titlescreen after a game, I have a PAL light sixer.

Share this post


Link to post
Share on other sites

Does the original binary I posted of the demo show the problem on your system as well? It should probably still work otherwise on your system, just with different colors.

Share this post


Link to post
Share on other sites

kdgarris provided a fixed score_kernel.asm that has timing that works on his console. I've updated the first post with titlescreen kernel 1.7, which incorporates that fix.

Share this post


Link to post
Share on other sites

Hello all. I'm having a similar problem with the score module of the titlescreen kernel, except that my issue is showing up in Stella. I haven't tried this on real hardware yet.

 

After playing a game, the thousands digit is duplicated into the hundred thousands digit. Also, the ten thousands digit has some corruption on the right side. See the screenshot. The correct score at the end of this game was 002875.

 

I'm attaching my bB directory and project files. I'm using Crimson Editor, bB version 1.0, and Titlescreen Kernel 1.7. This is my first time using the Titlescreen Kernel, so it's totally possible that this is not a bug and that I've just overlooked something.

 

Thanks for any help you can provide!

 

post-6856-0-28156900-1531590327.png

bB.zip

Edited by graywest

Share this post


Link to post
Share on other sites

Thanks for the report. It looks like that last fix for the titlescreen kernel had unintended consequences.

 

I've reverted back to the 1.6 version in the first post, and I'd recommend all of you guys do the same. If you're willing to go without score fade, kdgarris' alternate score_kernel.asm (earlier in this thread) should work on both regular and odd-timing consoles.

 

I may revisit this at some point, to have both score fade and a score kernel that works on odd-timing consoles, but being short on hobby time and being unable to reproduce the odd-timing console results makes it difficult right now.

  • Like 2

Share this post


Link to post
Share on other sites

Thanks for the report. It looks like that last fix for the titlescreen kernel had unintended consequences.

 

I've reverted back to the 1.6 version in the first post, and I'd recommend all of you guys do the same. If you're willing to go without score fade, kdgarris' alternate score_kernel.asm (earlier in this thread) should work on both regular and odd-timing consoles.

 

I may revisit this at some point, to have both score fade and a score kernel that works on odd-timing consoles, but being short on hobby time and being unable to reproduce the odd-timing console results makes it difficult right now.

 

Thanks RevEng - I recompiled with 1.6 and that fixed my issue.

  • Like 1

Share this post


Link to post
Share on other sites

My apologies for the bug. Has anyone tried my test binary that demonstrates the previous issue on real hardware, and NOT seen the same issue I did? I've seen it on two systems, but they were both Jrs.

Share this post


Link to post
Share on other sites

FYI I have confirmed that the original issue I was seeing does not happen on all hardware - it looks like RevEng was correct that it likely only appears with TIA revisions that have slightly odd timing (like mine, apparently). So, my fix wasn't so much buggy as it was very limited in usefulness. :D

Share this post


Link to post
Share on other sites

What might be the issue if it says not a valid titlescreen file when I try to open my xml titlescreens?

 

And is the following a related fixable timing issue.. On my PAL console the high score text is centered above the score, and on another NTSC console it's aligned to the right like in stella

 

msg-21941-0-27573400-1520542420.jpg

Edited by Lillapojkenpåön

Share this post


Link to post
Share on other sites

Not sure about the XML question. That's vbb, which I don't really have anything to do with.

 

I've updated the titlescreen code in the first post. It may show consistently between your consoles. It also resolved the problem that kdgarris ran into.

  • Like 3

Share this post


Link to post
Share on other sites

Limited portions of larger bitmaps can be displayed. By changing the visible portion, menus can be implemented. Space Game uses that for game mode and difficulty selection. The doc explains it well, and it comes with sample code, too.

  • Like 1

Share this post


Link to post
Share on other sites

Hi,

 

Not sure if this is possible but can you use this to overlay an existing screen? For example show a game over message?

 

Update: after adding in a titlescreen for my game it was a really easy process - had to shrink down some stuff in size to fit in most of what I wanted. After looking over the code I believe I might be able to grab parts of it to help add a game over message - will check that out tomorrow.

Edited by mksmith

Share this post


Link to post
Share on other sites

If by overlay you mean have the titlescreen coexist with your existing bB screen, then that's a no. The call to the titlescreen routine replaces your normal call to drawscreen, and only what you have defined for your titlescreen will display. Ditto for the splash screen that Muddy mentioned.

Share this post


Link to post
Share on other sites

You can have more than one titlescreen.

They are an entire display Kernel, but that makes them use a large amount Bank space - they cant use the built-in drawscreen routine Kernel.

 

Also you would need to use the commands to asm include any additional screens. Data in those can be large as well due to the bitmaps and take away from the 4K graphics of DPC+ Kernel

 

I don't think you can have 2 titlescreens present (1 for title screen and one for game over) but you could use this code provided by KarlG :

 

http://atariage.com/forums/topic/282960-batari-basic-logo/?hl=%2Bsplash&do=findComment&comment=4164552

 

To allow a splash or game over screen as well as a title screen.

Share this post


Link to post
Share on other sites

You can have more than one titlescreen.

They are an entire display Kernel, but that makes them use a large amount Bank space - they cant use the built-in drawscreen routine Kernel.

 

Also you would need to use the commands to asm include any additional screens. Data in those can be large as well due to the bitmaps and take away from the 4K graphics of DPC+ Kernel

 

 

Do you have any examples that use two titlescreens, perchance? Saying it's not possible is a simplification, but if you were to include two, you would need to change the names of a ton of symbols to not conflict, and change the pathing in some of the asm as well for the second copy. If there's another way to do it, I'm unaware.

 

Edit: Also, I'm pretty sure the titlescreen data doesn't use any of the 4K of graphics data for the DPC+ kernel, either. I'm willing to be corrected if I'm mistaken, though.

Share this post


Link to post
Share on other sites

Does this allow for menus? Like can you draw sprites on top of this? That would be cool.

 

 

Titlescreen has Player0 and Player1.

They need to be inside their own defined scan lines, so above or below bitmaps (which are using Player0 & Player1).

It is not a built in feature, but you can pass variable data to the Titlescreen and back to the bB game. It requires adding code in the Titlescreen assembly. My DK Arcade 2600 uses the Titlescreen Kernel to show the 1-4 monkeys, using the level= variable and changes the 50m 100m bitmap at the bottom. It’s game title screen is all bB routines.

 

Yes, I sometimes use the tools I’m given in ways that they aren’t intended to be used.

Share this post


Link to post
Share on other sites

Do you have any examples that use two titlescreens, perchance? Saying it's not possible is a simplification, but if you were to include two, you would need to change the names of a ton of symbols to not conflict, and change the pathing in some of the asm as well for the second copy. If there's another way to do it, I'm unaware.

I don’t have any examples.

 

Edit: Also, I'm pretty sure the titlescreen data doesn't use any of the 4K of graphics data for the DPC+ kernel, either. I'm willing to be corrected if I'm mistaken, though.

I am incorrect. All the data and everything are in the generated .asm in the Titlescreen folders. That adds to why they can get huge.

 

It is not a built-in feature to use more than one.

It would need to be called like any:

[space]asm

[space]include file.asm

end

 

Any RAM or variables Titlescreen uses are changed back to your bB values upon exiting.

Edited by iesposta

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