Jump to content

Pantomchap

Members
  • Posts

    18
  • Joined

  • Last visited

Profile Information

  • Gender
    Male

Recent Profile Visitors

2,481 profile views

Pantomchap's Achievements

Space Invader

Space Invader (2/9)

0

Reputation

  1. I'm back here after some months. I have a very basic understanding of the 2600 and I've made a few demo thingies with sprites that can move up and down but I never found out how to move sprites horizontally. What do I use? Thanks.
  2. I found out the problem after reading this. Apparently the loop to draw the sprite cannot handle if the y position is 0 which caused the program to go haywire. So now it doesn't go under 1.
  3. Alright, good morning. So basically in the last two scanlines of the overscan, my program runs this: checkfire: sta WSYNC lda #%01000010 sta VBLANK lda #%01111111 eor INPT4 bmi fireisnotchecked sta WSYNC rts fireisnotchecked: sta WSYNC ldy $80 iny sty $80 rts What I was trying to do is make it so that the p0 sprite moves down when the fire button is pressed by player 0. This part of the code is what loads and stores the new Y position of the p0 sprite whenever the fire button is pressed. However, it only works if I check if INPT4 is not held down. If I reverse lda #%01111111 to lda #%10000000 The program goes haywire and Stella tells me that the framerate is ranging from 300-400 FPS. When I debug with Stella the VBLANK area seems to start somewhere in the middle of where the program would be drawing the visible picture. How is it that this is causing such a massive problem? Also, obviously I could have used bit INPT4 instead of lda #%01111111 eor INPT4 but I was trying to find if that one would work.
  4. So what it's supposed to do is move the player0 sprite when the player 0 fire button is pressed. However, it only works if I make it stop the player0 sprite when the button is pressed. Go to line 84 which says lda #%01111111 and turn it into lda #%10000000. It messes up the program completely somehow. I'm sorry for the horrible description of the bug. I'll post a much better explanation of the bug in the morning. panto_gametest.asm
  5. I fixed the VBLANK thing and the scanline count thing. I believe it should say "262 @ 60.00fps => NTSC" right? I now see some black from the VBLANK intruding in on the visible picture. Is this a problem with my program or Stella? panto_scoretest_5-21-2017-7.39PM.asm panto_scoretest_5-21-2017-7.39PM.bin
  6. This was exactly what I needed for testing the fire button input. Thanks a ton!
  7. So I was trying my hand at making an asymmetrical playfield, or at least only one side of the playfield existing. It worked well I would say. It cuts PF2 on scanline 3 right before it has a chance to be displayed on the right half of the screen. CTRLPF is set to #1. Also, the name of the file has nothing to do with the program's actual inner workings. I was thinking of making a display for a score but I decided it's better to leave something so complicated for later. Another thing, I had some comments in the .asm file but I decided to remove them because I didn't want to risk giving any incorrect information about the program. Any suggestions to make the code better or more efficient? panto_scoretest_5-21-2017-7.39PM.asm panto_scoretest_5-21-2017-7.39PM.bin
  8. I'm trying to read INPT4 but it seems like any load or store instruction changes their value as well. How do I prevent this? Setting D6 to 1 in VBLANK doesn't seem to help. Am I missing something? Here's the part of the code that I'm trying to use. It's located in the overscan section, 28 scanlines after the picture. It's supposed to change COLUBK which is read off of $80 when the picture is about to be drawn. lda #%01000000 sta VBLANK ldx INPT4 ;Hopefully read player0 fire button bne skipjump ;I seriously don't know what to use here jmp newcolubk skipjump lda #136 sta $80 sta WSYNC jmp picture newcolubk lda #$0E sta $80 sta WSYNC jmp picture
  9. Oh I get it now. Thank you so much. You've been a great help.
  10. How exactly do labels work? I've had a hard time learning their ways and I just can't seem to find out how to use them properly. I also would like to know how to use a branching operation without getting an error telling me that the location is too far away. Lastly, I would like to know if there is a way to make sure that code in a label is not executed when I don't want it to be. I hope this isn't too demanding. I've been living off of modifying the kernel that is used in the tutorial here and so far I haven't gone as far as making major changes like branching and new labels. Thanks for reading.
  11. So I have a reference on the 2600's specs and I found these here. Are they for reading input from the controller? If so, how do I read it? If not, what do I use to read the input? Thank you for reading this far.
  12. I recommend Batari Basic if you can get it to work. I unfortunately was not able to get BBasic to work on my Windows 10 computer so I'm stuck learning assembly. Batari Basic rids you of the pains of having to synchronize your code to each scanline but it is kinda limited compared to assembly which can use the full potential of the 2600. So in conclusion, use BBasic if you want to easily make fun little games for the 2600 that won't be exactly cutting-edge but still entertaining, or use Assembly to make games that can use the full power of the VCS. --- Ninjaedit: Also, I'm pretty sure this is the right forum. Oh yeah, welcome to the community!
  13. I must know. I also would like to know if other parts of the 2600 will use more time if I interact with them. Thanks!
  14. Hey everyone, I'm very new to programming with assembly. Anyways, from the tutorial in this section of the forums I played around with the first kernel that is presented in Session 8. I made the lines alternate their colors with it. I ran it with SECAM60 after being satisfied, and wow is it an eyesore. I attached an image of the screen when I ran it. Challenge: look at the SECAM60 screenshot for 30 seconds and then turn away. pantomchap_test_game_5-17-2017-2.27PM.bin
×
×
  • Create New...