Jump to content
IGNORED

Removing the gap between pf and score (Batari Basic + Assembly)


Recommended Posts

Hi guys, I begann with my new game and finished the really detailed intro (it tooks up early one bank :D ), but I have a problem right now. I use Batari Basic and a little bit of assembly.
Because I really will need space, I changed the original rutine for music, so of the volume is set to null, it won't read AUDF and AUDC, a lot of space the spare. :)
But here is my problem: In the intro, PF0 is set to %00000000, because the sky looks that way better as the girl is falling. In the actual game I set it to %11111111 to create walls on both sides. Because I really hate color dismatch, I sacrificed p variable for background colour, before every drawscreen there is a COLUBK=p line, then I want to change the background color to black at the end of the screen, and in the vblank, I change it back to "p".
So, the problem is, if I put this line:
lda $00
sta WSYNC
sta COLUBK
Only in the playerscores.asm, there will be a huge gap between the playfield and the scoreboard, and that is really ugly. So I thought I will search for a better way, modifying the std_kernel. I found out if I put the line above in the endkernel, before
stx PF1
stx PF2
stx PF0
The gap will disappear, but the last line of the playfield will be the standard mirrored playfield on the left side. Without WSYNC, the gap remains at the left edge (where the PF0 sets the wall) and there will be a little flicker of the pf color if the pf is scrolled.
So basically I would like to make the 12th invisible hline of the playfield black. Any ideas? :)

I tried to use CTRLPF, but it does nothing. I heard about something called oldscore mode that allows you to draw a nonmirrored playfield, but I did not find anything.

post-43241-0-08399400-1527401627_thumb.png

post-43241-0-91250600-1527401636_thumb.png

Edited by MemberAtarian
Link to comment
Share on other sites

CTRLPF controls the ball size and set the playfield bit to enable/disable score mode, priority over sprites(it said collision), and mirrored/symmetrical. Score mode uses the player 0 for the first half of the screen and player 1 color for second half. The score on combat is in that mode when it is drawing the scores.

You can see the list of vcs tia registers here: https://alienbill.com/2600/101/bin/vcs.h


stx PF1
stx PF2
stx PF0

Oh, you can put a value 0 to put in PF0, PF1, PF2 to turn off the playfield bits.

ldx #0

stx PF1
stx PF2
stx PF0

Adding ldx #0 will add 2 or 3 cycles. Make sure it doesn't go over 76 cycles. If it after a WSYNC which will halt the CPU until the line is finish on that line like

sta WSYNC
ldx #0
stx PF0
stx PF1
stx PF2
dey (if this is holding the value of the scanline before it hit overscan)

sta WSYNC
Then it won't show up in the middle of the scan line since it'll be 15 cycles. I do need to see the source of that file to be sure it won't mess up the scanline count. Supposely it draws 262 lines, 192 lines are the visible part of the screen.

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