[FC][魂斗罗旋风终板END暂停显菜单]
本帖最后由 yandagui 于 2016-11-19 23:11 编辑[魂斗罗旋风终板END暂停显菜单]
作者:FlameCyclone(flamecyclone.ys168.com)
时间:2016/11/19 21:46:00
更新日志:
2016.11.19:加入暂停显菜单(共5页).
2016.11.12:加入无限跳跃.
2016.11.12:加入速度调节.
2016.11.11:加入敌我子弹对消功能.
2016.11.11:加入全屏闪灭功能.
2016.06.08:加入全屏瞄准功能.
2016.05.31:加入弹速调节功能.
2016.01.01:加入高难度模式.
2015.12.12:修复消除威胁不足,使得移动BOSS关卡(第2,4,5,6)正常通过.
2014.07.05:由于对打功能不完善,直接去除,更改为生命锁定.
2014.07.05:双人切换功能优化.
2014.06.01:修复第三关浮空到BOSS前必须关闭浮空后跳跃才能见BOSS的麻烦.
2014.06.01:取消生命锁定,改为生命锁定模式下剩余生命不会少于一条.
2014.01.18:修复GAME OVER字样只有G和O的错误,原来想拉大字母间距离,看来行不通.
2014.01.18:浮空模式下,P2飞行高度未限制导致死亡,原来是指令本该用绝对X变址的被用成了绝对寻址.
2014.02.08:拿手机无聊时又发现一些错误,所以修正生命剩余勋章显示的错误(某天用读卡器插在DVD上测试发现机器读不了卡,原因是目录级数超过三级,只有刻录成光盘来测试,结果发现生命勋章的显示竟然无压力!)
2014.02.13:加入自动演示通关.
内容:
23.暂停菜单: 暂停后,自动显示菜单,选择键翻页,方向键和BA键进行各种功能的开关操作.
22.无限跳跃: 暂停后,选择键4次,按下开启,开启后游戏时无限跳跃.
21.速度调节: 暂停后,选择键4次,按左右调节行走速度(0-3级).
20.子弹对消: 暂停后,选择键4次,再按A键切换,此时敌人子弹可以打掉.
19.全屏闪灭: 暂停后,选择键4次,再按B键切换,开启后游戏时按选择键屏幕内敌人闪灭.
18.全屏瞄准: 暂停后,选择键2次,再按B开启/关闭,子弹对消开启时无效.
17.弹速调节: 暂停后,选择键3次,下开启,非暂停时按选择键调节,默认为1级,共5级.
16.困难模式: 暂停后,选择键3次,右键切换,我不相信你能够无伤通关.
01.子弹切换: 暂停后,选择键0次,上=快S,下=快L,左=快M,右=快F,B=快普通,A=取消当前子弹加速状态.
02.无敌锁定: 暂停后,选择键1次,上开启/关闭,不用讲了,金身无敌.
03.生命锁定: 暂停后,选择键1次,下开启/关闭,生命锁定为16条.
04.角色双控: 暂停后,选择键1次,左开启/关闭,无非就是主机控制副机.
05.生命底限: 暂停后,选择键1次,右开启/关闭,锁定剩余生命数不少于1条.
06.一击必杀: 暂停后,选择键1次,再按B开启/关闭,即使是第8关BOSS,一发花生米依然要其老命.
07.角色浮空: 暂停后,选择键1次,再按A开启/关闭,第三关浮空时按选择键向上卷画面轴.
08.弹数加强: 暂停后,选择键2次,上开启/关闭,此时所有子弹发射数为15发.
09.皮肤更换: 暂停后,选择键2次,下开启/关闭,主机开启时橙黄色,副机开启时为蓝色.
10.混合子弹: 暂停后,选择键2次,左开启/关闭,此时连射时所有子弹混合.
11.敌人锁定: 暂停后,选择键2次,右开启/关闭,此时敌人原位跑不动.
12.跳过一关: 暂停后,选择键3次,再按B使用,使用后可以直接到下一关.
13.单双切换: 暂停后,选择键3次,再按A键切换单双人游戏模式.
14.子弹方向: 暂停后,选择键3次,上开启/关闭,开启后发射的子弹攻击方向会随着操作的方向按键变化,第二关和第四关的小关建议关闭(开启的话打中敌人太难了哦).
15.消除威胁: 暂停后,选择键3次,左开启/关闭,此时游戏时按B键使得移动物体被消除。
A.做了一些汉化(小字体),剧情,关卡名及通关后的文字未汉化.
B.自动演示通关,双人合体打通关,演示时有背景音乐,通关后一样会有结尾及恐怖台词,之后游戏进入选关(相当于游戏自动开始了).注:通关后P1及P2会获得16条生命!也就是说看完演示自动开始后第一版有16条生命!
C.生命显示加强:最大显示15个剩余生命勋章!电脑端请开启精灵超过8个(这样勋章不会闪烁),手机端认命了,不过不影响正常操作.
如果有什么好的修改建议,恳请通过QQ(1490868135)联系我(也许我不在线,可以留言在QQ里)
欢迎大家转载,转载时必须注明出处.
**** Hidden Message *****
忙了一个星期,觉都没睡好,眼睛也疲惫不堪啊.终于找到解决方法了,目前VIRTUANES运行不了,请使用其他模拟器玩.
这几天的劳动成果如下: .ORG $B400
PROREG:
PHA
TXA
PHA
TYA
PHA
LDA $25
CMP #$01
BNE RE
LDA $010A
CMP #$00
BEQ P1
RE:
JMP PPUWRITE
P1: ; 条件判断
LDA $7FFF
CMP #$FF
BNE P1RP
LDA $7FA0
CMP #$00
BNE P1CMP
LDA $2001
PHA
LDA #$00
STA $2001
LDA #$FF
STA $7FA0
JSR CLEANA
PLA
STA $2001
JMP PPUWRITE
P1CMP:
LDA $7FFF
CMP #$00
BNE RE
P1RP:
LDA $2002
LDA #$00
STA $2001
LDA #$FF
STA $7FFF
STA $7FA0
JSR COPYPPU
PIRP2:
JSR CLEANA
JMP PPUWRITE
COPYPPU:
L0:
LDA $30
CMP #$02
BNE UNPROFC
LDA $FC
STA $7EFC
LDA #$00
STA $FC
UNPROFC:
LDA $FD
STA $7EFD
LDA $FF
STA $7EFF
LDA #$00
STA $FD
LDA #$B0
STA $FF
LDA $07C1
STA $7FC1
LDA #$3F
STA $2006
LDA #$01
STA $2006
LDA #$24
STA $2007
LDA $07F6
STA $7FFE
LDA $00FE
STA $7FFD
LDX #$00
LDY #$00
LDA $BD
PHA
LDA $BC
PHA
LDA $BB
PHA
LDA $BA
PHA
LDA $B9
PHA
LDA $B8
PHA
LDA #$00
STA $B8
STA $B9
STA $BA
STA $BB
STA $BC
STA $BD
LDA #$00
STA $BA
LDA #$20
STA $BB
LDA #$00
STA $BC
LDA #$60
STA $BD
L1: ; PPU复制
LDA $BB
CMP #$30
BNE L2
LDA $BA
CMP #$00
BEQ PROADPLA
L2:
LDA $BB
STA $2006
LDA $BA
STA $2006
L3:
LDA $2007
LDA $2007
STA ($BC),Y
L4:
LDA #$00
STA $2000
INX
INC $BA
INC $BC
CPX #$00
BNE L1
INC $BB
INC $BD
JMP L1
PROADPLA: ;出栈
PLA
STA $B8
PLA
STA $B9
PLA
STA $BA
PLA
STA $BB
PLA
STA $BC
PLA
STA $BD
CPRE:
RTS
CLEANA: ; PPU清空
LDA $BD
PHA
LDA $BC
PHA
LDA $BB
PHA
LDA $BA
PHA
LDA $B9
PHA
LDA $B8
PHA
LDA #$00
STA $B8
STA $B9
STA $BA
STA $BB
STA $BC
STA $BD
LDX #$00
LDY #$00
LDA #$00
STA $BA
LDA #$20
STA $BB
CL1:
LDA $BB
CMP #$30
BNE CL2
LDA $BA
CMP #$00
BEQ FREEWRIYE
CL2:
LDA $BB
STA $2006
LDA $BA
STA $2006
CL3:
LDA #$00
STA $2007
CL4:
LDA #$00
STA $2000
INX
INC $BA
CPX #$00
BNE CL1
INC $BB
JMP CL1
FREEWRIYE:
JSR FREE
CLEANF: ; 恢复现场
LDA #$08
STA $FE
LDA #$00
STA $07F6
LDA #$24
STA $7FC0
PLA
STA $B8
PLA
STA $B9
PLA
STA $BA
PLA
STA $BB
PLA
STA $BC
PLA
STA $BD
CLRF:
RTS
W_DATA:
.BYTE $00,$01,$02,$03,$04
W_PPU:
.BYTE $98,$97,$90,$9D,$96
P1_STRING:
.BYTE $9A,$82,$00 ;"P1"
P2_STRING:
.BYTE $9A,$83,$00 ;"P2"
WEAPON_STRING:
.BYTE $A1,$8F,$8B,$9A,$99,$98,$00;"WEAPON"
RELIFE_STRING:
.BYTE $9C,$8F,$96,$93,$90,$8F,$00;"RELIFE"
P1_PPU:
LDX #$00
P1_PPUW:
JSR PPUADDR_PROCESS
LDA P1_STRING,X
STA $2007
INX
INC $BA
CPX #$03
BCC P1_PPUW
LDX #$00
RTS
P2_PPU:
LDX #$00
P2_PPUW:
JSR PPUADDR_PROCESS
LDA P2_STRING,X
STA $2007
INX
INC $BA
CPX #$03
BCC P2_PPUW
LDX #$00
RTS
LDA $BB
STA $2006
LDA $BA
STA $2006
RTS
PLAYERLIFE:
JSR LIFETODEC
LIFEPPU1:
LDX #$00
LIFEPPU1RE:
JSR PPUADDR_PROCESS
LDA RELIFE_STRING,X
STA $2007
INX
INC $BA
CPX #$07
BCC LIFEPPU1RE
LIFEDEC: ;生命显示写入
LDX #$00
LIFEDECRE:
LDA $7A03,X
CLC
ADC #$81
STA $2007
INX
INC $BA
CPX #$03
BCC LIFEDECRE
LDX #$00
RTS
LIFETODEC: ;十进制转换
LIFEL1: ;initialise
STA $7A00 ;$7A00=F3
LDA #$00
STA $7A03 ;$7A03=00
STA $7A04 ;$7A04=00
STA $7A05 ;$7A05=00
LIFEL2: ;copy data $7A00 to 6001
LDA $7A00
STA $7A01
LIFEL3: ;hundred
LDA $7A01
CMP #$64
BCC LIFEL6 ;$7A01<100 goto L6
LIFEL4:
LDA $7A01
SEC
SBC #$64 ;$7A01=$7A01-100
STA $7A01
INC $7A03 ;hundred++
LIFEL5:
LDA $7A01
CMP #$64
BCS LIFEL4 ;$7A01>100 goto L4
LIFEL6: ;decade
LDA $7A01
CMP #$0A
BCC LIFEL9 ;$7A01<10 goto L9
LIFEL7:
LDA $7A01
SEC
SBC #$0A
STA $7A01 ;$7A01=$7A01-10
INC $7A04 ;decade++
LIFEL8:
LDA $7A01
CMP #$0A
BCS LIFEL7 ;$7A01>10 goto L7
;unit
LIFEL9:
LDA $7A01 ;$7A05=$7A01
STA $7A05 ;unit
RTS ;return
WEA: ;武器ppu写入
LDX #$00
WEARE:
JSR PPUADDR_PROCESS
LDA WEAPON_STRING,X
STA $2007
LDA #$00
STA $2000
INX
INC $BA
CPX #$07
BCC WEARE
READ_WEA:
LDA $B9
AND #$10
BEQ NWEA
SWEA:
LDA #$9D
STA $2007
LDA #$00
STA $2000
INC $BA
LDX #$00
JMP WEAREAD
NWEA:
LDA #$8D
STA $2007
LDA #$00
STA $2000
INC $BA
LDX #$00
WEAREAD:
LDA $B9
AND #$EF
CMP W_DATA,X
BNE WEACMP
LDA W_PPU,X
STA $2007
LDA #$00
STA $2000
WEACMP:
INX
CPX #$05
BCC WEAREAD
RTS
PPUWRITE:
PLA
TAY
PLA
TAX
PLA
LDA $25
CMP #$00
BEQ WP1
LDA $25
CMP #$01
BNE WRE
LDA $F5,X
AND #$EF
BEQ WRE
LDA #$00
STA $7FA0
WRE:
JMP $A000
WP1:
LDA $7FFF
CMP #$FF
BNE WRE
LDA #$00
STA $2001
LDA $BD
PHA
LDA $BC
PHA
LDA $BB
PHA
LDA $BA
PHA
LDA $B9
PHA
LDA $B8
PHA
LDA #$00
STA $B8
STA $B9
STA $BA
STA $BB
STA $BC
STA $BD
LDA #$00
STA $7FFF
LDA $30
CMP #$02
BNE UNPROCPL
LDA $7EFC
STA $FC
LDA #$00
STA $A4
STA $A5
UNPROCPL:
LDA $7EFD
STA $FD
LDA $7EFF
STA $FF
WL0:
LDX #$00
LDY #$00
LDA #$00
STA $BA
LDA #$20
STA $BB
LDA #$00
STA $BC
LDA #$60
STA $BD
WL1:
LDA $BD
CMP #$70
BNE WL2
LDA $BC
CMP #$00
BEQ WLR
WL2:
LDA $BD
STA $2006
LDA $BC
STA $2006
WL3:
LDA ($BC),Y
STA $2007
WL4:
LDA #$00
STA $2000
INX
INC $BA
INC $BC
CPX #$00
BNE WL1
INC $BB
INC $BD
JMP WL1
WLR:
LDA $7FFE
STA $07F6
LDA $7FFD
STA $00FE
LDA $7FC1
STA $07C1
LDA #$3F
STA $2006
LDA #$01
STA $2006
LDA $07C1
STA $2007
LDA #$00
STA $2000
PLA
STA $B8
PLA
STA $B9
PLA
STA $BA
PLA
STA $BB
PLA
STA $BC
PLA
STA $BD
JMP $A000
FREE: ; 暂存器保护
LDA $BD
PHA
LDA $BC
PHA
LDA $BB
PHA
LDA $BA
PHA
LDA $B9
PHA
LDA $B8
PHA
LDA #$00
STA $B8
STA $B9
STA $BA
STA $BB
STA $BC
STA $BD
WEAWRITE: ;武器ppu写入
LDX #$00
LDA $AA
STA $B9
WEAINI: ;地值初始化
LDA #$A4
STA $BA
LDA #$20
STA $BB
JSR WEA
LDX #$00 ;武器ppu写入
LDA $AB
STA $B9
LDA #$B3
STA $BA
LDA #$20
STA $BB
JSR WEA
LDX #$00
LDA #$E4
STA $BA
LDA #$20
STA $BB
LDA $32
JSR PLAYERLIFE
LDX #$00
LDA #$F3
STA $BA
LDA #$20
STA $BB
LDA $33
JSR PLAYERLIFE
JSR PLAYER_01_PPU
JSR PLAYER_02_PPU
JSR PAGE_PPU
JSR PAGESELECT
PLAPRO: ;恢复现场
PLA
STA $B8
PLA
STA $B9
PLA
STA $BA
PLA
STA $BB
PLA
STA $BC
PLA
STA $BD
FREERTS:
RTS
INVINC_STRING: ;invincible
.BYTE $93,$98,$A0,$93,$98,$8D,$80
INVINC_PPU:
LDX #$00
LDA #$62
STA $BA
LDA #$21
STA $BB
JSR UP_PPU
JSR INVINC_WRITE
LDX #$00
LDA $07A0
AND #$01
JSR ON_OFF_PPU
LDX #$00
LDA #$71
STA $BA
LDA #$21
STA $BB
JSR UP_PPU
JSR INVINC_WRITE
LDX #$00
LDA $07A1
AND #$01
JSR ON_OFF_PPU
RTS
INVINC_WRITE:
LDX #$00
INWRITE:
JSR PPUADDR_PROCESS
LDA INVINC_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC INWRITE
RTS
ON_STRING:
.BYTE $99,$98,$80
OFF_STRING:
.BYTE $99,$90,$90
ON_OFF_PPU:
BEQ OFFWR
ONWR:
JSR PPUADDR_PROCESS
LDA ON_STRING,X
STA $2007
INC $BA
INX
CPX #$03
BCC ONWR
RTS
OFFWR:
JSR PPUADDR_PROCESS
LDA OFF_STRING,X
STA $2007
INC $BA
INX
CPX #$03
BCC OFFWR
RTS
LIFELC15_STRING:
.BYTE $96,$93,$90,$8F,$82,$86,$80
LIFELC15_WRITE:
LDX #$00
LIFELC15:
JSR PPUADDR_PROCESS
LDA LIFELC15_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC LIFELC15
RTS
LIFELC15_PPU:
LDX #$00
LDA #$A2
STA $BA
LDA #$21
STA $BB
JSR DN_PPU
JSR LIFELC15_WRITE
LDX #$00
LDA $07A0
AND #$02
JSR ON_OFF_PPU
LDX #$00
LDA #$B1
STA $BA
LDA #$21
STA $BB
JSR DN_PPU
JSR LIFELC15_WRITE
LDX #$00
LDA $07A1
AND #$02
JSR ON_OFF_PPU
RTS
DOUCON_STRING:
.BYTE $8E,$99,$9F,$8D,$99,$98,$80
DOUCON_WRITE:
LDX #$00
DOUCON:
JSR PPUADDR_PROCESS
LDA DOUCON_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC DOUCON
RTS
DOUCON_PPU:
LDX #$00
LDA #$E2
STA $BA
LDA #$21
STA $BB
JSR LF_PPU
JSR DOUCON_WRITE
LDX #$00
LDA $07A0
AND #$04
JSR ON_OFF_PPU
LDX #$00
LDA #$F1
STA $BA
LDA #$21
STA $BB
JSR LF_PPU
JSR DOUCON_WRITE
LDX #$00
LDA $07A1
AND #$04
JSR ON_OFF_PPU
RTS
LIFELOW_STRING:
.BYTE $96,$93,$90,$96,$99,$A1,$80
LIFELOW_WRITE:
LDX #$00
LIFELOW:
JSR PPUADDR_PROCESS
LDA LIFELOW_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC LIFELOW
RTS
LIFELOW_PPU:
LDX #$00
LDA #$22
STA $BA
LDA #$22
STA $BB
JSR RG_PPU
JSR LIFELOW_WRITE
LDX #$00
LDA $07A0
AND #$08
JSR ON_OFF_PPU
LDX #$00
LDA #$31
STA $BA
LDA #$22
STA $BB
JSR RG_PPU
JSR LIFELOW_WRITE
LDX #$00
LDA $07A1
AND #$08
JSR ON_OFF_PPU
RTS
KILLON_STRING:
.BYTE $95,$93,$96,$96,$99,$98,$80
KILLON_WRITE:
LDX #$00
KILLON:
JSR PPUADDR_PROCESS
LDA KILLON_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC KILLON
RTS
KILLON_PPU:
LDX #$00
LDA #$62
STA $BA
LDA #$22
STA $BB
JSR B_PPU
JSR KILLON_WRITE
LDX #$00
LDA $07A0
AND #$10
JSR ON_OFF_PPU
LDX #$00
LDA #$71
STA $BA
LDA #$22
STA $BB
JSR B_PPU
JSR KILLON_WRITE
LDX #$00
LDA $07A1
AND #$10
JSR ON_OFF_PPU
RTS
SKYFLY_STRING:
.BYTE $9D,$95,$A3,$90,$96,$A3,$80
SKYFLY_WRITE:
LDX #$00
SKYFLY:
JSR PPUADDR_PROCESS
LDA SKYFLY_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC SKYFLY
RTS
SKYFLY_PPU:
LDX #$00
LDA #$A2
STA $BA
LDA #$22
STA $BB
JSR A_PPU
JSR SKYFLY_WRITE
LDX #$00
LDA $07A0
AND #$20
JSR ON_OFF_PPU
LDX #$00
LDA #$B1
STA $BA
LDA #$22
STA $BB
JSR A_PPU
JSR SKYFLY_WRITE
LDX #$00
LDA $07A1
AND #$20
JSR ON_OFF_PPU
RTS
BULADD_STRING:
.BYTE $8C,$9F,$96,$8B,$8E,$8E,$80
BULADD_WRITE:
LDX #$00
BULADD:
JSR PPUADDR_PROCESS
LDA BULADD_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC BULADD
RTS
BULADD_PPU:
LDX #$00
LDA #$62
STA $BA
LDA #$21
STA $BB
JSR UP_PPU
JSR BULADD_WRITE
LDX #$00
LDA $07A2
AND #$01
JSR ON_OFF_PPU
LDX #$00
LDA #$71
STA $BA
LDA #$21
STA $BB
JSR UP_PPU
JSR BULADD_WRITE
LDX #$00
LDA $07A3
AND #$01
JSR ON_OFF_PPU
RTS
MENU_PAGE_STRING:
.BYTE $97,$8F,$98,$9F,$80,$9A,$8B,$91,$8F,$80,$81
PAGE_PPU:
LDX #$00
LDA #$0A
STA $BA
LDA #$23
STA $BB
MENU_PAGE:
JSR PPUADDR_PROCESS
LDA MENU_PAGE_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$0B
BCC MENU_PAGE
LDA $07AA
CLC
ADC #$82
STA $2007
LDA #$00
STA $2000
RTS
SKINGE_STRING:
.BYTE $9D,$95,$93,$98,$91,$8F,$80
SKINGE_WRITE:
LDX #$00
SKINGE:
JSR PPUADDR_PROCESS
LDA SKINGE_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC SKINGE
RTS
SKINGE_PPU:
LDX #$00
LDA #$A2
STA $BA
LDA #$21
STA $BB
JSR DN_PPU
JSR SKINGE_WRITE
LDX #$00
LDA $07A2
AND #$02
JSR ON_OFF_PPU
LDX #$00
LDA #$B1
STA $BA
LDA #$21
STA $BB
JSR DN_PPU
JSR SKINGE_WRITE
LDX #$00
LDA $07A3
AND #$02
JSR ON_OFF_PPU
RTS
BULMIX_STRING:
.BYTE $8C,$9F,$96,$97,$93,$A2,$80
BULMIX_WRITE:
LDX #$00
BULMIX:
JSR PPUADDR_PROCESS
LDA BULMIX_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC BULMIX
RTS
BULMIX_PPU:
LDX #$00
LDA #$E2
STA $BA
LDA #$21
STA $BB
JSR LF_PPU
JSR BULMIX_WRITE
LDX #$00
LDA $07A2
AND #$04
JSR ON_OFF_PPU
LDX #$00
LDA #$F1
STA $BA
LDA #$21
STA $BB
JSR LF_PPU
JSR BULMIX_WRITE
LDX #$00
LDA $07A3
AND #$04
JSR ON_OFF_PPU
RTS
ENELOC_STRING:
.BYTE $8F,$98,$8F,$96,$99,$8D,$80
ENELOC_WRITE:
LDX #$00
ENELOC:
JSR PPUADDR_PROCESS
LDA ENELOC_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC ENELOC
RTS
ENELOC_PPU:
LDX #$00
LDA #$22
STA $BA
LDA #$22
STA $BB
JSR RG_PPU
JSR ENELOC_WRITE
LDX #$00
LDA $07A2
AND #$08
JSR ON_OFF_PPU
LDX #$00
LDA #$31
STA $BA
LDA #$22
STA $BB
JSR RG_PPU
JSR ENELOC_WRITE
LDX #$00
LDA $07A3
AND #$08
JSR ON_OFF_PPU
RTS
FOCFUL_STRING:
.BYTE $90,$99,$8D,$90,$9F,$96,$80
FOCFUL_WRITE:
LDX #$00
FOCFUL:
JSR PPUADDR_PROCESS
LDA FOCFUL_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC FOCFUL
RTS
FOCFUL_PPU:
LDX #$00
LDA #$62
STA $BA
LDA #$22
STA $BB
JSR B_PPU
JSR FOCFUL_WRITE
LDX #$00
LDA $07A2
AND #$10
JSR ON_OFF_PPU
LDX #$00
LDA #$71
STA $BA
LDA #$22
STA $BB
JSR B_PPU
JSR FOCFUL_WRITE
LDX #$00
LDA $07A3
AND #$10
JSR ON_OFF_PPU
RTS
BULCON_STRING:
.BYTE $8C,$9F,$96,$8D,$99,$98,$80
BULCON_WRITE:
LDX #$00
BULCON:
JSR PPUADDR_PROCESS
LDA BULCON_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC BULCON
RTS
BULCON_PPU:
LDX #$00
LDA #$62
STA $BA
LDA #$21
STA $BB
JSR UP_PPU
JSR BULCON_WRITE
LDX #$00
LDA $07A4
AND #$08
JSR ON_OFF_PPU
LDX #$00
LDA #$71
STA $BA
LDA #$21
STA $BB
JSR UP_PPU
JSR BULCON_WRITE
LDX #$00
LDA $07A5
AND #$08
JSR ON_OFF_PPU
RTS
SPEBUL_STRING:
.BYTE $9D,$9A,$8F,$8C,$9F,$96,$80
SPEBUL_WRITE:
LDX #$00
SPEBUL:
JSR PPUADDR_PROCESS
LDA SPEBUL_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC SPEBUL
RTS
SPEBUL_PPU:
LDX #$00
LDA #$A2
STA $BA
LDA #$21
STA $BB
JSR DN_PPU
JSR SPEBUL_WRITE
LDX #$00
LDA $07A4
AND #$02
JSR ON_OFF_PPU
LDX #$00
LDA #$B1
STA $BA
LDA #$21
STA $BB
JSR DN_PPU
JSR SPEBUL_WRITE
LDX #$00
LDA $07A5
AND #$02
JSR ON_OFF_PPU
RTS
.ORG $A500
CLEALL_STRING:
.BYTE $8D,$96,$8F,$8B,$96,$96,$80
CLEALL_WRITE:
LDX #$00
CLEALL:
JSR PPUADDR_PROCESS
LDA CLEALL_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC CLEALL
RTS
CLEALL_PPU:
LDX #$00
LDA #$E2
STA $BA
LDA #$21
STA $BB
JSR LF_PPU
JSR CLEALL_WRITE
LDX #$00
LDA $07A4
AND #$04
JSR ON_OFF_PPU
LDX #$00
LDA #$F1
STA $BA
LDA #$21
STA $BB
JSR LF_PPU
JSR CLEALL_WRITE
LDX #$00
LDA $07A5
AND #$04
JSR ON_OFF_PPU
RTS
HARDMODE_STRING:
.BYTE $92,$8B,$8E,$97,$99,$8E,$80
HARDMODE_WRITE:
LDX #$00
HARDMODE:
JSR PPUADDR_PROCESS
LDA HARDMODE_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC HARDMODE
RTS
HARDMODE_PPU:
LDX #$00
LDA #$22
STA $BA
LDA #$22
STA $BB
JSR RG_PPU
JSR HARDMODE_WRITE
LDX #$00
LDA $07A4
AND #$01
JSR ON_OFF_PPU
LDX #$00
LDA #$31
STA $BA
LDA #$22
STA $BB
JSR RG_PPU
JSR HARDMODE_WRITE
LDX #$00
LDA $07A5
AND #$01
JSR ON_OFF_PPU
RTS
B_TO_JMPSTG_STRING:
.BYTE $80,$8C,$80,$9E,$99,$80,$94,$97,$9A,$9D,$9E,$91,$80
B_TO_JMPSTG_WRITE:
LDX #$00
B_TO_JMPSTG:
JSR PPUADDR_PROCESS
LDA B_TO_JMPSTG_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$0D
BCC B_TO_JMPSTG
LDX #$00
LDA $7FE0
JSR ON_OFF_PPU
RTS
B_TO_JMPSTG_PPU:
LDX #$00
LDA #$68
STA $BA
LDA #$22
STA $BB
JSR B_TO_JMPSTG_WRITE
RTS
A_TO_PLAMOD_STRING:
.BYTE $80,$8B,$80,$9E,$99,$80,$9A,$96,$8B,$97,$99,$8E,$80
A_TO_PLAMOD_WRITE:
LDX #$00
A_TO_PLAMOD:
JSR PPUADDR_PROCESS
LDA A_TO_PLAMOD_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$0D
BCC A_TO_PLAMOD
LDX #$00
LDA $39
JSR ONE_TWO_PPU
RTS
A_TO_PLAMOD_PPU:
LDX #$00
LDA #$A8
STA $BA
LDA #$22
STA $BB
JSR A_TO_PLAMOD_WRITE
RTS
MOVSPE_STRING:
.BYTE $97,$99,$A0,$9D,$9A,$8F,$80
MOVSPE_WRITE:
LDX #$00
MOVSPE:
JSR PPUADDR_PROCESS
LDA MOVSPE_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC MOVSPE
RTS
MOVSPE_PPU:
LDX #$00
LDA #$69
STA $BA
LDA #$21
STA $BB
JSR UP_PPU
JSR MOVSPE_WRITE
LDX #$00
LDA $079F
AND #$08
JSR ON_OFF_PPU
LDA #$80
STA $2007
RTS
UNLJMP_STRING:
.BYTE $9F,$98,$96,$94,$97,$9A,$80
UNLJMP_WRITE:
LDX #$00
UNLJMP:
JSR PPUADDR_PROCESS
LDA UNLJMP_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC UNLJMP
RTS
UNLJMP_PPU:
LDX #$00
LDA #$A9
STA $BA
LDA #$21
STA $BB
JSR DN_PPU
JSR UNLJMP_WRITE
LDX #$00
LDA $079F
AND #$04
JSR ON_OFF_PPU
RTS
DESTRO_STRING:
.BYTE $8E,$8F,$9D,$9E,$9C,$99,$80
DESTRO_WRITE:
LDX #$00
DESTRO:
JSR PPUADDR_PROCESS
LDA DESTRO_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC DESTRO
RTS
DESTRO_PPU:
LDX #$00
LDA #$E9
STA $BA
LDA #$21
STA $BB
JSR B_PPU
JSR DESTRO_WRITE
LDX #$00
LDA $079F
AND #$40
JSR ON_OFF_PPU
RTS
EQUBUL_STRING:
.BYTE $8F,$9B,$9F,$8C,$9F,$96,$80
EQUBUL_WRITE:
LDX #$00
EQUBUL:
JSR PPUADDR_PROCESS
LDA EQUBUL_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$07
BCC EQUBUL
RTS
EQUBUL_PPU:
LDX #$00
LDA #$29
STA $BA
LDA #$22
STA $BB
JSR A_PPU
JSR EQUBUL_WRITE
LDX #$00
LDA $079F
AND #$80
JSR ON_OFF_PPU
RTS
BULSEL_UP_STRING:
.BYTE $9F,$9A,$80,$9E,$99,$80,$9D,$9D,$80
BULSEL_DN_STRING:
.BYTE $8E,$98,$80,$9E,$99,$80,$9D,$96,$80
BULSEL_LF_STRING:
.BYTE $96,$90,$80,$9E,$99,$80,$9D,$97,$80
BULSEL_RG_STRING:
.BYTE $9C,$91,$80,$9E,$99,$80,$9D,$90,$80
BULSEL_B_STRING:
.BYTE $80,$8C,$80,$9E,$99,$80,$9D,$98,$80
BULSEL_A_STRING:
.BYTE $80,$8B,$80,$9E,$99,$80,$8D,$99,$97,$97,$99,$98,$80,$9D,$9A,$8F,$8F,$8E
BULSEL_UP_WRITE:
LDX #$00
BULSEL_UP:
JSR PPUADDR_PROCESS
LDA BULSEL_UP_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$09
BCC BULSEL_UP
RTS
BULSEL_DN_WRITE:
LDX #$00
BULSEL_DN:
JSR PPUADDR_PROCESS
LDA BULSEL_DN_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$09
BCC BULSEL_DN
RTS
BULSEL_LF_WRITE:
LDX #$00
BULSEL_LF:
JSR PPUADDR_PROCESS
LDA BULSEL_LF_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$09
BCC BULSEL_LF
RTS
BULSEL_RG_WRITE:
LDX #$00
BULSEL_RG:
JSR PPUADDR_PROCESS
LDA BULSEL_RG_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$09
BCC BULSEL_RG
RTS
BULSEL_B_WRITE:
LDX #$00
BULSEL_B:
JSR PPUADDR_PROCESS
LDA BULSEL_B_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$09
BCC BULSEL_B
RTS
BULSEL_A_WRITE:
LDX #$00
BULSEL_A:
JSR PPUADDR_PROCESS
LDA BULSEL_A_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$12
BCC BULSEL_A
RTS
BULSEL_PPU:
LDA #$6C
STA $BA
LDA #$21
STA $BB
JSR BULSEL_UP_WRITE
LDA #$AC
STA $BA
LDA #$21
STA $BB
JSR BULSEL_DN_WRITE
LDA #$EC
STA $BA
LDA #$21
STA $BB
JSR BULSEL_LF_WRITE
LDA #$2C
STA $BA
LDA #$22
STA $BB
JSR BULSEL_RG_WRITE
LDA #$6C
STA $BA
LDA #$22
STA $BB
JSR BULSEL_B_WRITE
LDA #$A7
STA $BA
LDA #$22
STA $BB
JSR BULSEL_A_WRITE
RTS
UP_STRING:
.BYTE $9F,$9A,$80
DN_STRING:
.BYTE $8E,$98,$80
LF_STRING:
.BYTE $96,$90,$80
RG_STRING:
.BYTE $9C,$91,$80
B_STRING:
.BYTE $80,$8C,$80
A_STRING:
.BYTE $80,$8B,$80
UP_WRITE:
LDX #$00
UP:
JSR PPUADDR_PROCESS
LDA UP_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$03
BCC UP
RTS
DN_WRITE:
LDX #$00
DN:
JSR PPUADDR_PROCESS
LDA DN_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$03
BCC DN
RTS
LF_WRITE:
LDX #$00
LF:
JSR PPUADDR_PROCESS
LDA LF_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$03
BCC LF
RTS
RG_WRITE:
LDX #$00
RG:
JSR PPUADDR_PROCESS
LDA RG_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$03
BCC RG
RTS
B_WRITE:
LDX #$00
B:
JSR PPUADDR_PROCESS
LDA B_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$03
BCC B
RTS
A_WRITE:
LDX #$00
A:
JSR PPUADDR_PROCESS
LDA A_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$03
BCC A
RTS
UP_PPU:
JSR UP_WRITE
RTS
DN_PPU:
JSR DN_WRITE
RTS
LF_PPU:
JSR LF_WRITE
RTS
RG_PPU:
JSR RG_WRITE
RTS
B_PPU:
JSR B_WRITE
RTS
A_PPU:
JSR A_WRITE
RTS
PAGESELECT:
PAGE0:
LDA $07AA
CMP #$00
BNE PAGE1
PAGE_00:
JSR BULSEL_PPU
RTS
PAGE1:
LDA $07AA
CMP #$01
BNE PAGE2
PAGE_01:
JSR INVINC_PPU
JSR LIFELC15_PPU
JSR DOUCON_PPU
JSR KILLON_PPU
JSR SKYFLY_PPU
JSR LIFELOW_PPU
RTS
PAGE2:
LDA $07AA
CMP #$02
BNE PAGE3
PAGE_02:
JSR BULADD_PPU
JSR SKINGE_PPU
JSR BULMIX_PPU
JSR ENELOC_PPU
JSR FOCFUL_PPU
RTS
PAGE3:
LDA $07AA
CMP #$03
BNE PAGE4
PAGE_03:
JSR BULCON_PPU
JSR SPEBUL_PPU
JSR CLEALL_PPU
JSR HARDMODE_PPU
JSR B_TO_JMPSTG_PPU
JSR A_TO_PLAMOD_PPU
RTS
PAGE4:
LDA $07AA
CMP #$04
BNE PAGERTS
PAGE_04:
JSR MOVSPE_PPU
JSR UNLJMP_PPU
JSR DESTRO_PPU
JSR EQUBUL_PPU
JSR MOVESPEED_PPU
PAGERTS:
RTS
PLAYER_01_STRING:
.BYTE $9A,$96,$8B,$A3,$8F,$9C,$80,$81,$82,$80
PLAYER_01_WRITE:
LDX #$00
PLAYER_01:
JSR PPUADDR_PROCESS
LDA PLAYER_01_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$0A
BCC PLAYER_01
RTS
PLAYER_01_PPU:
LDX #$00
LDA #$64
STA $BA
LDA #$20
STA $BB
JSR PLAYER_01_WRITE
RTS
PLAYER_02_STRING:
.BYTE $9A,$96,$8B,$A3,$8F,$9C,$80,$81,$83,$80
PLAYER_02_WRITE:
LDX #$00
PLAYER_02:
JSR PPUADDR_PROCESS
LDA PLAYER_02_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$0A
BCC PLAYER_02
RTS
PLAYER_02_PPU:
LDX #$00
LDA #$73
STA $BA
LDA #$20
STA $BB
JSR PLAYER_02_WRITE
RTS
PPUADDR_PROCESS:
LDA $BB
STA $2006
LDA $BA
STA $2006
RTS
ONE_STRING:
.BYTE $99,$98,$8F
TWO_STRING:
.BYTE $9E,$A1,$99
ONE_TWO_PPU:
BNE ONEWR
TWOWR:
JSR PPUADDR_PROCESS
LDA TWO_STRING,X
STA $2007
INC $BA
INX
CPX #$03
BCC TWOWR
RTS
ONEWR:
JSR PPUADDR_PROCESS
LDA ONE_STRING,X
STA $2007
INC $BA
INX
CPX #$03
BCC ONEWR
RTS
MOVESPEED_STRING:
.BYTE $97,$99,$A0,$8F,$80,$9D,$9A,$8F,$8F,$8F,$80
MOVESPEED_WRITE:
LDX #$00
MOVESPEED:
JSR PPUADDR_PROCESS
LDA MOVESPEED_STRING,X
STA $2007
LDA #$00
STA $2000
INC $BA
INX
CPX #$0B
BCC MOVESPEED
RTS
MOVESPEED_PPU:
LDX #$00
LDA #$AA
STA $BA
LDA #$22
STA $BB
JSR MOVESPEED_WRITE
LDA $7003
CLC
ADC #$82
STA $2007
RTS
真是太強了,感覺樓主可以直接當D商了. 不错谢谢分享! 这个修改好厉害、、、、 非常强大的修改! 好东西,收下了 太强了!佩服佩服! 这修改太全面了 , 这东西找了好久勒,谢谢!!
感谢楼主分享 感谢楼主分享 谢谢分享 看上去好复杂
页:
[1]