+Gemintronic Posted November 20, 2018 Share Posted November 20, 2018 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. Quote Link to comment Share on other sites More sharing options...
RevEng Posted November 20, 2018 Author Share Posted November 20, 2018 Yes, it's the last ORG that needs to change, since the frameworks don't use native bB bankswitching. For 6 new characters the bottom ORG needs to be FF3C. To get that answer, I just used a calculator with a hex setting and punched in "ff6c−(6×8)" 1 Quote Link to comment Share on other sites More sharing options...
Bakunawa Posted January 12 Share Posted January 12 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. Quote Link to comment Share on other sites More sharing options...
RevEng Posted January 13 Author Share Posted January 13 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. 5 Quote Link to comment Share on other sites More sharing options...
Bakunawa Posted January 13 Share Posted January 13 Wow! Many thanks RevEng. I've seen many of your posts around here and you've been - and continue to be - a great help! 4 Quote Link to comment Share on other sites More sharing options...
RevEng Posted January 13 Author Share Posted January 13 Thanks for the kind words! You're most welcome Quote Link to comment Share on other sites More sharing options...
r_chase Posted January 13 Share Posted January 13 I wonder if Al will pin this post because this might be important for some who really want to push the 2600 to its limit. Quote Link to comment Share on other sites More sharing options...
Fernando Rodrigues Salvio Posted April 14 Share Posted April 14 Somebody know if Atari 2600+ run cartridges made with this multikernel? Quote Link to comment Share on other sites More sharing options...
+Karl G Posted April 14 Share Posted April 14 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. 3 Quote Link to comment Share on other sites More sharing options...
RevEng Posted April 15 Author Share Posted April 15 22 hours ago, Karl G said: Edit: I should probably tag @RevEng to verify the accuracy of my answer since this is his framework. Yep, it all looks right to me! 1 Quote Link to comment Share on other sites More sharing options...
Tag365 Posted July 26 Share Posted July 26 How hard is it to make a kernel to handle 512KB or 1024KB games? Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted July 26 Share Posted July 26 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. 2 Quote Link to comment Share on other sites More sharing options...
+Karl G Posted July 26 Share Posted July 26 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. 2 1 Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted July 27 Share Posted July 27 You could make a 4 chapter game using 4 separate 256k BFSC carts. When it's time to swap carts you could use a password system or SaveKey dongle. Quote Link to comment Share on other sites More sharing options...
Tag365 Posted July 27 Share Posted July 27 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. Quote Link to comment Share on other sites More sharing options...
CPUWIZ Posted July 27 Share Posted July 27 Mmmmkay Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted July 27 Share Posted July 27 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. Quote Link to comment Share on other sites More sharing options...
graywest Posted July 27 Share Posted July 27 (edited) 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 July 27 by graywest 3 Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted July 27 Share Posted July 27 My plan was to release an official Tunnels & Trolls game. But, since each 4k is essentially its own game, my code organization skills were defeated. Every few months I try re-writing the engine and hit that 4k barrier. 4 Quote Link to comment Share on other sites More sharing options...
+Atarius Maximus Posted July 28 Share Posted July 28 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 6 Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted July 28 Share Posted July 28 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 Quote Link to comment Share on other sites More sharing options...
CPUWIZ Posted July 28 Share Posted July 28 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? 1 Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted July 28 Share Posted July 28 21 minutes ago, CPUWIZ said: Use a byte on the SaveKey? 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. Quote Link to comment Share on other sites More sharing options...
CPUWIZ Posted July 28 Share Posted July 28 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. 1 Quote Link to comment Share on other sites More sharing options...
+Karl G Posted July 29 Share Posted July 29 I don't understand the concern with RAM. It could be initialized in the startup bank like normal. I don't see how using a multikernel framework would create more issues. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.