the cutting room mirror

Star Wars: The Empire Strikes Back (NES)

This article has a talk page!
view on tcrf.net

To do:
Document the prototype. https://archive.org/details/star-wars-empire-strikes-back-nes-prototype

The NES version of Star Wars: The Empire Strikes Back is a ridiculously difficult side-scroller based on the classic 1980 movie.

"Choose the force!"

Sound Test#

Star_Wars_-_The_Empire_Strikes_Back_(U)_-!--0.png‎ Star_Wars_-_The_Empire_Strikes_Back_(U)_-!--1.png‎ Star_Wars_-_The_Empire_Strikes_Back_(U)_-!--2.png‎

Press Left + Select simultaneously at the "A long time ago, in a galaxy far, far, away..." screen. Press Select to cycle between "musical sequences", "empire soundfx", and "digital sounds".

Developer Credits#

In the first level, head leftward through the caves until you reach a large textureless wall of ice. This wall can be destroyed in places with your blaster or lightsaber. Once through, climb all the way up until you reach a Force Power item. Collecting this item will trigger a brief credits sequence featuring pictures of the developers.

Uncompiled Code#

The US and European version have some code starting at 0xFEE5, while the Japanese version has some different code starting at 0x13E1A. These fragments have been combined here for the sake of completeness.

BESPIN.CHR  ;BANK $C4
    ORG $1DE0,12,C
    INCL 'FONTC.CHR 






    ;************************************
    ;*
    ;* SPEEDER SCENE BACKGROUNDS
    ;*
    ;************************************





    ORG $2000,12,C  ;BANK $C8
    INCL 'LUKEK.CHR         ;LUKE ATTACKING WALKER
    ORG $2400,12,C  ;BANK $C9
    INCL 'REBE


                 H.2001     ;SETUP LEFT SIDE SCREEN BLANKING
    LDA #$FF
    STA SPEEDER.INT     ;ACTIVATE SPLIT SCREEN MODE
    JSR SET.DO.UNBLANK
    JMP SPEEDER.SCENE




    RTS




    BEQ .10         ;- NO
    JMP .RESTART


.10
    LDY #0
    JSR SET.CAPOS
    JSR MOVE.CAMERA

    LDA #0
    STA XOFFSET+1
    LDA #1
    STA YOFFSET+1
    LDX #0
    JSR MOVE.OBJECT

    LDA OBJ.YPOSHI
    LDX OBJ.YPOSLO
    CMP #5
    BNE .15
    CPX #$A0        ;TIME FOR TILE SET SWITCH?
    BNE .15         ;- NO

    LDA CHANGE2
    STA TILE.LIST
    LDA CHANGE2+1
    STA TILE.LIST+1
    LDA CHANGE2+2
    STA SCREEN.LIST
    LDA CHANGE2+3
    STA SCREEN.LIST+1
    LDA CHANGE2+4
    STA TILE.INFO
    LDA CHANGE2+5
    STA TILE.INFO+1
    JMP .LOOP2

    
.15
    CMP #6
    BCC .LOOP2
    CPX #$30        ;TIME FOR COLOR PALETTE

$74,$20 ; 137
 DB $20,$3C,$60,$94,$C8,$B8,$50,$A0,$74,$40,$B4,$68,$10,$50,$E0,$40 ; 138
 DB $28,$54,$2A,$76,$55,$3F,$15,$0E,$74,$20,$74,$00,$3A,$08,$0F,$01 ; 139
 DB $80,$C0,$A0,$A8,$AF,$A9,$A8,$A9,$00,$00,$40,$40,$40,$46,$47,$47 ; 140
 DB $01,$03,$03,$05,$07,$C5,$25,$25,$00,$00,$00,$02,$00,$02,$C2,$C2 ; 141
 DB $02,$02,$87,$05,$44,$A2,$31,$D0,$0C,$04,$08,$08,$08,$04,$02,$C0 ; 142
 DB $72,$2A,$34,$1D,$1F,$0F,$04,$00,$40,$40,$40,$20,$20,$10,$08,$05 ; 143
 DB $80,$90,$D8,$48,$28,$48,$28,$08,$

(Source: Original TCRF research)