Jump to content
IGNORED

bB 256k, 128k, 64k, 32k, 16k, Multikernel Frameworks


RevEng

Recommended Posts

It doesn't restrict you from using extra characters, but you need to make changes uniformly for all banks.

 

i.e. When you edit the provided score_graphics.asm in one bank (and change the start of the graphics to allow for more characters) you need to modify the score_graphics.asm graphics start location similarly in all banks.

 

The underlying reasons you need to do this are 1)bank-switch routines normally need to be the same place in each bank, and 2)the bank-switch switch routine for these frameworks is in the score_graphics file, right after the graphics data.

 

I appreciate the inside info. I'm almost certain I've bugged you about this before. Only resorted to this after trying and failing more than a few times :)

 

I saw this topic: http://atariage.com/forums/topic/126058-defining-a-f-in-score-graphicsasm/

 

..and tried to replace this code:

ifconst ROM2k
ORG $F77C ; was ORG $F7AC
else
ifconst bankswitch
     if bankswitch == 8
     ORG $2F64-bscode_length ; was ORG $2F94-bscode_length
     RORG $FF64-bscode_length ; was RORG $FF94-bscode_length
     endif
     if bankswitch == 16
     ORG $4F64-bscode_length ; was ORG $4F94-bscode_length
     RORG $FF64-bscode_length ; was RORG $FF94-bscode_length
     endif
     if bankswitch == 32
     ORG $8F64-bscode_length ; was ORG $8F94-bscode_length
     RORG $FF64-bscode_length ; was RORG $FF94-bscode_length
     endif
else
     ORG $FF6C ; was ORG $FF9C
endif
endif

The last line with ORG statements appears different in the multi kernel framework. I'm wondering if this is the key section I have to change (besides adding the extra 6 character data). I'm also not sure what the changed values should be.

Link to comment
Share on other sites

  • 5 years later...

Would it be possible to use this with fewer than 8 banks? Judging from stella's disassembly of the 32kMultikernel.bas.bin, it seems like it could work, but if we only need 16k for the game then there'd be quite a lot of wasted space.

Link to comment
Share on other sites

7 hours ago, Bakunawa said:

Would it be possible to use this with fewer than 8 banks? Judging from stella's disassembly of the 32kMultikernel.bas.bin, it seems like it could work, but if we only need 16k for the game then there'd be quite a lot of wasted space.

Sure, I've attached a 16k version to the first post.

  • Like 5
Link to comment
Share on other sites

  • 3 months later...
13 hours ago, Fernando Rodrigues Salvio said:

Somebody know if Atari 2600+ run cartridges made with this multikernel?

The short answer is that it should work up to 64K, but the 128K and 256K versions will not, at least not currently.

 

The longer answer is that there's no technical reason that these sizes could be supported, but support for these bankswitching formats has not been added yet. The bankswitching formats that would need to be added to the 2600+ are:

 

DF (128K)

DFSC (128K + SuperChip RAM)

BF (256K)

BFSC (256K + SuperChip RAM)

 

My game Penult uses DFSC, so that will probably eventually be supported (since it's a released homebrew cart), but I have been asking about it for months with no sign of movement on it so far.

 

Edit: I should probably tag @RevEng to verify the accuracy of my answer since this is his framework.

  • Like 3
Link to comment
Share on other sites

  • 3 months later...
36 minutes ago, Tag365 said:

How hard is it to make a kernel to handle 512KB or 1024KB games?

 

The main issue is BF and BFSC are currently the largest bank switching format that AtariAge members can produce for batari BASIC games (as far as I know).

 

You would need:

 

* Experience hacking at the multikernel framework

* Design a new bank switching scheme

* Manufacture a board that would use new bank switching scheme

* Somehow convince Stella and Gopher2000 devs to support new bank switching scheme

 

Additional challenges include Visual batari BASIC IDE barely supports 32k Multi Kernel Framework projects.  My experience is after about 8 sub-folders it stops recognizing further parts of the project.  I don't know if Atari Dev Studio supports Multi Kernel Framework projects directly.

  • Like 2
Link to comment
Share on other sites

2 hours ago, Tag365 said:

How hard is it to make a kernel to handle 512KB or 1024KB games?

I'm curious what you want to make in bB that requires that much ROM? As far as I know, no one has taken advantage of this framework to even produce a 128K or 256K game yet.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

9 hours ago, Karl G said:

I'm curious what you want to make in bB that requires that much ROM? As far as I know, no one has taken advantage of this framework to even produce a 128K or 256K game yet.

I'm not actually interested in making an Atari 2600 game. It was just a question to get some people to think about the possibility and what it could entail.

Link to comment
Share on other sites

5 hours ago, Tag365 said:

I'm not actually interested in making an Atari 2600 game. It was just a question to get some people to think about the possibility and what it could entail.

 

If you did not want to participate and just wanted to know what boundaries are being reached.. you already found this topic.  The people responding to your questions have already done (or encouraged) amazing things to get this far.

 

I encourage you to lead by example.  You want people to try?  Get in there and enjoy what the community has made available.

 

 

Link to comment
Share on other sites

On 7/26/2024 at 1:49 PM, Karl G said:

As far as I know, no one has taken advantage of this framework to even produce a 128K or 256K game yet.

Been following this thread for a long time. I made a game (Spies in the Night 2) with a multikernel framework in 2018:

I used the 32K multikernel framework and that was a LOT. I can't imagine trying to fill 128K or more. 🙂

 

By the way, I *think* Spies 2 was the first game released that uses a multikernel framework, as I asked around and didn't hear of others released prior. Was wondering if there have been ANY other multikernel games released since then? I'd love to see how other programmers have used it. It opens up a lot of great options!

Edited by graywest
  • Like 3
Link to comment
Share on other sites

I'm not sure how I overlooked this all these years, this is pretty cool.  Just to get a feel for how it all works I created a 16K multikernel framework multi-game.  I put a selectable menu in the first bank, and a simple single player Pong clone game in bank 2, my recent Cave Trap game in bank 3, and a slight rework of the Zombie Chase game that batari originally wrote in bank 4.  Push right on the joystick to select one of the three games, then push fire to start that game. 

 

This has really got me thinking about what I could do with this framework!  Lots of possibilities here, I'm going to have to play around with this for a while. :)

 

 

multigame.bin

  • Like 6
Link to comment
Share on other sites

In order to make a traditional single large game I think a key strategy is treating the very start of the 4k as a superjump management section. Maybe something as simple as allocating a superjump variable for a rather long ON .. GOTO statement.

 

Although, I'm always afraid of what happens when the RAM starts dirty.  A random high energy particle zaps your console into the last level or something :)

Link to comment
Share on other sites

5 minutes ago, Gemintronic said:

In order to make a traditional single large game I think a key strategy is treating the very start of the 4k as a superjump management section. Maybe something as simple as allocating a superjump variable for a rather long ON .. GOTO statement.

 

Although, I'm always afraid of what happens when the RAM starts dirty.  A random high energy particle zaps your console into the last level or something :)

 

Use a byte on the SaveKey?

  • Like 1
Link to comment
Share on other sites

12 minutes ago, Gemintronic said:

 

 

Maybe I worry too much.  Could make it so if superjump = 0 then run the cold boot code.  The cold boot code could set it to superjump = 1 for the warm boot section.

 

No, you can not rely on the RAM state, the worry is valid.

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