|
本帖最后由 yandagui 于 2020-3-22 22:23 编辑
真是无聊透顶, 搞个假的合卡哈
- ;[FC][精简合卡菜单45_52]
- ;FlameCyclone
- ;2020.03.22
- ;6502 Macroassembler & Simulator 1.2.11
- ;==================================================
- RESET_PORT = $A000
- MENU_INDEX = 03
- MENU_RESET = $F80D
- MENU_NMI = $E800
- ;==================================================
- MULTICART_TYPE = 52
- ;==================================================
- Char_Arrow = $3F
- SCROLL_H_VALUE = 0
- SCROLL_V_VALUE = 8
- ARROW_X_OFFSET = $1C ;箭头横坐标
- ARROW_Y_OFFSET = $27 ;箭头纵坐标
- ITEM_COUNT = 24 ;节目总数
- SPRITES_ADDR = $0400
- SPRITES_PAGE = SPRITES_ADDR / 256
- ;==================================================
- BTN_DELAY = 30 ;按键重复触发时长
- BTN_SPEED = 10 ;按键重复触发速度
- ;==================================================
- Data_L = $40
- Data_H = Data_L + $01
- Data_Count = Data_H + $01
- ;==================================================
- Sel_Index = Data_Count + $01
- ;==================================================
- Button_Keep = Sel_Index + $01
- Button_Once = Button_Keep+$01
- Button_Temp = Button_Once+$01
- Button_Buf = Button_Temp+$01
- Button_Status = Button_Buf+$01
- ;==================================================
- SEL_PROCESS_SIZE = SelectGameLength - SelectGame
- Sel_Process_Addr = $0500
- ;==================================================
- Second_Time = Button_Status + $02
- Btn_Delay = Second_Time + $01
- .IF MULTICART_TYPE == 52
- ;========================================
- Sel_Addr_L = Btn_Delay + 2
- Sel_Addr_H = Sel_Addr_L + 1
- .ENDIF
- .IF MULTICART_TYPE == 45
- ;========================================
- Rom_Index = Btn_Delay + 2
- CHR_Addr_L = Rom_Index + $01
- CHR_Addr_H = CHR_Addr_L + $01
- PRG_Addr = CHR_Addr_H + $01
- PRG_Size = PRG_Addr + $01
- CHR_Size = PRG_Size + $01
- MIR_Addr = CHR_Size + $01
- ;========================================
- .ENDIF
- BTN_UP = $08
- BTN_DOWN = $04
- BTN_LEFT = $02
- BTN_RIGHT = $01
- BTN_SELECT = $20
- BTN_START = $10
- BTN_B = $40
- BTN_A = $80
- ;==================================================
- SOUND_OPEN = 1 ;菜单音效
- CUSTOM_MUSIC_OPEN = 0 ;个性化音乐
- BUTTON_SOUND_OPEN = 1 ;按键选择列表音效
- ATTRIBUTE_OPEN = 1 ;属性表开启
- ROM_CHAR_MAP = 1 ;字符映射
- ;==================================================
- ROM_MIRRIOR_OPEN = 0 ;启用镜像选择
- ROM_VRAM_OPEN = 0 ;启用VRAM
- Vram_Data = $BC00 ;Vram数据地址
- Vram_Addr = $0200 ;Vram写入地址
- Vram_Size = $04 ;VRAM大小 * 0x100
- ;==================================================
- Sound_Addr_Init = $BF00 ;音乐初始化
- Sound_Addr_Play = $8000 ;音乐播放
- SOUND_BGM = 29 ;背景音效
- SOUND_BUTTON = 30 ;选择音效
- SOUND_ENTER = 34 ;进入音效
- SOUND_ENTER_TIME = 60 ;进入音效延时
- ;==================================================
- .ORG RESET_PORT
- ;==================================================
- ;程序初始化
- ResetInit:
- CLD
- SEI
- LDX #$FF
- TXS
- LDA #$00
- STA $2000
- STA $2001
- STA $E000
- LDA #$80
- STA $A001
- LDA #$01
- STA $A000
- LDX #$02
- ResetDelayA:
- BIT $2002
- BPL ResetDelayA
- ResetDelayB:
- BIT $2002
- BMI ResetDelayB
- DEX
- BNE ResetDelayA
-
- LDA #$0F
- STA $4015
- LDA #$C0
- STA $4017
- JSR PaletteClear
-
- MenuInit
- .IF MULTICART_TYPE == 52
- MenuInitSet:
- LDX #MENU_INDEX
- LDA Rom_Select_Data
- AND #$7F
- STA $6000
- .ENDIF
- .IF MULTICART_TYPE == 45
- LDA #MENU_INDEX
- JSR GetRomPort
- LDX #$00
- MenuInitSet:
- LDA CHR_Addr_L
- STA $6000
- LDA PRG_Addr
- ASL
- STA $6000
- LDA CHR_Addr_H
- ASL
- ASL
- ASL
- ASL
- ORA CHR_Size
- STA $6000
- LDA PRG_Size
- STA $6000
- INX
- BNE MenuInitSet
- .ENDIF
-
- ;==================================================
- ;RAM清空
- RamClear:
- LDA #$00
- STA $00
- STA $01
- LDX #$08
- LDY #$00
- RamClearWrite:
- STA ($00),Y
- INY
- BNE RamClearWrite
- INC $01
- DEX
- BNE RamClearWrite
- JSR SpriteClear
- JSR VramClear
- JSR ChrSteup
- JSR TextWrite
- JSR TimeWait
- JSR PaletteSet
-
- .IF ATTRIBUTE_OPEN
- JSR TimeWait
- JSR AttributeSet
- .ENDIF
-
- JSR ResetScroll
-
- LDA #BTN_START
- STA Button_Buf
- LDA #$1E
- STA $2001
-
- JSR NmiDelay
- .IF SOUND_OPEN
- .IF CUSTOM_MUSIC_OPEN
- LDA #SOUND_BGM - 1
- JSR Sound_Addr_Init
- .ENDIF
- .ENDIF
-
- ;==================================================
- ;循环等待
- WaitLoop:
- JSR NmiDelay
- JSR SelectChange
- JSR SpriteSet
- JMP WaitLoop
- RTS
-
- ;==================================================
- ;NMI延时
- NmiDelay:
- JSR TimeWait
- LDA #SPRITES_PAGE
- STA $4014
- JSR ResetScroll
- .IF CUSTOM_MUSIC_OPEN
- JSR Sound_Addr_Play
- .ENDIF
-
- JSR Button_Process
- RTS
-
- ;==================================================
- ;延时等待
- TimeWait:
- LDA $2002
- BPL TimeWait
- RTS
- ;==================================================
- ;重设滚动
- ResetScroll:
- LDA #$00
- STA $2006
- STA $2006
- LDA #SCROLL_H_VALUE
- STA $2005
- LDA #SCROLL_V_VALUE
- STA $2005
- RTS
- ;==================================================
- ;按键处理
- Button_Process:
- JSR Button_Scan
- LDA Button_Keep
- STA Button_Temp
- JSR Button_Scan
- LDA Button_Keep
- CMP Button_Temp
- BEQ Button_Get_Once
- LDA Button_Buf
- STA Button_Keep
- Button_Get_Once:
- TAY
- EOR Button_Buf
- AND Button_Keep
- STA Button_Once
- STY Button_Buf
- JSR ButtonDelay
- RTS
- ;==================================================
- ;按键扫描
- Button_Scan:
- LDX #$01
- STX $4016
- DEX
- STX $4016
- LDY #$08
- Button_Value:
- LDA $4016
- STA Button_Status
- LSR
- ORA Button_Status
- LSR
- ROL Button_Keep
- DEY
- BNE Button_Value
- RTS
- ;==================================================
- ;按键延时重复
- ButtonDelay:
- LDA Button_Keep
- AND #$EF
- BNE ButtonDelaySet
- LDA #$00
- STA Btn_Delay
- ButtonDelaySet:
- INC Btn_Delay
- LDA Btn_Delay
- CMP #BTN_DELAY + BTN_SPEED
- BCC ButtonDelayEnd
- LDA #BTN_DELAY
- STA Btn_Delay
- LDA Button_Keep
- STA Button_Once
- ButtonDelayEnd:
- RTS
- ;========================================
- ;图形块设置
- ChrSteup:
- LDX #$00
- ChrSteupSetChr:
- STX $8000
- LDA ChrBankData,X
- STA $8001
- INX
- CPX #$06
- BCC ChrSteupSetChr
-
- .IF ROM_VRAM_OPEN
- LDA #<Vram_Data
- STA Data_L
- LDA #>Vram_Data
- STA Data_H
- LDA #>Vram_Addr
- STA $2006
- LDA #<Vram_Addr
- STA $2006
- LDX #Vram_Size
- LDY #$00
- ChrSteupSetVram:
- LDA (Data_L),Y
- STA $2007
- INY
- BNE ChrSteupSetVram
- INC Data_H
- DEX
- BNE ChrSteupSetVram
- .ENDIF
- RTS
-
- ;==================================================
- ;精灵清除
- SpriteClear:
- LDX #$00
- LDA #$F8
- SpriteClearWrite:
- STA SPRITES_ADDR,X
- INX
- BNE SpriteClearWrite
- RTS
- ;==================================================
- ;精灵设置
- SpriteSet:
- LDA Sel_Index
- ASL
- ASL
- ASL
- ;ASL
- CLC
- ADC #ARROW_Y_OFFSET
- STA SPRITES_ADDR
- LDA #Char_Arrow
- STA SPRITES_ADDR + 1
- LDA #$00
- STA SPRITES_ADDR + 2
- LDA #ARROW_X_OFFSET
- STA SPRITES_ADDR + 3
- RTS
- ;==================================================
- ;清空PPU内存
- VramClear:
- LDA #$00
- STA $2006
- LDA #$00
- STA $2006
- TAX
- LDY #$30
- LDA #$00
- NameTableClearBeg:
- STA $2007
- INX
- BNE NameTableClearBeg
- DEY
- BNE NameTableClearBeg
- RTS
-
- ;==================================================
- ;清空调色板
- PaletteClear:
- JSR PaletteAddrSet
- LDA #$0F
- LDX #$00
- PaletteClearWrite:
- STA $2007
- INX
- CPX #$20
- BCC PaletteClearWrite
- RTS
-
- ;==================================================
- ;设置调色板
- PaletteSet:
- JSR PaletteAddrSet
- LDX #$00
- PaletteSetWrite:
- LDA PaletteData,X
- STA $2007
- INX
- CPX #$20
- BCC PaletteSetWrite
- RTS
- ;==================================================
- ;调色板地址设置
- PaletteAddrSet:
- LDA #$3F
- STA $2006
- LDA #$00
- STA $2006
- RTS
-
- .IF ATTRIBUTE_OPEN
- ;==================================================
- ;设置属性表
- AttributeSet:
- LDA #$23
- STA $2006
- LDA #$C0
- STA $2006
- LDX #$00
- AttributeSetWrite:
- LDA AttributeData,X
- STA $2007
- INX
- CPX #$40
- BCC AttributeSetWrite
- RTS
- .ENDIF
- ;==================================================
- ;写入文本
- TextWrite:
- LDA #<TextData
- STA Data_L
- LDA #>TextData
- STA Data_H
- LDY #$00
- TextWriteCheckMode:
- LDA (Data_L),Y
- BEQ TextWriteOver
- CMP #$FF
- BEQ TextWriteOver
- AND #$04
- STA $2000
- JSR CheckAddr
- LDA (Data_L),Y
- STA $2006
- JSR CheckAddr
- LDA (Data_L),Y
- STA $2006
- JSR CheckAddr
- LDA (Data_L),Y
- TAX
- JSR CheckAddr
- TextWriteData:
- STX Data_Count
- LDA (Data_L),Y
-
- .IF ROM_CHAR_MAP
- TAX
- LDA Char_Rom_Map,X
- .ENDIF
-
- STA $2007
- JSR CheckAddr
- LDX Data_Count
- DEX
- BNE TextWriteData
- JMP TextWriteCheckMode
- TextWriteOver:
- LDA #$00
- STA $2000
- RTS
- ;--------------------------------------------------
- CheckAddr:
- INY
- BNE CheckAddrOver
- INC Data_H
- CheckAddrOver:
- RTS
- ;==================================================
- ;选项切换
- SelectChange:
- LDA Button_Once
- AND #$FF
- BEQ SelectChangeEnd
- SelectChangeSound:
- .IF SOUND_OPEN
- .IF BUTTON_SOUND_OPEN
- JSR ButtonSound
- .ENDIF
- .ENDIF
- SelectInc:
- LDA Button_Once
- AND #BTN_SELECT | BTN_DOWN
- BEQ SelectDec
- LDA Sel_Index
- CMP #ITEM_COUNT - 1
- BCC SelectIncSet
- LDA #$FF
- STA Sel_Index
- SelectIncSet:
- INC Sel_Index
- SelectDec:
- LDA Button_Once
- CMP #BTN_UP
- BNE SelectBeg
- LDA Sel_Index
- BNE SelectDecSet
- LDA #ITEM_COUNT
- STA Sel_Index
- SelectDecSet:
- DEC Sel_Index
- SelectBeg:
- LDA Button_Once
- AND #BTN_LEFT | BTN_B
- BEQ SelectEnd
- LDA #$00
- STA Sel_Index
- SelectEnd:
- LDA Button_Once
- AND #BTN_RIGHT | BTN_A
- BEQ SelectOver
- LDA #ITEM_COUNT - 1
- STA Sel_Index
- SelectOver:
- LDA Button_Once
- CMP #BTN_START
- BNE SelectChangeEnd
-
- .IF SOUND_OPEN
- JSR TimeWait
- JSR EnterSound
- JSR TimeWait
- JSR SoundClean
- .ENDIF
-
- JSR TimeWait
- LDA #$00
- STA $2001
- STA $4010
- STA $4011
- STA $4012
- STA $4013
- STA $4015
- JSR PaletteClear
-
- JMP RomSelect
- SelectChangeEnd:
- RTS
- .IF SOUND_OPEN
- ;========================================
- ;按键音效
- ButtonSound:
- .IF CUSTOM_MUSIC_OPEN
- LDA #SOUND_BUTTON - 1
- JSR Sound_Addr_Init
- RTS
- .ELSE
- LDA #$03
- STA $4015
- LDX #$00
- ButtonSoundWrite:
- LDA ButtonSoundData,X
- STA $4000,X
- INX
- CPX #$04
- BCC ButtonSoundWrite
- RTS
- ButtonSoundData:
- .DB $87,$89,$F0,$00
- .ENDIF
- .ENDIF
- .IF SOUND_OPEN
- ;========================================
- ;进入音效
- EnterSound:
- .IF CUSTOM_MUSIC_OPEN
- LDA #SOUND_ENTER - 1
- JSR Sound_Addr_Init
- LDA #SOUND_ENTER_TIME
- JSR SecondDelay
- RTS
- .ELSE
- LDA #$02
- STA $4015
- LDX #$00
- EnterSoundWrite:
- LDA EnterSoundData,X
- STA $4004,X
- INX
- CPX #$04
- BCC EnterSoundWrite
- LDA #$18
- JSR SecondDelay
- RTS
- EnterSoundData:
- .DB $3F,$9A,$FF,$00
- .ENDIF
- .ENDIF
- .IF SOUND_OPEN
- ;========================================
- ;等待延时
- SecondDelay:
- STA Second_Time
- BEQ SecondDelayEnd
- SecondDelayWait:
- JSR NmiDelay
- LDA Button_Once
- AND #$90
- BNE SecondDelayEnd
- DEC Second_Time
- BNE SecondDelayWait
- SecondDelayEnd:
- RTS
- .ENDIF
- .IF SOUND_OPEN
- ;=================================================
- ;音频清理
- SoundClean:
- LDA #$0B
- STA $4015
- LDA #$00
- STA $4008
- LDA #$0F
- STA $4015
-
- LDA #$30
- STA $4000
- JSR SoundCleanDelay
- STA $4004
- JSR SoundCleanDelay
- STA $400C
- JSR SoundCleanDelay
- LDA #$7F
- STA $4001
- JSR SoundCleanDelay
- STA $4005
- JSR SoundCleanDelay
- RTS
- SoundCleanDelay:
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- RTS
-
- .ENDIF
-
-
- .IF MULTICART_TYPE == 52
- ;==================================================
- RomSelect:;选择节目处理
- LDX #$00
- SelectProcessWrite:
- LDA SelectGame,X
- STA Sel_Process_Addr,X
- INX
- CPX #SEL_PROCESS_SIZE
- BCC SelectProcessWrite
-
- .IF ROM_MIRRIOR_OPEN
- LDX Sel_Index
- LDA Rom_Select_Mirrior,X
- STA $A000
- .ENDIF
-
- LDA Sel_Index
- ASL
- TAX
- LDA Rom_Select_Data,X
- STA Sel_Addr_H
- INX
- LDA Rom_Select_Data,X
- STA Sel_Addr_L
- LDY #$00
- LDX Sel_Index
- LDA Stage_Data,X
- STA $01C0
- LDA Life_Data,X
- STA $01C1
- LDA Weapon_Data,X
- STA $01C2
- JMP MENU_RESET
- LDA #$00
- JMP Sel_Process_Addr
- ;==================================================
- SelectGame:;选择节目
- STA (Sel_Addr_L),Y
- CPX #MENU_INDEX
- BNE SelectGameEnd
- JMP MENU_RESET
- SelectGameEnd:
- STA $6000
- JMP ($FFFC)
- SelectGameLength:
- .ENDIF
- .IF MULTICART_TYPE == 45
- ;==================================================
- GetRomPort:
- STA Rom_Index
- JSR GetPrgBankIndex
- JSR GetChrBankIndex
- JSR GetPrgSize
- JSR GetChrSize
- LDX Rom_Index
- LDA ROM_Mirroring,X
- STA MIR_Addr
- RTS
- ;----------------------------------------
- WriteMultiPort:
- LDA CHR_Addr_L
- STA $6000
- LDA PRG_Addr
- ASL
- STA $6000
- LDA CHR_Addr_H
- ASL
- ASL
- ASL
- ASL
- ORA CHR_Size
- STA $6000
- LDA PRG_Size
- STA $6000
- RTS
- ;----------------------------------------
- GetPrgBankIndex:
- LDA #$00
- STA PRG_Addr
- LDA Rom_Index
- BEQ GetPrgBankIndexEnd
- LDX #$00
- GetPrgBankIndexBeg:
- LDA PRG_Addr
- CLC
- ADC ROM_PRG_Size,X
- STA PRG_Addr
- INX
- CPX Rom_Index
- BCC GetPrgBankIndexBeg
- GetPrgBankIndexEnd:
- RTS
- ;----------------------------------------
- GetChrBankIndex:
- LDA #$00
- STA CHR_Addr_L
- STA CHR_Addr_H
- LDA Rom_Index
- BEQ GetChrBankIndexEnd
- LDX #$00
- GetChrBankIndexBeg:
- LDA CHR_Addr_L
- CLC
- ADC ROM_CHR_Size,X
- STA CHR_Addr_L
- ADC CHR_Addr_H
- STA CHR_Addr_H
- INX
- CPX Rom_Index
- BCC GetChrBankIndexBeg
- LDX #$00
- GetChrBankIndexSet:
- ASL CHR_Addr_L
- ROL CHR_Addr_H
- INX
- CPX #$03
- BCC GetChrBankIndexSet
- GetChrBankIndexEnd:
- RTS
- ;----------------------------------------
- GetPrgSize:
- LDX Rom_Index
- LDA ROM_PRG_Size,X
- LDX #$00
- GetPrgSizeBeg:
- CMP PRG_Size_Map,X
- BEQ GetPrgSizeSetEnd
- INX
- CPX #$06
- BCC GetPrgSizeBeg
- GetPrgSizeSetEnd:
- LDA PRG_Size_Data,X
- STA PRG_Size
- RTS
- ;----------------------------------------
- GetChrSize:
- LDX Rom_Index
- LDA ROM_CHR_Size,X
- LDX #$00
- GetChrSizeBeg:
- CMP CHR_Size_Map,X
- BEQ GetChrSizeSetEnd
- INX
- CPX #$06
- BCC GetChrSizeBeg
- GetChrSizeSetEnd:
- LDA CHR_Size_Data,X
- STA CHR_Size
- RTS
- ;==================================================
- ;节目选择
- RomSelect:
- LDX #$00
- RomSelectBeg:
- LDA SelectGame,X
- STA Sel_Process_Addr,X
- INX
- CPX #SEL_PROCESS_SIZE
- BCC RomSelectBeg
- LDX Sel_Index
- LDA ROM_Order,X
- CMP #MENU_INDEX
- BNE RomSelectSet
- JMP MENU_RESET
- RomSelectSet:
- JSR GetRomPort
- RomSelfCheck:
- JMP Sel_Process_Addr
- ;==================================================
- ;节目选择处理
- SelectGame:
- LDX #$00
- SelectGameBeg:
- LDA CHR_Addr_L
- STA $6000
- LDA PRG_Addr
- ASL
- STA $6000
- LDA CHR_Addr_H
- ASL
- ASL
- ASL
- ASL
- ORA CHR_Size
- STA $6000
- LDA PRG_Size
- ORA #$C0
- STA $6000
- INX
- BNE SelectGameBeg
- SelectGameSet:
- LDA MIR_Addr
- STA $A000
- JMP ($FFFC)
- SelectGameLength:
- .ENDIF
- ;==================================================
- ;图形块号
- ChrBankData:
- .DB $00,$02,$04,$05,$06,$07
- ;==================================================
- ;调色板数据
- PaletteData:
- .DB $0F,$2A,$2A,$2A,$0F,$25,$25,$25,$0F,$21,$21,$21,$0F,$20,$20,$20
- .DB $0F,$20,$26,$16,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
-
- .IF ATTRIBUTE_OPEN
- ;==================================================
- ;属性表数据
- AttributeData:
- .DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$0A,$05,$0A,$05,$09,$0A,$00
- .DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- .DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- .DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
- .ENDIF
- .IF ROM_CHAR_MAP
- ;==================================================
- ;字符映射
- Char_Rom_Map:
- .DB $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0E,$0F
- .DB $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F
- .DB $00,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$25,$2F
- .DB $01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$3A,$3B,$3C,$3D,$3E,$3F
- .DB $40,$0B,$0C,$0D,$0E,$0F,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19
- .DB $1A,$1B,$1C,$1D,$1E,$1F,$20,$21,$22,$23,$24,$5B,$5C,$5D,$5E,$5F
- .ENDIF
- ;==================================================
- ;文本数据
- TextData:
- .DB $80,$20,$49
- .STR "CONTRA 24 IN 1"
- .DB $80,$20,$84
- .STR "PUSH U.D OR START BUTTON"
- .DB $80,$20,$C5
- .STR "01.STAGE 1"
- .DB $80,$20,$E5
- .STR "02.STAGE 1 30 LIFE"
- .DB $80,$21,$05
- .STR "03.STAGE 1 30 LIFE S GUN"
- .DB $80,$21,$25
- .STR "04.STAGE 2"
- .DB $80,$21,$45
- .STR "05.STAGE 2 30 LIFE"
- .DB $80,$21,$65
- .STR "06.STAGE 2 30 LIFE S GUN"
- .DB $80,$21,$85
- .STR "07.STAGE 3"
- .DB $80,$21,$A5
- .STR "08.STAGE 3 30 LIFE"
- .DB $80,$21,$C5
- .STR "09.STAGE 3 30 LIFE S GUN"
- .DB $80,$21,$E5
- .STR "10.STAGE 4"
- .DB $80,$22,$05
- .STR "11.STAGE 4 30 LIFE"
- .DB $80,$22,$25
- .STR "12.STAGE 4 30 LIFE S GUN"
- .DB $80,$22,$45
- .STR "13.STAGE 5"
- .DB $80,$22,$65
- .STR "14.STAGE 5 30 LIFE"
- .DB $80,$22,$85
- .STR "15.STAGE 5 30 LIFE S GUN"
- .DB $80,$22,$A5
- .STR "16.STAGE 6"
- .DB $80,$22,$C5
- .STR "17.STAGE 6 30 LIFE"
- .DB $80,$22,$E5
- .STR "18.STAGE 6 30 LIFE S GUN"
- .DB $80,$23,$05
- .STR "19.STAGE 7"
- .DB $80,$23,$25
- .STR "20.STAGE 7 30 LIFE"
- .DB $80,$23,$45
- .STR "21.STAGE 7 30 LIFE S GUN"
- .DB $80,$23,$65
- .STR "22.STAGE 8"
- .DB $80,$23,$85
- .STR "23.STAGE 8 30 LIFE"
- .DB $80,$23,$A5
- .STR "24.STAGE 8 30 LIFE S GUN"
- .DB $FF
- .IF MULTICART_TYPE == 52
- ;==================================================
- ;ROM选择数据
- Rom_Select_Data:
- ;;;;;WMCCSBPP
- ;W: 禁用合卡寄存器并启用RAM
- ;M: CHR 块容量 (0=256KB 1=128KB)
- ;C: CHR 块选择 (位1,0)
- ;S: PRG 块容量 (0=256KB 1=128KB)
- ;B: CHR + PRG 高位(位2)
- ;P: PRG 块选择 (位1,0)
- .DB @11001000 ;001
- .DB @11011001 ;002
- .DB @11101010 ;003
- .DB @11111011 ;004
- .DB @11001100 ;005
- .DB @11011101 ;006
- .DB @11101110 ;007
- .DB @11111111 ;008
- .ENDIF
- ;==================================================
- ;镜像 01:水平 00:垂直
- .IF ROM_MIRRIOR_OPEN
- Rom_Select_Mirrior:
- .DB $00 ;1
- .DB $00 ;2
- .DB $00 ;3
- .DB $00 ;4
- .DB $00 ;5
- .DB $00 ;6
- .DB $00 ;7
- .DB $00 ;8
- .ENDIF
- .IF MULTICART_TYPE == 45
- ;========================================
- CHR_Size_Map:
- .DB $01,$02,$04,$08,$10,$20
- CHR_Size_Data:
- .DB $0A,$0B,$0C,$0D,$0E,$0F
- ;----------------------------------------
- PRG_Size_Map:
- .DB $01,$02,$04,$08,$10,$20
- PRG_Size_Data:
- .DB $3E,$3C,$38,$30,$20,$00
- ;========================================
- ROM_PRG_Size:
- .DB $08,$08,$08,$08,$08,$08,$08,$08
- ROM_CHR_Size:
- .DB $10,$10,$10,$10,$10,$10,$10,$10
- ;镜像 01:水平 00:垂直
- ROM_Mirroring:
- .DB $00,$00,$00,$00,$00,$00,$00,$00
- ;选择序号索引
- ROM_Order:
- .DB $00,$01,$02,$03,$04,$05,$06,$07
- .ENDIF
- Stage_Data:
- .DB 0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7
- Life_Data:
- .DB 2,29,29,2,29,29,2,29,29,2,29,29,2,29,29,2,29,29,2,29,29,2,29,29
- Weapon_Data:
- .DB $00,$00,$13,$00,$00,$13,$00,$00,$13,$00,$00,$13,$00,$00,$13,$00,$00,$13,$00,$00,$13,$00,$00,$13
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|