Subject: [stella] Colour Display Programme From: crackers@xxxxxxxx Date: Tue, 16 Sep 1997 19:27:01 -0400 (EDT) |
Well gang. I'm starting work on my Virtual Pet for the 2600 now. But the colours of the 2600 just seem kind of abstract to me. I mean just how does 11011010 look? So here's a simple, very simple, damn simple programme that let's you cycle through the colour pallet, one at a time and gives you a binary representation of what colour you are on with the PF2 register. Maybe someone can use this programme to actually assign some RGB values to the 2600's pallet. I've only tested it out on an emulator so far. Here's the programme. ---------------------------------------------------------------------------- processor 6502 VSYNC = $00 VBLANK = $01 WSYNC = $02 COLUPF = $08 COLUBK = $09 PF0 = $0D PF1 = $0E PF2 = $0F CXCLR = $2C SWCHA = $280 INTIM = $284 TIM64T = $296 COLOUR = $80 ;the value for the colour DELAY = $81 ;the value for the joystick delay org $F000 start SEI CLD LDX #$FF TXS LDA #$00 zero STA $00,X ;looks familiar, right? DEX ;typical zeroing routine BNE zero sta COLUBK sta PF0 sta PF1 sta PF2 sta COLUPF main JSR vertb ;main loop JSR draw JSR oscan JMP main vertb LDX #$00 ;vertical blank, We all know what this is about LDA #$02 STA WSYNC STA WSYNC STA WSYNC STA VSYNC STA WSYNC STA WSYNC LDA #$2C STA TIM64T LDA #$00 STA CXCLR STA WSYNC STA VSYNC RTS draw LDA INTIM BNE draw sta WSYNC sta VBLANK ldx #$C0 ;192 scanlines lda COLOUR ;loads the colour sta COLUBK ;into the playfield background sta PF1 ;also displays a binary representation to PF1 lda #$0F sta PF2 ;just to help the binary number look clear. doit STA WSYNC ;not much going on here, just repeat the dex ;same scanline 192 times beq done jmp doit done rts oscan jsr joy ;go check the joystick LDX #$1E waste STA WSYNC ;no game logic so let's blow the overscan DEX BNE waste RTS joy lda SWCHA ;check the joystick ports cmp #$7F ;see if it's moved right (joystick 1) beq right cmp #$BF ;see if it's moved left (joystick 1) beq left rts right inc DELAY ;our joystick delay timer is increased lda DELAY cmp #$1E ;check to see if we've had enough delay (30 frames) bpl clrup ;yep. Let's increase the colour rts left inc DELAY ;joystick timer increased lda DELAY cmp #$1E ;30 frames yet? bpl clrdwn ;yep, decrease colour rts clrup lda COLOUR cmp #$FE ;check to see if we've hit the maximum colour bne upit ;nope, then let's increase it lda #$00 sta DELAY ;reset joystick delay timer rts upit inc COLOUR ;okay... this is sloppy, but it works inc COLOUR ;increases the colour value to next setting lda #$00 sta DELAY ;reset joystick delay rts clrdwn lda COLOUR cmp #$00 ;see if we've hit minimum colour bne dwnit ;nope, then let's decrease it lda #$00 sta DELAY ;reset the joystick delay rts dwnit dec COLOUR ;yeah, I know, not exactly eligant, but dec COLOUR ;it increases the colour value to next setting lda #$00 sta DELAY ;reset joystick delay rts org $FFFC .word start .word start ---------------------------------------------------------------------------- I'm sorry I have to post my work as source code, but you see I'm a freenet user. So while I get the advantage of very inexpensive internet access, some of the frills like being able to attach a binary to a text message are unavailable to me. Incidently, colour appearance varies greatly between an emulator and a real 2600. So you'll want to check your colours on both systems to make sure they're okay. Now that I know what the colours look like for each value it will be easier to assign specific colours for different elements in my future projects. I know I could have made this programme more useful by drawing a hex representation of the colour with sprites, but I just wanted to whip this off quickly so I could get to work on my real programme. If someone else wants to fix this up then be my guest. CRACKERS (A fine capitalist tool from hell!!!!!) -- Accordionist - Wethifl Musician - Atari 2600 Collector | /\/\ *NEW CrAB URL* http://www.hwcn.org/~ad329/crab.html ***| \^^/ Bira Bira Devotee - FES Member - Samurai Pizza Cats Fan| =\/= -- Archives updated once/day at http://www.biglist.com/lists/stella/archives/ Unsubscribing and other info at http://www.biglist.com/lists/stella/stella.html
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] Where to take the 2600, PatMan | Thread | Re: [stella] Colour Display Program, Piero Cavina |
Re: [stella] Where to take the 2600, PatMan | Date | Re: [stella] Where to take the 2600, Glenn Saunders |
Month |