Subject: Re: [stella] Rubik Cube 3d From: Christopher Tumber <christophertumber@xxxxxxxxxx> Date: Mon, 23 Dec 2002 16:10:42 -0500 |
>I don't think that was used here, because the whole cube is 96 >pixels wide. That only leaves 32 CPU cycles. Yeah, but how many scanlines high is each cube? If you can minimise the overhead needed to repostion the Players/Missiles (Change colour and HMOVE maybe 8 or 9 cycles) you can use the rest of the cycles on all intervening to be priming the RAM routine (so it may be "doble-buffered" with two alternating RAM routines). They may have pulled a rabbit out of somewhere and obviously there's no proof until it's disassembled or I reproduce it (which I'm probably not going to go any farther with it's way to big a pain in the butt for a project with no real purpose...), but the attached looks pretty close despite being sloppy as hell.. (I'm obviously still several steps away particularly since I'm not loading anything into RAM but it looks right). Hrm, wait a minute. Maybe I have another idea... Chris...
;BEWARE! NO STACK!! processor 6502 include vcs.h org $F000 Start ; SEI ; Disable interrupts, if there are any. ; CLD ; Clear BCD math bit. ; LDX #$FF ; TXS ; Set stack to beginning. ; LDA #0 ;B1 STA 0,X ; DEX ; BNE B1 lda #255 sta PF0 sta PF1 sta PF2 lda #1 sta CTRLPF lda #00 STA COLUBK lda #0 STA COLUPF sta GRP0 sta GRP1 sta HMCLR lda #14 sta COLUP1 sta COLUP0 DrawLogo LDX #0 LDA #2 STA VSYNC ;Begin vertical sync. STA WSYNC ; First line of VSYNC STA WSYNC ; Second line of VSYNC. LDA #41 STA TIM64T LDA #0 STA CXCLR STA WSYNC ; Third line of VSYNC. STA VSYNC ; (0) DrawScreen LDA INTIM BNE DrawScreen ; Whew! STA WSYNC STA VBLANK ;End the VBLANK period with a zero. lda #0 sta GRP0 sta GRP1 sta NUSIZ0 ;3 Cycles sta NUSIZ1 ;3 Cycles sta WSYNC nop nop nop nop nop nop nop nop nop nop nop sta.w RESP0 nop nop nop nop nop nop nop nop nop nop nop nop lda #$76 sta COLUP0 lda #32 sta HMP0 sta WSYNC sta HMOVE sta WSYNC lda #128+64+32+16 sta.w GRP0 nop nop nop nop nop nop nop nop lda #$00 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF sta WSYNC lda #128+64+32+16+8+4+2+1 sta GRP0 lda #16 sta HMP0 nop nop nop nop nop nop lda #$00 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF sta WSYNC sta HMOVE lda #128+64+32+16+8+4 ;+2+1 sta GRP0 lda #5 sta.w NUSIZ0 ;3 Cycles nop nop nop nop lda #$00 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF ;--------------- lda #128 sta HMP0 sta WSYNC sta HMOVE lda #0 sta GRP0 lda #0 sta NUSIZ0 ;3 Cycles lda #$36 sta COLUP0 nop nop lda #$76 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF sta WSYNC sta HMOVE lda #128+64+32+16 sta GRP0 lda #0 sta NUSIZ0 ;3 Cycles lda #$36 sta COLUP0 nop nop lda #$76 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF sta WSYNC lda #128+64+32+16+8+4+2+1 sta GRP0 lda #16 sta HMP0 nop nop nop nop nop nop lda #$76 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF sta WSYNC sta HMOVE lda #128+64+32+16+8+4 ;+2+1 sta GRP0 lda #5 sta.w NUSIZ0 ;3 Cycles nop nop nop nop lda #$76 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF ;--------------- lda #128 sta HMP0 sta WSYNC sta HMOVE lda #0 sta GRP0 lda #0 sta NUSIZ0 ;3 Cycles lda #$1c sta COLUP0 nop nop lda #$76 STA COLUPF lda #$36 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF sta WSYNC sta HMOVE lda #128+64+32+16 sta GRP0 lda #0 sta NUSIZ0 ;3 Cycles lda #$1c sta COLUP0 nop nop lda #$76 STA COLUPF lda #$36 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF sta WSYNC lda #128+64+32+16+8+4+2+1 sta GRP0 lda #16 sta HMP0 nop nop nop nop nop nop lda #$76 STA COLUPF lda #$36 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF sta WSYNC sta HMOVE lda #128+64+32+16+8+4 ;+2+1 sta GRP0 lda #5 sta.w NUSIZ0 ;3 Cycles nop nop nop nop lda #$76 STA COLUPF lda #$36 STA COLUPF lda #$00 STA COLUPF lda #$00 STA COLUPF lda #0 sta GRP0 sta GRP1 ldy #20 next2: sta WSYNC nop nop nop nop nop nop nop nop nop nop nop lda #$76 STA COLUPF lda #$36 STA COLUPF lda #$1c STA COLUPF lda #$00 STA COLUPF dey bpl next2 skip: sta WSYNC ldy #100 nextblankline: sta WSYNC dey bne nextblankline STA VBLANK ; Make TIA output invisible, lda #35 sta TIM64T OverscanWait: lda INTIM bne OverscanWait JMP DrawLogo ;Continue forever. org $FFFC .word Start .word Start
Attachment:
Slopecubes.bin
Description: Binary data
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] Rubik Cube 3d, Thomas Jentzsch | Thread | [stella] Seeking ROM dumper info, Adam Wozniak |
Re: [stella] Rubik Cube 3d, Thomas Jentzsch | Date | [stella] Seeking ROM dumper info, Adam Wozniak |
Month |