Re: [stella] Star Fire - Return of the Starfield ?!?

Subject: Re: [stella] Star Fire - Return of the Starfield ?!?
From: Manuel Polik <cybergoth@xxxxxxxx>
Date: Sun, 21 Jul 2002 23:51:59 +0200
Hi there!

I wrote:

>Now I'm thinking of alternatives. Does anybody have an 

So I spent the last two hours analyzing how other 
Starfields are made, which was quite disappointing.

Star Ship: Uhm... well ;-)

SW-TAG: Re-Using two particles à four times -> 15Hz 

Gyruss: Now that is interesting. The whole Starfield is 
generated using only 1 particle most of the time and 
should flicker extrem. I wonder why it doesn't seem to 
be too annoying...

Star Voyager: I had some hope for a special Imagic trick 
here, but they're cooking with water only, too :-) Just 
like Starmaster it's using the ball, wasting a complete 
scannline to reposition it.

Star Raiders: It's using all three particles, plus it 
divided the screnn into an upper and a lower region. Due 
to a midscreen repositioning it can display six 
particles at once, which is resulting in 12 stars with 
only 30Hz flicker. Quite clever, though I think it 
dosn't look too good, when the sprites are *trapped* in 
their part of the screen.

Most promising right now look indeed solutions based on 
Pauls suggestion, that is a more realistic starfield, 
like the ones utilized in 'Earth Dies Screaming' and 
'Solaris'. I'll yet have to analyze their code for 
hidden trapdors, though ;-)

I'll soon report on my further progress.

Following at the bottom is my 10 minutes worth of 
reverse-engineering Star Voyager. 
Strange programming style... :-)


------> Part of the Star Voyager kernel <-------

; Stop vertical blank

       STX    VBLANK  ; X->0
       DEX            ; X->FF
       STX    PF2     ;
       STA    WSYNC   ;
       STX    PF0     ;
       STX    PF1     ;

; Position first star:
       LDA    $F3     ;
       STA    HMBL    ; Fine Movement

       LDY    $E8     ;
       NOP            ;
L10CA: DEY            ;
       BPL    L10CA   ;
       STA    RESBL   ; 

       STA    WSYNC   ;
       STA    HMOVE   ;

       STA    WSYNC   ;3
       LDY    $83     ;3
       BEQ    L10E1   ;2
       DEY            ;2
       LDA    ($95),Y ;5
       STA    GRP1    ;3
       JMP    L10E4   ;3
L10E1: JSR    L1AC5   ; Waste 12 cycles
L10E4: LDY    $84     ;3
       BEQ    L10F0   ;2
       DEY            ;2
       LDA    ($93),Y ;5
       STA    GRP0    ;3
       JMP    L10F3   ;3
L10F0: JSR    L1AC5   ; Waste 12 cycles
L10F3: PHA            ;
       PLA            ; Waste 7 cycles
       INX            ; X->0
       STA    RESM1   ;3
       LDY    $83     ;3
       NOP            ;2
       STX    $8E     ;3
       LDA    $DD     ;3
       STA    $90     ;3
       TXA            ; A->0
       STA    HMCLR   ;3
       STA    PF2     ;3
       STA    PF1     ;3
       BEQ    L1117   ; Jump always

; Reposition Star / Waste a scannline
L110A: LDA    #$00    ;2
       STA    $8F     ;3
       LDY    $91     ;3
L1110: DEY            ;2
       BPL    L1110   ;2
       STA    RESBL   ;3

       STA    WSYNC   ;3
L1117: STX    HMOVE   ;3
       LDY    $83     ;3
       CPX    $A8     ;3
       BCC    L1126   ;2
       CPX    $AA     ;3
       BCS    L1126   ;2
       LDA    ($95),Y ;5
       INY            ;2
L1126: STA    GRP1    ;3
       STY    $83     ;3

; Do the crosshair
       LDA    #$00    ; 
       CPX    #$28    ; Reached line $28?
       BNE    L1132   ; N: Skip
       LDA    #$40    ; Y: Draw Crosshair
L1132: STA    PF2     ;

Archives (includes files) at
Unsub & more at

Current Thread