Jump to content
RevEng

The Titlescreen Kernel

Recommended Posts

1.6 looks great, rock steady.

When I go from the titlescreen to the game the score jumps one pixel to the left, same in 1.5. I've modified both score fonts the same way, six pixel wide numbers with one row of nothing on each side, how do i fix it?

Edited by Lillapojkenpåön

Share this post


Link to post
Share on other sites

If I recall correctly, I designed the title-screen score minikernel to be dead-center, so it would align nicely with the other graphics.

 

The bB standard kernel displays the kernel off-center. (this to give it some extra cycles where it needs it, which allows it to display playfield bars on either side of the score.) This is where the alignment shift is coming from. It shouldn't be an issue with the standard kernel.

 

The title-screen score minikernel would needs some surgery to reposition the score off-center, to match the standard kernel. When I get a chance, I'll see if I can add this as an option.

Share this post


Link to post
Share on other sites

I've given the titlescreen kernel a try for the first time, and I've been successful at displaying a bitmap with the 48x2 kernel. However, it has a background color that is dark, but isn't completely black like the rest of the screen. Is there any way to make the background pure black?

 

Screenshot_20170514_072555.png

Share this post


Link to post
Share on other sites

I've given the titlescreen kernel a try for the first time, and I've been successful at displaying a bitmap with the 48x2 kernel. However, it has a background color that is dark, but isn't completely black like the rest of the screen. Is there any way to make the background pure black?

The overall color can be set in titlescreen/titlescreen_color.asm, but it defaults to black.

 

Maybe you're comparing the black background to the blanking color? Blanking is darker than the blackest black an NTSC 2600 can produce.

Share this post


Link to post
Share on other sites

That may well be it. In that case, is there a way to set the rest of the screen to the same color so that the images don't appear is obvious rectangles? It seems like I must be missing something obvious, since the screenshots I see don't show this color contrast at all.

 

Another question - does anyone have a command line utility that works like the ImgToCode Windows app? If not, would anyone be interested in one? I was thinking about writing a simple one for my own convenience that could work on Mac/Linux, and I would be happy to share the results if anyone would find it useful as well.

Share this post


Link to post
Share on other sites

The overall screen color can be set in titlescreen/titlescreen_color.asm. Of if you prefer something dynamic, you can dim a "titlescreencolor" variable, and set it to the color you want.

 

I'm not actually seeing any contrast between blacks in your screenshot. On both my computer and phone, it appears all to be uniformly black.

 

I think a cross-platform command-line utility like ImgToCode would be great!

Share this post


Link to post
Share on other sites

I can see it clearly in two emulators, but maybe I should try it on real hardware before deciding if it's a real issue. I suppose I can make a taller bitmap that fills all of the vertical space as a workaround if so, so that it appears to be more uniform.

Share this post


Link to post
Share on other sites

After more experimenting, it looks like the problem must be with my bitmap specifically. When I replaced my 48x2 with the "Yoshi" one from example 4, I didn't get the weird color as image background. When I did the reverse substituting my bitmap for the Yoshi one in example 4, I did still get the weird background color for my bitmap, but not for any of the others. I visually exaimed by converted bitmap and compared it visually to the working Yoshi one, but I couldn't find any problems. Any thoughts?

 

Mind you, this isn't vitally important, since I could always start from scratch with a new image if need be, since this one is more of a placeholder, but the mystery of it is bugging me. Attached is the compiled example 4 with my image substituted for the Yoshi one, and the problematic converted image itself.

 

ex4-color_by_flicker.bas.bin

 

48x2_1_image.asm

Share this post


Link to post
Share on other sites

Well, I never figured out the cause of my issue, but I don't much care since I have something that looks much nicer now that I've started fresh. I love this kernel! :) This screenshot doesn't do it justice, since I think it only captures one frame of the flicker?

 

 

post-48311-0-89989600-1494958608_thumb.jpg

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Is it at all possible to combine the titlescreen with a starfield effect? If so, what objects (if any) are not used by the titlescreen kernel to use for this? I made a stab at it with the ball, but it didn't show up when I tried it. Or is it not possible to have an effect that covers the whole screen like that while the titlescreen kernel is active?

 

I'll confess that I don't understand that wizardry and black magic that the titlescreen kernel uses, so it's hard for me to make an educated guess on this one. :-)

Share this post


Link to post
Share on other sites

Each of the minikernels in the titlescreen kernel hit HMOVE at some point. This resets the effect, so a clean full-screen starfield effect wouldn't be possible.

 

For the horizontal strip that any particular minikernel would occupy, it's possible that the effect could be added into the assembly code, but it would take a fair bit of surgery.

Share this post


Link to post
Share on other sites

It sounds like it would be more trouble than it would be worth, since for an individual titlescreen minikernel, I could draw my own stars with a bitmap that would look much better, anyway. I suspected that having a screen-wide effect wouldn't be possible, but I just wanted to make sure. :-)

Share this post


Link to post
Share on other sites

You'd have to incorporate the starfield effect into whatever titlescreen mini kernel you're using at the time otherwise you'd be flickering between them. This would mean having enough assembly savvy to not only integrate two disparate graphic kernels but make sure there's enough time for both of them.

  • Like 1

Share this post


Link to post
Share on other sites

