Jump to content
kisrael

Bug Report Thread

Recommended Posts

I have a fresh install of bB and Visual Basic on this Win 10 machine (no previous installations to pollute my registry). I followed the instructions. I have the latest versions. I am familar with coding and Windows. The environment variables aren't an alien concept and they are right. Running as admin.

 

So, when I look at the DPC+ examples, they run well enough. But, if I add a set romsize command, they all break. I tried multiple examples. I can change the romsize on Tinkernut all I want.

 

Any suggestions?

Share this post


Link to post
Share on other sites

bB DPC+ is only 32k. You can't change the romsize.

​Fair enough. I found the documentation to be somewhat ambiguous about this. It declares that the romsize is automatically set for you, but I didn't understand that sentence was implying that the romsize could not be changed at all.

​How about the multikernel framework with multiple DPC+ 32k parts?

​Edit: Apologies. Answered my own question. That won't work. The DPC+ kernel alone is too big to fit inside "containers" of 4k.

Edited by orange808

Share this post


Link to post
Share on other sites

Not really a bug

 

I am frequently frustrated by having constant macro parameters treated as immediate values.

Not really sure how to deal with that.

How hard would it be to perhaps escape a constant to suppress emission of the "#" ?

(best I could think of)

Share this post


Link to post
Share on other sites

There is a display problem with the rightmost digit of the score that can be exposed with a wide enough score font that I've reproduced on Stella and real hardware. Here's a simple example with the "husky" font with the score = 100. The problem goes away if the player objects are positioned one more pixel to the right (HMP0 = #$D0 and HMP1 = #$E0).

 

post-48311-0-70226500-1543863854_thumb.png

 

husky.bas

 

score_graphics.asm

 

husky.bas.bin

  • Like 1

Share this post


Link to post
Share on other sites

Is there a way to get rid of the "waterfall effect" when using colored sprites and a colored playfield in the standard kernel?

 

If it were static I wouldn't mind, but it moves and ripples as the player objects move.

Share this post


Link to post
Share on other sites

Request:

This optimization I do that the bB compile passes should.

It is faster assembly and uses less ROM.

 

Can the compile stage find (between anything more complex than “=“) and put all the same value variables together regardless if they are on one line or four, and output more efficient & ROM saving assembly like this?

 

This:

Player0x=0: r=0 s=0 t=0

 

Compiles to this:

lda #0
sta Player0x
sta r
sta s
sta t

 

———

 

And this same thing:
Player0x=0
r=0
s=0
t=0

 

Compiles to this:
lda #0
sta Player0x
lda #0
sta r
lda #0
sta s
lda #0
sta t

 

 

Another example is this one line compiles more efficiently over one value each line:

DF0FRACINC=255: DF1FRACINC=255: DF2FRACINC=255: DF3FRACINC=255: DF4FRACINC=255

  • Like 1

Share this post


Link to post
Share on other sites

The multisprite kernel seems to have a problem with the "noscore" option - the timing seems to be off when the score is disabled. I confirmed this with a simple program that just does a drawscreen loop as well as the 9 objects example on RT's site.

 

attachicon.gifmulti.bas

 

attachicon.gifmulti.bas.bin

 

 

I have a fix for this issue. The problem happens because a "rts" is skipped when "noscore" is enabled. The original code for noscore in the Multisprite kernel is this:

 ifconst noscore
 jmp skipscore
 endif

I've changed it as follows, which fixes the issue:

 ifconst noscore
 pla
 pla
 jmp skipscore
 endif

Here's a patched version of the kernel for those who need the fix in the meantime:

 

multisprite_kernel.asm

  • Like 2

Share this post


Link to post
Share on other sites

My apologies if this has been mentioned already, but I couldn't find anything in the search.
inline ASM throws some warnings- "asm is not a recognized keyword" and more frustratingly "end is a duplicate label definition" if you use more than one block of inline asm, the latter has an annoying tendancy to pop up every time I write any line of code, anywhere in the program, which constantly snaps the window around to focus on where the warning is being generated from.

Share this post


Link to post
Share on other sites
40 minutes ago, Sknarp said:

My apologies if this has been mentioned already, but I couldn't find anything in the search.
inline ASM throws some warnings- "asm is not a recognized keyword" and more frustratingly "end is a duplicate label definition" if you use more than one block of inline asm, the latter has an annoying tendancy to pop up every time I write any line of code, anywhere in the program, which constantly snaps the window around to focus on where the warning is being generated from.

 

Are you using the latest version of VbB?

 

https://atariage.com/forums/topic/123849-visual-bb-10-a-new-ide-for-batari-basic/?do=findComment&comment=3537039

 

  • Like 1

Share this post


Link to post
Share on other sites

In Batari Basic, the if !x= statements don't seem to work for me at all. Perhaps I am doing somethhing wrong?

I.e. when I write:

-------------------------------------------

x=2

if !x=1 then COLUBK=Rand


-------------------------------------------

Shouldn't this make the background color change? I could replace "COLUBK" with a goto statement and it still won't go anywhere. "if not" statements seem to be broken/utterly useless.. or am I writing them wrong?

Please help.

Share this post


Link to post
Share on other sites
Just now, freshbrood said:

In Batari Basic, the if !x= statements don't seem to work for me at all. Perhaps I am doing somethhing wrong?

I.e. when I write:

-------------------------------------------

x=2

if !x=1 then COLUBK=Rand


-------------------------------------------

Shouldn't this make the background color change? I could replace "COLUBK" with a goto statement and it still won't go anywhere. "if not" statements seem to be broken/utterly useless.. or am I writing them wrong?

Please help.

 

Yep, you're doing it wrong:

 

https://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#boolean

 

https://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#if

 

Does "!x=1" work using any programming language? What are you wanting x to be equal to for something to happen?

Share this post


Link to post
Share on other sites

"The not-equal-to operator (!=) is not valid bB syntax. It does not work with batari Basic."


Is there another way to say "if x is not equal to"?


*Edit: My originial post was a typo. I meant to say if x!=


Anyway.. If x<2||x>2 then goto.. seems to work. Same effect. Just uses a bit more memory than I'd like. Oh well.


Thank you RT

Edited by freshbrood

Share this post


Link to post
Share on other sites
35 minutes ago, freshbrood said:

Anyway.. If x<2 || x>2 then goto.. seems to work. Same effect. Just uses a bit more memory than I'd like. Oh well.

 

If I'm reading that correctly, seems like you'd want to use "If x <> 2 then".

  • Like 2

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

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...