Jump to content
IGNORED

DPC+ top row color fix


Lillapojkenpåön

Recommended Posts

This is just a simple fix for the top two lines having the same color

 

 

;***************************************************************
;
; 88 rows that are 2 scanlines high.
;
DF6FRACINC = 255 : DF4FRACINC = 255
DF0FRACINC = 128 : DF1FRACINC = 128 : DF2FRACINC = 128 : DF3FRACINC = 128
asm
LDA DF6FRACDATA ; bgcolor priming read (first value will be read twice)
LDA DF4FRACDATA ; pfcolor priming read (first value will be read twice)
end
;***************************************************************
;
; Displays the screen.
;
drawscreen
  • Like 4
Link to comment
Share on other sites

  • 2 years later...

That trick worked perfectly with Stella 5.1.3, but I just downloaded the latest version of Stella and the trick no longer works.

 

I tried different versions going back to Stella 6.0 and and the trick didn't work with any of them. Looks like the trick stopped working with Stella 6.0.

 

Do we have to do something extra now to make the trick work or is there something wrong with Stella?

Link to comment
Share on other sites

3 hours ago, Random Terrain said:

Looks like the trick wasn't supposed to work:

 

https://atariage.com/forums/topic/323611-do-you-have-an-atari-2600-and-harmony-cart/?do=findComment&comment=4878714

 

Is there an updated trick that might work on a real Atari 2600?

Please post the specific way to reproduce the bug and a test .bas source file that automatically demonstrates the issue.  I'll look at the kernel for you.

 

In the meantime, try this:

DPCplus_kernel.asm

Edited by orange808
Link to comment
Share on other sites

1 hour ago, orange808 said:

Please post the specific way to reproduce the bug and a test .bas source file that automatically demonstrates the issue.  I'll look at the kernel for you.

 

In the meantime, try this:

DPCplus_kernel.asm 19.58 kB · 0 downloads

 

Thanks. SpiceWare said there's a possibility that the trick is tied to a specific version of the DPC+ driver:

 

https://atariage.com/forums/topic/323564-stella-and-dpc/?do=findComment&comment=4878864

 

He'll check on that when he can find the time.

 

These two programs were working perfectly with the versions of Stella before 6.0:

 

test_bb_dpc_88_rows.bas

 

test_bb_dpc_176_rows.bas

 

For example, they work fine with Stella 5.1.3.

 

Without the trick, the top 2 rows of an 88 row DPC+ playfield would share the same color. And without the longer trick in the example program above, the top and bottom rows of a 176 row DPC+ playfield would be messed up.

  • Thanks 1
Link to comment
Share on other sites

3 hours ago, Random Terrain said:

 

Thanks. SpiceWare said there's a possibility that the trick is tied to a specific version of the DPC+ driver:

 

https://atariage.com/forums/topic/323564-stella-and-dpc/?do=findComment&comment=4878864

 

He'll check on that when he can find the time.

 

These two programs were working perfectly with the versions of Stella before 6.0:

 

test_bb_dpc_88_rows.bas 8.68 kB · 2 downloads

 

test_bb_dpc_176_rows.bas 11.94 kB · 2 downloads

 

For example, they work fine with Stella 5.1.3.

 

Without the trick, the top 2 rows of an 88 row DPC+ playfield would share the same color. And without the longer trick in the example program above, the top and bottom rows of a 176 row DPC+ playfield would be messed up.

Thanks.  Sounds like I really can't do anything to help with that.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Sorry for being inactive. but good to know I wasn't imagining this working on real hardware once.

I noticed as soon as this stopped working and tried to describe it to stephena with little success, I thought it was an emulator bug since it stopped working with the ADS update where Stella looked drastically different,

but I moved the priming reads to the kernel, after the start positions in VRAM has been set, and it worked,

so I told stephena that it wasn't a bug that it didn't work, if anything probably a bug that it used to work (it wasn't that either)

 

I put it with the other priming reads and everything worked fine, I also reported it to RevEng who added it to the github master.

 

 

setloopfrac

     lda dffraclow,x

     sta DF0FRACLOW,x

     lda dffrachi,x

     sta DF0FRACHI,x

     dex

     bpl setloopfrac

     ; lda #255

     STx DF5FRACINC ; x=255 right now

     STx DF7FRACINC

     lda DF5FRACDATA ; priming read

     lda DF7FRACDATA ; priming read

 

     LDA DF6FRACDATA ; priming read (so first bg color value won't be read twice)

     LDA DF4FRACDATA ; priming read (so first pf color value won't be read twice)

 

     ldx SpriteGfxIndex

     lda _NUSIZ1,x ; top NUSIZ/REFP

     sta NUSIZ1

     sta REFP1

 

Link to comment
Share on other sites

Link to comment
Share on other sites

Wow, that playfield editor is gonna save alot of time, PERFECT! ?

 

 

Have you tried if 176 looks correct with no priming reads at all? looks like it would, or with the same ones as 88, using an unmodified kernel?

and what happens to 44 and 22 for example with them? I assumed those two lines of assembly code would work for any normal row number,

If it doesn't a better fix for RevEng for the next release would be to find out what changed in the driver that prevents it from working now and change that back, or just change the driver if it doesn't break anything.

the playfield editor does the rest.

 

Edited by Lillapojkenpåön
Link to comment
Share on other sites

176 seems to only look normal if this is used:

   asm
   lda DF6FRACDATA
   lda DF4FRACDATA
   lda DF0FRACDATA
   lda DF1FRACDATA
   lda DF2FRACDATA
   lda DF3FRACDATA
end

So I have that in the code that is generated by the editor.

 

The editor also has this in the code when using 88 rows:

   asm
   lda DF6FRACDATA
   lda DF4FRACDATA
end

 

The Atari Background Builder by kisrael now has DPC+ options. You might want to check that out and see if you like that better since it has more tools.

Link to comment
Share on other sites

On 9/11/2021 at 11:11 AM, Random Terrain said:

176 seems to only look normal if this is used:


   asm
   lda DF6FRACDATA
   lda DF4FRACDATA
   lda DF0FRACDATA
   lda DF1FRACDATA
   lda DF2FRACDATA
   lda DF3FRACDATA
end

So I have that in the code that is generated by the editor.

 

The editor also has this in the code when using 88 rows:


   asm
   lda DF6FRACDATA
   lda DF4FRACDATA
end

 

The Atari Background Builder by kisrael now has DPC+ options. You might want to check that out and see if you like that better since it has more tools.

I prefer the rows wording over scanlines, and not having to download anything.

Both are missing the same thing I think,

being able to choose different rows for pf, fg and bg color.

 

For my scrolling platformer I have square pf pixels (22 rows) DF0FRACINC = 32 : DF1FRACINC = 32 : DF2FRACINC = 32 : DF3FRACINC = 32

but I color them with 88 rows of color, DF4FRACINC = 255

I understand you can just make two different ones and take the different data from each, but would be pretty nice to see the finished product if you want something to chew on ?

If you do, consider adding the space saving option "single color"

example:

 

   bkcolors: 

   $00

end

 

DF6FRACINC = 0

 

 

 

If not, an online sprite editor like Lewis suggested would also save alot of time.

Edited by Lillapojkenpåön
  • Like 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...