Jump to content
Sign in to follow this  
Gemintronic

[SOLVED] Player Scores Minikernel & Multi-Bank Broken?

Recommended Posts

When I try to use a ROM size above 4k the screen either blanks or goes blitzkrieg bamboozlebarf.

 

The trouble with keeping the game within 4k is that the Title Screen Kernel loses its proper colors.

 

All the samples of Player Scores Minikernel have been 4k so I've got nothing to compare to.

 

The included project file is set to 4k and works albeit with wacked out colors in the title screen. The moment you change the code to multi-bank the screen dun work right.

 

Of course, to change over to multi bank

set romsize 4k needs to be changed to set romsize 8k

gosub titledrawscreen becomes gosub titledrawscreen bank2

 

asm

include "titlescreen/asm/titlescreen.asm"

end

 

changes to

 

bank 2

asm

include "titlescreen/asm/titlescreen.asm"

end

 

Any clues guys?

MMSBC4k.zip

Edited by theloon

Share this post


Link to post
Share on other sites

Sorry for the bump but I don't think this has a solution. Lodmot already had a topic where he too had issues with multi-bank and the player scores mini kernel with no replies. CurtisP (maker of the mini kernel) hasn't logged in since last March.

 

I strongly suspect this mini kernel can't handle multi-bank programs. Maybe R.T. can put a note in his reference so this question doesn't pop up again.

 

I guess in the future the solution may be to "fake" two player scores by adding a "space" character to the normal scores font and manually updating the far left and far right digits. Yucky.

Edited by theloon

Share this post


Link to post
Share on other sites

It can work with multi-bank roms, but you need to use the addbcd and subbcd functions in the same bank that you do the "inline bcd_math.asm" in.

 

Here's a working 16k bas and bin of your game, along with the bas for a 8k playerscores demo.

 

mmsbc16k.bas

mmsbc16k.bas.bin

playerscores-8k.bas

 

Its also worth mentioning that you can skip bcd_math and the bcd functions if you do something like the following whenever you modify a player score variable...

 

asm
sed ; set decimal mode
end

player0score=player0score+1

asm
cld ; clear decimal mode
end

Share this post


Link to post
Share on other sites

Once again I am blindsided by the obvious. I was treating includes and inline assembly like built-in bB commands. Big thanks for this one RevEng!

 

The big shocker is that I actualy understand what the heck your assembly example is doing. I guess bB really IS a gateway drug to assembly. hmmn..

  • Like 1

Share this post


Link to post
Share on other sites

Not that obvious at all. Its not like you get a warning or error with this kind of mistake... you just get a binary that doesn't work.

 

Excellent that you understood the decimal mode setting, and there's definitely learning by osmosis that goes on with bB coding! :)

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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...