-
Posts
52 -
Joined
-
Last visited
About George Washingtoad
- Birthday 01/31/2001
Profile Information
-
Gender
Male
-
Location
North Carolina
Recent Profile Visitors
George Washingtoad's Achievements
Star Raider (3/9)
22
Reputation
-
Hey y'all. Having some issues regarding defining spaces. I know that it is extremly important when it comes to setting certain spaces for things in Ram so I really want to get it right. THis is my code now, all help (and pointers) are greatly appreciated ; '2600 for Newbies ; Session 21 - Sprites ; This kernel draws a simple box around the screen border ; Introduces sprites processor 6502 include "vcs.h" include "macro.h" ;---------------------------------------------------------- PATTERN = $80 TIMETOCHANGE = 120 Playfield_Length = 3 ;--------------------------------------------------------- ;I Figured SEG.U vars ORG $80 MyPF0 ds 3 MyPF1 ds 3 MyPF2 ds 3 ;------------------------------------------------------------------------------ SEG code ORG $F000 Reset ; Clear RAM and all TIA registers ldx #0 lda #0 Clear sta 0,x inx bne Clear ;------------------------------------------------ ; Once-only initialisation... lda #$45 sta COLUPF ; set the playfield colour lda #$56 sta COLUP0 lda #$67 sta COLUP1 lda #%00000000 sta CTRLPF ; reflect playfield ;------------------------------------------------ LDA #0 STA PATTERN MyPF0 .byte %01010101 .byte %10101010 .byte %01010101 MyPF1 .byte %10101010 .byte %01010101 .byte %10101010 MyPF2 .byte %01010101 .byte %10101010 .byte %01010101 StartOfFrame ; Start of new frame ; Start of vertical blank processing lda #0 sta VBLANK lda #2 sta VSYNC sta WSYNC sta WSYNC sta WSYNC ; 3 scanlines of VSYNC signal lda #0 sta VSYNC ;------------------------------------------------ ; 37 scanlines of vertical blank... ldx #0 VerticalBlank sta WSYNC inx cpx #37 bne VerticalBlank ;------------------------------------------------ ; Do 192 scanlines of colour-changing (our picture) LDX #192 Tick CPX Playfield_Length+1 BCC WRITEIN LDA #%11111111 STA PF0 STA PF1 STA PF2 THISISEND STA WSYNC dex BNE Tick ;------------------------------------------------ lda #%01000010 sta VBLANK ; end of screen - enter blanking ; 30 scanlines of overscan... ldx #0 Overscan sta WSYNC inx cpx #30 bne Overscan jmp StartOfFrame WRITEIN LDA MyPF0,X STA PF0 LDA MyPF1,X STA PF1 LDA MyPF2,X STA PF2 JMP THISISEND ;------------------------------------------------------------------------------ ORG $FFFA InterruptVectors .word Reset ; NMI .word Reset ; RESET .word Reset ; IRQ END In my IDE its saying that I have a label mismatch with MYPF0-2 in the WRITEIN method. That might have something to do withit
-
Hey there everyone, I just started learning to program the Atari 2600 in Assembly recently and I think that I have learned a great deal. However, I seem to have hit a road block. Initially, when I first started programming playfields and backgrounds, I plugged the values in line by line like this: .fctbNone{ color:#e0e0e0; }.fctbStyle0{ color:#adff2f;font-style:oblique; }.fctbStyle3{ color:#ffd700; }.fctbStyle5{ color:#ee82ee; }.fctbStyle4{ color:#00bfff; }.fctbStyle2{ color:#ffa500; }.fctbStyle1{ color:#00ffff;font-weight:bold; }.fctbStyle1Style3{ color:#00ffff;font-weight:bold; }.fctbStyle2Style3{ color:#ffa500; }.fctbStyle6{ color:#ff6347; }.fctbStyle0Style6{ color:#adff2f;font-style:oblique; }; < GAME TITLE >; < AUTOR > processor 6502 include "vcs.h" include "macro.h" ;---------- LABELS ----------;---------------------------- SEG ORG $F000Reset; Initialize TIA/RAM; ------------------ LDX #0 LDA #0 Clear STA 0,X INX BNE Clear ; Initialize Labels; ----------------- COMPILE_VERSION = NTSC NTSC =#1 LDA #%00000001 STA $82 LDA #$BC STA COLUPF LDA $82 STA CTRLPF ; Start Game; ----------StartOfFrame LDA #0 STA VBLANK LDA #2 STA VSYNC ; VSYNC Signal STA WSYNC STA WSYNC STA WSYNC LDA #0 STA VSYNC ; Vertical Blank LDX #0 VerticalBlank STA WSYNC INX CPX #37 BNE VerticalBlank ; Scanlines LDX #0IDIOT INX LDA #$C4 STA COLUBK STA WSYNC CPX #40 BNE IDIOT LDA #$C4 STA COLUPF LDA #$0 STA COLUBK LDA #%11111111 STA PF0 STA PF1 LDA #%10111111 STA PF2 MORAL INX LDA #$CA STA COLUBK STA WSYNC CPX #42 BNE MORAL LDA #%11100000 STA PF0 LDA #%11001111 STA PF1 LDA #%00011111 STA PF2CORAL INX LDA #$CA STA COLUBK STA WSYNC CPX #44 BNE CORAL LDA #%11000000 STA PF0 LDA #%10000111 STA PF1 LDA #%00001111 STA PF2NORAL INX LDA #$CA STA COLUBK STA WSYNC CPX #46 BNE NORAL LDA #%10000000 STA PF0 LDA #%00000011 STA PF1 LDA #%00000111 STA PF2STEVE INX LDA #$CA STA COLUBK STA WSYNC CPX #48 BNE STEVE LDA #%00000000 STA PF0 LDA #%00000001 STA PF1 LDA #%00000011 STA PF2PTEVE INX LDA #$CA STA COLUBK STA WSYNC CPX #50 BNE PTEVE LDA #0 STA PF0 STA PF1 STA PF2BIGB INX LDA #$CA STA COLUBK STA WSYNC CPX #110 BNE BIGB BIGBB INX LDA #$2E STA COLUBK STA WSYNC CPX #130 BNE BIGBB BIGBBB INX LDA #$2C STA COLUBK STA WSYNC CPX #150 BNE BIGBBB FED INX LDA #$0 STA COLUBK STA WSYNC CPX #192 BNE FED EndScreen LDA #%01000010 STA VBLANK ; Overscan LDX #0Overscan STA WSYNC INX CPX #30 BNE Overscan ; Next Frame ; ---------- JMP StartOfFrame ORG $FFFA .word Reset .word Reset .word Reset END Thanks all! But while I was continuing in the tutorials, I found that my original methodology isnt really going to work (or will it? please let me know!) especially working with a great deal of sprites and backgrounds. So, I have found that most people tend to do play fields more like this: .fctbNone{ color:#e0e0e0; }.fctbStyle0{ color:#adff2f;font-style:oblique; }.fctbStyle3{ color:#ffd700; }.fctbStyle5{ color:#ee82ee; }.fctbStyle4{ color:#00bfff; }.fctbStyle2{ color:#ffa500; }.fctbStyle1{ color:#00ffff;font-weight:bold; }.fctbStyle1Style3{ color:#00ffff;font-weight:bold; }.fctbStyle2Style3{ color:#ffa500; }.fctbStyle6{ color:#ff6347; }.fctbStyle0Style6{ color:#adff2f;font-style:oblique; }; < GAME TITLE >; < AUTOR > processor 6502 include "vcs.h" include "macro.h" ;---------- LABELS ----------;---------------------------- SEG ORG $F000Reset; Initialize TIA/RAM; ------------------ LDX #0 LDA #0 Clear STA 0,X INX BNE Clear ; Initialize Labels; ----------------- COMPILE_VERSION = NTSC NTSC =#1 LDA #%00000001 STA $82 LDA #$BC STA COLUPF LDA $82 STA CTRLPF PFG0 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010PFG1 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010PFG2 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010 .byte %10101010; Start Game; ----------StartOfFrame LDA #0 STA VBLANK LDA #2 STA VSYNC ; VSYNC Signal STA WSYNC STA WSYNC STA WSYNC LDA #0 STA VSYNC ; Vertical Blank LDX #0 VerticalBlank STA WSYNC INX CPX #37 BNE VerticalBlank ; Scanlines LDX #0 ;THIS AREA IS ENCLOSED FOR THE PASTEINGLDY #0Woah LDA PFG0,X STA PF0 LDA PFG1,X STA PF1 LDA PFG2,X STA PF2 INX STA WSYNC cpx #190 bne Woah;FINISH AREA LDA %00000000 STA PF0 STA PF1 STA PF2FED INX LDA #$0 STA COLUBK STA WSYNC CPX #192 BNE FED EndScreen LDA #%01000010 STA VBLANK ; Overscan LDX #0Overscan STA WSYNC INX CPX #30 BNE Overscan ; Next Frame ; ---------- JMP StartOfFrame ORG $FFFA .word Reset .word Reset .word Reset END So once I tested this I found that I only got some of the playfield filled, the other parts are random. why is this? Can it be fixed?
-
Season 8 ~ Week 4 ~ Halloween Special!
George Washingtoad replied to Vocelli's topic in 2600 High Score Club
-
Season 8 ~ Week 3 ~ Demon Attack
George Washingtoad replied to Vocelli's topic in 2600 High Score Club
Ive been trying to get six seconds for a while now but it just seems random. I still get the bonus with this anyways though. -
Season 8 ~ Week 3 ~ Demon Attack
George Washingtoad replied to Vocelli's topic in 2600 High Score Club
yeah its around 9 42 now over here on the east coast -
Season 8 ~ Week 3 ~ Demon Attack
George Washingtoad replied to Vocelli's topic in 2600 High Score Club
Wow, cant believe I havent played this game before, its really good! Wasnt really able to play at all this week due to school so I had to funnel all of my effort into around four hours to make the mid night deadline. My thumb is destroyed from spamming that button, by the time I hit 100,000 I just wanted to toss the controller to be done with it! Well at least I got the rollage though. Whew! -
Season 8 ~ Week 2 ~ Cosmic Ark
George Washingtoad replied to Vocelli's topic in 2600 High Score Club
-
Season 8 ~ Week 1 ~ Dragonfire
George Washingtoad replied to Vocelli's topic in 2600 High Score Club
Wait we get double points if its our first time competing? its mine, I dont know if mine counts though -
Season 8 ~ Week 1 ~ Dragonfire
George Washingtoad replied to Vocelli's topic in 2600 High Score Club
-
Season 8 ~ Week 1 ~ Dragonfire
George Washingtoad replied to Vocelli's topic in 2600 High Score Club
I use a Sega Genesis controller, much easier on my wrist. -
Season 8 ~ Week 1 ~ Dragonfire
George Washingtoad replied to Vocelli's topic in 2600 High Score Club
100% True! If you dont get moving the moment after you die the Dragon WILL rape you. you lose like 3 lives in 5 seconds! A little tip though, whenever you're leaving the door go diagonal left. That way the dragon cant hit you immediately. However if you stop moving, You're Toast! -
Season 8 ~ Week 1 ~ Dragonfire
George Washingtoad replied to Vocelli's topic in 2600 High Score Club
Didn't want to post a new score till i passed 100k. First off I just want to thank the HSC for choosing DragonFire, now its one of my favorite atari games. When I first played it i died in like a few minutes so I just gave up because i thought that it was just another bad game from a bad year. Now that I have been forced to practice I see that there is actually a lot of skill and patience involved and one you hit certain scores you feel like a darn WIZARD. Folks dont give up on this game after one time, its definitely worth a replay! 128620 -
Season 8 ~ Week 1 ~ Dragonfire
George Washingtoad replied to Vocelli's topic in 2600 High Score Club