Committing before converting sources for Ophis

This commit is contained in:
2012-11-04 11:25:30 -05:00
parent 86c65ebe7b
commit 4c5b4719fa
2 changed files with 60 additions and 14 deletions

View File

@@ -8,7 +8,8 @@ pad1a=$0015
pad1b=$0016 pad1b=$0016
pad1select=$0017 pad1select=$0017
pad1start=$0018 pad1start=$0018
pad1left=$0019 pad1up=$0019
pad1right=$001A pad1down=$001A
pad1up=$001B pad1left=$001B
pad1down=$001C pad1right=$001C
pad1areleased=$001D

View File

@@ -171,6 +171,48 @@ _MAIN_LoadPaletteLoop:
STA playerx STA playerx
STA playery STA playery
_MAIN_loop: _MAIN_loop:
LDA #$01
STA $4016
LDA #$01
STA $4016 ; $4016 is the controller port, this tells both
;; controllers to latch their buttons and
;; make data available
LDA #$0
STA pad1areleased
LDA $4016
AND #%00000001
BNE _MAIN_loop_pad1a_finished
_MAIN_loop_pad1a_release:
PHA
LDA #pad1a
AND #%00000001
PLA
BNE _MAIN_loop_pad1a_finished
LDX #$1
STX pad1areleased
_MAIN_loop_pad1a_finished:
STA pad1a
LDA $4016
_MAIN_loop_pad1b_finished:
STA pad1b
LDA $4016
_MAIN_loop_pad1sel_finished:
STA pad1select
LDA $4016
_MAIN_loop_pad1start_finished:
STA pad1start
LDA $4016
_MAIN_loop_pad1up_finished:
STA pad1up
LDA $4016
_MAIN_loop_pad1down_finished:
STA pad1down
LDA $4016
_MAIN_loop_pad1left_finished:
STA pad1left
LDA $4016
_MAIN_loop_pad1right_finished:
STA pad1right
JMP _MAIN_loop ;; Loop forever JMP _MAIN_loop ;; Loop forever
NMI: NMI:
@@ -183,28 +225,31 @@ NMI:
LDA #HIGH(sprMarioData) ; "" LDA #HIGH(sprMarioData) ; ""
STA curSpriteDataHi ; "" STA curSpriteDataHi ; ""
_NMI_CopyMarioToOAM: _NMI_CopyMarioToOAM:
LDA playery LDA playery ; set Y position
CLC CLC
ADC sprMarioData, x ADC sprMarioData, x
STA $0200, x STA $0200, x
INX INX
LDA sprMarioData, x ; set tile number
LDA sprMarioData, x
STA $0200, x STA $0200, x
INX INX
LDA pad1a
LDA sprMarioData, x AND #%00000001
BNE _NMI_CopyMarioToOAM_padup
LDA #$03
JMP _NMI_CopyMarioToOAM_paddone
_NMI_CopyMarioToOAM_padup:
LDA sprMarioData, x ; set attributes
_NMI_CopyMarioToOAM_paddone:
STA $0200, x STA $0200, x
INX INX
LDA playerx ; set X position
LDA playerx
CLC CLC
ADC sprMarioData, x ADC sprMarioData, x
STA $0200, x STA $0200, x
INX INX
INY ; increment the sprite counter
INY CPY curSpriteLen ; any more sprites in the current multisprite?
CPY curSpriteLen
BNE _NMI_CopyMarioToOAM BNE _NMI_CopyMarioToOAM
;; We need to copy all our OAM data to put sprites on screen during ;; We need to copy all our OAM data to put sprites on screen during