I think the fact it would be limited to each horizontal strip, and also limited to full screen width, limits the visual usefulness. It also would likely require more memory (IIRC I'm already using the object x and y coordinates, though I may be wrong)

 

Agreed its probably not worth the effort.

Share this post


Link to post
Share on other sites

Hey, where do I find that image converter described in the PDF? I tried the one in my VbB install and it doesn't have the same options, am I using an older version of VbB, or is there somewhere I have to download it?

Also, can I use this with a game running, as I wish to use it to put air hockey table graphics in my game.

 

Here's the image I plan on using, is there also a way to cut it down to a quarter and mirror it horizontally and vertically?

post-61447-0-06379200-1500956298.png

Edited by 8-bit_d-boy

Share this post


Link to post
Share on other sites

Alrighty, I figured out how to get the data in there anyway without the options in the PDF, but I keep getting the error:

 

titlescreen/96x2_1_image.asm (124): error: Unknown Mnemonic '%00000000'.
Unrecoverable error(s) in pass, aborting assembly!
Complete.
Errors were encountered during assembly.
Is this code correct?
gosub titledrawscreen bank2	

drawscreen


	bank 2
	asm
	include "titlescreen/asm/titlescreen.asm"
end

Share this post


Link to post
Share on other sites

Without looking at the titlescreen/96x2_1_image.asm file, my first guess is that your image data isn't indented, so it is trying to parse that line as a label.

Share this post


Link to post
Share on other sites

Turns out, yes the first line of image data was not indented, so I indented it and got a new error message:

 

 

--- Unresolved Symbol List
fontcharARISIDE 0000 ???? (R )
_NUSIZ1 0000 ???? (R )
fontcharHEART 0000 ???? (R )
fontcharMRHAPPY 0000 ???? (R )
fontcharBLOCK 0000 ???? (R )
player9height 0000 ???? (R )
fontcharUNDERLINE 0000 ???? (R )
mk_96x2_8_on 0000 ???? (R )
mk_48x2_X_on 0000 ???? (R )
mk_48x2_8_on 0000 ???? (R )
mk_48x1_8_on 0000 ???? (R )
bmp_96x2_1_index 0000 ???? (R )
fontcharCOPYRIGHT 0000 ???? (R )
score_kernel_fade 0000 ???? (R )
bmp_96x2_1_fade 0000 ???? (R )
fontcharCOLON 0000 ???? (R )
fontcharDOLLAR 0000 ???? (R )
mk_player_on 0000 ???? (R )
fontcharARIFACE 0000 ???? (R )
fontcharMRSAD 0000 ???? (R )
mk_gameselect_on 0000 ???? (R )
mk_96x2_4_on 0000 ???? (R )
mk_48x2_4_on 0000 ???? (R )
mk_48x1_4_on 0000 ???? (R )
fontcharSPADE 0000 ???? (R )
fontcharSPACE 0000 ???? (R )
mk_96x2_5_on 0000 ???? (R )
mk_48x2_5_on 0000 ???? (R )
mk_48x1_5_on 0000 ???? (R )
mk_96x2_6_on 0000 ???? (R )
mk_48x2_6_on 0000 ???? (R )
mk_48x1_6_on 0000 ???? (R )
0.title_vblank 0000 ???? (R )
mk_96x2_7_on 0000 ???? (R )
mk_48x2_7_on 0000 ???? (R )
mk_48x1_7_on 0000 ???? (R )
fontcharCLUB 0000 ???? (R )
FASTFETCH 0000 ???? (R )
mk_48x2_1_on 0000 ???? (R )
mk_48x1_1_on 0000 ???? (R )
mk_96x2_2_on 0000 ???? (R )
mk_48x2_2_on 0000 ???? (R )
mk_48x1_2_on 0000 ???? (R )
fontcharFUJI 0000 ???? (R )
fontcharDIAMOND 0000 ???? (R )
BS_jsr 0000 ???? (R )
mk_96x2_3_on 0000 ???? (R )
mk_48x2_3_on 0000 ???? (R )
mk_48x1_3_on 0000 ???? (R )
fontcharPOUND 0000 ???? (R )
9556 bytes of ROM space left in bank 1
0 bytes of ROM space left
Fatal assembly error: Source is not resolvable.
Errors were encountered during assembly.
Oh boy.
Edited by 8-bit_d-boy

Share this post


Link to post
Share on other sites

It's difficult to tell without seeing your source, so this is just a shot in the dark, but that is the same unresolved symbol list I get when I have an undefined variable or label with the exception of the "BS" line. I don't suppose you have an undefined label or variable named "BS" anywhere in your code?

Share this post


Link to post
Share on other sites

I'm not sure what the issue is - I know that it's stumbling on this line

   gosub titledrawscreen bank2	

...but I don't know what the issue is with that line.

 

It looks like you are using the titlescreen kernel incorrectly, however - you have it in your main loop right before a drawscreen. It needs to be in its own loop without a drawscreen command, with the gosub titledrawscreen inside of that loop. You can't mix the titlescreen kernel with normal bB display code.

Share this post


Link to post
Share on other sites

Ohhhhh. I was hoping to use it to display a typical air hockey playfield graphic. Guess not.

I was also hoping to use it to display "Air Hockey" in the space at the top of the screen.

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