[FC][魂斗罗][按键切子弹显示子弹]
本帖最后由 yandagui 于 2017-3-18 16:17 编辑2017.3.13
http://www.emu618.org/data/attachment/album/201703/13/212900gz83klfdlvdvkl3k.png
http://www.emu618.org/data/attachment/album/201703/13/212901w3u16m4g4dhqo38r.png
http://www.emu618.org/data/attachment/album/201703/13/212901f4z0b4mtmmb0jx24.png
**** Hidden Message ***** .ORG $936E ;CONTRA(J)
LDA $25
BEQ ADDR_93C9
ADDR_936E: LDA $0022 ;读取地址$22数据到累加器A($22==0,单人模式,$22==01双人模式)
ADDR_9370: LDY $001C ;读取地址$1C数据到寄存器Y
ADDR_9372: BEQ ADDR_9376 ;Z==1?如果结果为零则跳过$2字节
ADDR_9374: LDA #$01 ;读取地址$01数据到累加器A
ADDR_9376: STA $0000 ;将累加器数值送到地址$00
ADDR_9378: LDX $0004 ;读取地址$04数据到寄存器X
ADDR_937A: LDY #$08 ;读取立即数$04到寄存器Y
ADDR_937C: LDA $001C ;读取地址$1C数据到累加器A
ADDR_937E: BNE ADDR_9395 ;Z==0?如果结果不为零则跳过$15字节
ADDR_9380: LDY $0000 ;读取地址$00数据到寄存器Y
ADDR_9382: LDA $0038,Y ;读取地址$38,Y数据到累加器A($38==01,P1结束,$39==01,P2结束)
ADDR_9385: LDY #$08 ;读取立即数$04到寄存器Y
ADDR_9387: LSR ;逻辑右移
ADDR_9388: BCS ADDR_9395 ;C==1,有借位则跳过$B字节
ADDR_938A: LDY $0000 ;设置Y==#00
ADDR_938C: LDA $0032,Y ;读取地址$32,Y数据到累加器A
CLC
ADC #$02
ADDR_938F: LDY #$00 ;设置寄存器Y为$00
ADDR_9391: CMP #$08 ;比较Y==$04?
ADDR_9393: BCC ADDR_9397 ;C==0,有借位则跳过$2字节
ADDR_9395: LDA #$08 ;读取地址$04数据到累加器A
ADDR_9397: STA $0001 ;送入地址$01
ADDR_9399: DEC $0001 ;地址$01递减
ADDR_939B: BMI ADDR_93C3 ;N==1,结果为负则跳过$26字节
ADDR_939D: LDA #$08 ;设置纵坐标数值
ADDR_939F: STA $0200,X ;送入纵坐标地址
ADDR_93A2: LDA ADDR_93CA,Y ;读取图快号数据
ADDR_93A5: STA $0201,X ;送入图快号地址
ADDR_93A8: LDA $0000 ;读取属性值数据
ADDR_93AA: STA $0202,X ;送入属性值地址
ADDR_93AD: LSR ;逻辑右移
ADDR_93AE: LDA ADDR_93D2,Y ;读取横坐标数值
ADDR_93B1: BCC ADDR_93B5 ;C==0,有借位则跳过$2字节
PHA
TYA
PHA
LDA #$D4
STA $0200,X
PLA
TAY
PLA
ADDR_93B5: JSR WEAPON
ADDR_93B8: DEC $0007 ;地址$C7递减
ADDR_93BA: TXA ;X-->A
ADDR_93BB: CLC ;清除进位标志
ADDR_93BC: ADC $0010 ;加上地址$10的值
ADDR_93BE: TAX ;A-->X
ADDR_93BF: INY ;设置Y++
ADDR_93C0: JMP ADDR_9399 ;跳转到ADDR_9399
ADDR_93C3: DEC $0000 ;地址$00递减
ADDR_93C5: BPL ADDR_937A ;N==0,结果为正数则跳回$100-$B3=4D字节
ADDR_93C7: STX $0004 ;送入地址$04
ADDR_93C9: RTS ;程序转回-----------------------------
.ORG $FB60
ADDR_93CA:
.BYTE $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A ;生命图块号
.BYTE $02,$04,$06,$08,$FE,$FE,$FE,$FE ;GAME OVER图块号
ADDR_93D2:
.BYTE $14,$1C,$28,$34,$40,$4C,$58,$64 ;生命图块坐标
.BYTE $10,$1C,$28,$34,$40,$4C,$58,$64 ;GAME OVER图块坐标
.ORG $FB80
WEAPON:
STA $0203,X ;送入横坐标地址
PHP
PHA
TYA
PHA
CPY #$00
BNE LB
JSR S_WRITE ;第一个精灵
LB:
CPY #$01
BNE RE
JSR D_WRITE ;第二个精灵
RE:
PLA
TAY
PLA
PLP
RTS
S_WRITE:
PHA
TYA
PHA
S_CMP:
LDA $00
TAY
LDA $AA,Y ;读取武器值
AND #$10
BNE S_WEAPON
M_WEAPON: ;普通状态
LDA #$26
STA $0201,X
BNE RETURN
S_WEAPON: ;加速状态
LDA #$1C
STA $0201,X
RETURN:
PLA
TAY
PLA
RTS
D_WRITE:
PHA
TYA
PHA
WEAA:
LDY $00
LDA $AA,Y
AND #$0F
TAY
LDA DATA,Y
STA $0201,X
PLA
TAY
PLA
RTS
DATA: ;武器种类图块
.BYTE $24,$26,$20,$1C,$22 支持一下,人性化的修改。 多谢楼主的分享,修改辛苦了 很好的修改,感谢分享。 支持楼主 魂一代30条命的秘籍历历在目 多谢楼主分享 真的很赞,现在坚持这方面的人越来越少了。 下载完玩玩! 感谢楼主分享游戏 多谢楼主的分享{:4_143:} 很好的修改,感谢分享00
页:
[1]