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