Jump to content

Photo

32k Multikernel Framework


39 replies to this topic

#26 Sprybug OFFLINE  

Sprybug

    Dragonstomper

  • 563 posts

Posted Thu Jul 18, 2013 10:43 PM

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.

#27 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,199 posts

Posted Fri Jul 19, 2013 9:39 AM

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

#28 RevEng OFFLINE  

RevEng

    River Patroller

  • Topic Starter
  • 4,992 posts
  • Bitnik
  • Location:bottom of the stack

Posted Mon Jul 22, 2013 2:26 PM

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.

#29 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,199 posts

Posted Wed Jul 24, 2013 3:47 PM

I just want to confirm my suspicions here. Can this framework work as a 16k game? Meaning, just 4 banks?

#30 RevEng OFFLINE  

RevEng

    River Patroller

  • Topic Starter
  • 4,992 posts
  • Bitnik
  • Location:bottom of the stack

Posted Wed Jul 24, 2013 4:16 PM

Not as-is. The bankswitch code in the score graphics file would need to updated with different hotspots.

#31 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,199 posts

Posted Wed Oct 2, 2013 1:18 PM

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 :)



#32 RevEng OFFLINE  

RevEng

    River Patroller

  • Topic Starter
  • 4,992 posts
  • Bitnik
  • Location:bottom of the stack

Posted Wed Oct 2, 2013 1:27 PM

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

#33 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,199 posts

Posted Wed Oct 2, 2013 1:34 PM

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?



#34 iesposta OFFLINE  

iesposta

    River Patroller

  • 3,830 posts
  • Retro-gaming w/my VCS
  • Location:Pennsylvania

Posted Wed Oct 2, 2013 1:43 PM

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.



#35 RevEng OFFLINE  

RevEng

    River Patroller

  • Topic Starter
  • 4,992 posts
  • Bitnik
  • Location:bottom of the stack

Posted Wed Oct 2, 2013 2:17 PM

The score_graphics in the 32k multikernel framework contains bankswitch code. You can't replace it with an another one.

#36 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,199 posts

Posted Wed Oct 16, 2013 7:22 AM

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/...ming-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:

 

parroty48.png parroty96.png
Attached File  parroty48.bin   32KB   185 downloads Attached File  parroty96.bin   32KB   137 downloads

 

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!



#37 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,199 posts

Posted Thu Oct 24, 2013 12:25 PM

I'm not sure if I've asked this question before, but.. is there any way to stretch this all the way to 64k using CPUWIZ boards?

 

UPDATE:  Nevermind, it's marked as a future project!

http://atariage.com/...k/#entry2793798



#38 graywest OFFLINE  

graywest

    Moonsweeper

  • 332 posts
  • Location:Indianapolis, IN

Posted Thu Aug 23, 2018 9:12 PM

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.

Attached Files



#39 RevEng OFFLINE  

RevEng

    River Patroller

  • Topic Starter
  • 4,992 posts
  • Bitnik
  • Location:bottom of the stack

Posted Sat Aug 25, 2018 9:30 AM

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.

#40 graywest OFFLINE  

graywest

    Moonsweeper

  • 332 posts
  • Location:Indianapolis, IN

Posted Sat Aug 25, 2018 12:55 PM

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






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users