Jump to content
IGNORED

32k Multikernel Framework


RevEng

Recommended Posts

I think you're correct in assuming the effects in one kernel do not blend with another. It would be interesting to have separate drawscreen commands for every kernel combination we want. As it is we "waste" a whole bank on one particular kernel combination. Also, the fact that graphics and playfields get stored per bank will probably bite me in the arse. Still. Progress!

True that. I may have used this for Zippy had it come out a little bit sooner. I got too much code finished to start changing things around now. This would have come in handy for my different zones. The reason why "hill zone" is all brown is because I needed to be able to change the sizes of the playfield columns in different zones, so I wasn't able to have different colors. However with this kernel, I may have been able to get around that by having colors and heights, making the values fixed, however by going to another bank I can change the height values according to that new bank. Oh well. Always can use it in a future game.

  • Like 1
Link to comment
Share on other sites

Under this new system how do I safely replace the score font and/or extend it to 16 characters?

 

Replacing the score font would be a matter of editing the score_graphics.asm in the bank you want the font to change in.

 

Extending it to 16 characters is another matter. I'm not at my bB computer, but within score_graphics are some DASM ORG and RORG directives that will need to be pushed back 48 bytes. This will need to be done in each score_graphics file.

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

Would it be possible to have different score graphics per bank? I could see one bank for password entry graphics. One bank with inventory. One bank with a Zelda type item bar, etc..

 

Also, even if that isn't possible, how would one expand the score graphics to the full 16 possible values (0-F)?

 

UPDATE: I'm probably going over answered questions here. Apologies in advance. I am confused but grateful for your work and patience RevEng :)

Link to comment
Share on other sites

It actually defaults to using the score_graphics.asm within each bank# folder for that bank, so just modify the one you want.

 

To make any font universal, you'd actually need to modify them all. (or just copy the modified score_graphics into each bank# folder.)

  • Like 1
Link to comment
Share on other sites

Does the frameworks score_graphics contain special code? I mean, could I in theory just copy over a score_graphics that already has all 16 characters in there?

FYI: If I am remembering correctly, DPC+ kernel only has 10. He dropped the extra ones. This is only DPC+ Kernel.

Link to comment
Share on other sites

  • 2 weeks later...

I don't think anyone has reported using the multi-kernel framework yet. Andrew Davie started a challenge to display the color test parrot image as best as possible on the 2600.

http://atariage.com/forums/topic/217629-a-programming-challenge/

 

My idea was to take three seperate images with only the blue, only the green and only the red represented. I then converted them using SeaGtGruffs titlescreen kernel. Unfortunatly, I couldn't figure out how to use more than one titlescreen kernel in a game. This is where the multi-kernel framework came in. I stuffed the red titlescreen parrot in the first bank, green in another and blue in the third one. Just after each bank executes the titlescreen kernel I have it switch to the next bank. This is the result:

 

post-13304-0-54577000-1381857408_thumb.png post-13304-0-01702600-1381857401_thumb.png

 

I don't think my answer to the challenge was definitive. Nevertheless, it shows that with batari, RevEng and SeaGtGruffs efforts BASIC coders can engage assembly gurus on the same subjects. Thanks again, guys!

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...
  • 4 years later...

Replacing the score font would be a matter of editing the score_graphics.asm in the bank you want the font to change in.

 

Extending it to 16 characters is another matter. I'm not at my bB computer, but within score_graphics are some DASM ORG and RORG directives that will need to be pushed back 48 bytes. This will need to be done in each score_graphics file.

 

Hi RevEng,

 

I have a working game using the 32kb multikernel framework to which I'm trying to add the bB "racing timer". There are two extra digits in the score font: a colon and a period.

 

I'm trying to edit score_graphics to include the extra digits but I run into problems when I compile. Specifically, whenever the bank with the racing timer is hit, execution jumps back to bank 1. I assume this is because the code in score_graphics.asm is running too long and triggering the hotspot that initializes bank 1.

 

I'm really bad at assembly. Is there any way you could let me know specifically which parts need to be updated in score_graphics to allow 2 extra characters in the score? I only need 16 extra bytes rather than 48.

 

I tried updating this part:

   else
     ; adjusted so the scorefont and 15 bytes for bankswitching code will end before the FFE0 hotspot 
     ORG $FF7E

to ORG $FF8A, but I'm not even sure if I'm doing that calculation correctly. (It didn't work.)

 

I'm attaching my score_graphics.asm file with the extra digits. Any direction that you (or anyone else who is familiar with this) can provide would be SERIOUSLY appreciated.

score_graphics.asm

Link to comment
Share on other sites

You have the right idea here...

 

I tried updating this part:

   else
     ; adjusted so the scorefont and 15 bytes for bankswitching code will end before the FFE0 hotspot 
     ORG $FF7E

 

Except you need to subtract the extra bytes (8 bytes per new character) from $FF7E. (We're adding extra bytes to this section. It needs to start earlier in the ROM, so it will end at the same place, right before the hotspot.)

 

If you're precise, you can make this change in the score_graphics.asm within just the bank that needs to display the new characters.

  • Like 1
Link to comment
Share on other sites

You have the right idea here...

 

Except you need to subtract the extra bytes (8 bytes per new character) from $FF7E. (We're adding extra bytes to this section. It needs to start earlier in the ROM, so it will end at the same place, right before the hotspot.)

 

If you're precise, you can make this change in the score_graphics.asm within just the bank that needs to display the new characters.

 

Aha!! It's working now! Thank you so much!!

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