Code: Select all
;[FC][菜单分页][20190517]
;FlameCyclone
;============================================================
RESET_ADDR = $E000 ;重置中断指针
;============================================================
ITEM_MAX_COUNT = 256 ;最大项数
ITEM_PAGE_SIZE = 12 ;每页项数
ITEM_BUFFER_SIZE = 03 ;单次写入缓冲数
;------------------------------------------------------------
ITEM_MAX = ITEM_MAX_COUNT - 001 ;最大项数
;------------------------------------------------------------
.IF ITEM_MAX < ITEM_PAGE_SIZE
ITEM_PAGE = ITEM_MAX_COUNT ;每页项数
ITEM_PAGE_MAX = 0 ;最大页
.ELSE
ITEM_PAGE = ITEM_PAGE_SIZE ;每页项数
ITEM_PAGE_MAX = ITEM_MAX / ITEM_PAGE * ITEM_PAGE ;最大页
.ENDIF
.IF ITEM_MAX_COUNT % ITEM_PAGE
ITEM_PAGE_SUM = ITEM_MAX_COUNT / ITEM_PAGE + 1 ;总页数
.ELSE
ITEM_PAGE_SUM = ITEM_MAX_COUNT / ITEM_PAGE ;总页数
.ENDIF
;============================================================
CHAR_NULL = $00 ;空字符索引
CHAR_SPACE = ' ' ;空格字符索引
CHAR_POINT = '.' ;空格句号索引
CHAR_PER = '/' ;斜杠符号索引
CHAR_DIGIT = '0' ;数字字符起始
CHAR_ARROW = $1F ;光标箭头图形索引
;============================================================
ORDER_INDEX_LENGTH = $03 ;序号数字长度
PAGE_INDEX_LENGTH = $02 ;页号数字长度
SOUND_INDEX_LENGTH = $03 ;曲号数字长度
;------------------------------------------------------------
NMUBER_LENGTH_MAX = $03 ;最大数字长度
;============================================================
FC_Data_L = $40 ;数据地址低位
FC_Data_H = FC_Data_L+$01 ;数据地址高位
FC_Data_Cnt = FC_Data_H+$01 ;数据计数
;============================================================
FC_PPU_Buffer = $0200 ;PPU缓冲地址
FC_PPU_Status = FC_PPU_Buffer+$C0 ;PPU显示状态
FC_PPU_Cursor = FC_PPU_Status + $01 ;当前PPU缓冲位置
FC_PPU_Addr_L = FC_PPU_Cursor + $01 ;PPU地址低位
FC_PPU_Addr_H = FC_PPU_Addr_L + $01 ;PPU地址高位
;============================================================
Item_Index_Cur = FC_PPU_Addr_H + $01 ;当前索引
Item_Index_Old = Item_Index_Cur + $01 ;历史索引
Item_Page_Cur = Item_Index_Old + $01 ;当前页
Item_Page_Old = Item_Page_Cur + $01 ;历史页
Item_Index_Cnt = Item_Page_Old + $01 ;索引计数
Item_Write_Buf = Item_Index_Cnt + $01 ;项缓冲最大数
;============================================================
BTN_DELAY_TIME = $18 ;按键延时启动
BTN_DELAY_SPEED = $08 ;按键延时速度
;------------------------------------------------------------
Btn_Once = Item_Write_Buf + $01 ;单次按键
Btn_Keep = Btn_Once + $01 ;长按按键
Btn_Delay = Btn_Keep + $01 ;长按延时
;------------------------------------------------------------
BTN_UP = $08 ;上键
BTN_DOWN = $04 ;下键
BTN_LEFT = $02 ;左键
BTN_RIGHT = $01 ;右键
BTN_B = $40 ;B键
BTN_A = $80 ;A键
BTN_SELECT = $20 ;选择键
BTN_START = $10 ;开始键
;============================================================
SCROLL_H_VALUE = $04 ;水平滚动
SCROLL_V_VALUE = $EC ;垂直滚动
;------------------------------------------------------------
Scroll_H = Btn_Delay + $01 ;水平滚动
Scroll_V = Scroll_H + $01 ;垂直滚动
;============================================================
DEC_100 = Scroll_V + $01 ;十进制百位
DEC_010 = DEC_100 + $01 ;十进制十位
DEC_001 = DEC_010 + $01 ;十进制个位
;============================================================
Sound_Index = DEC_001 + $01 ;曲目索引
Sound_Init = $8003 ;初始化地址
Sound_Play = $8000 ;播放地址
;------------------------------------------------------------
SOUND_MAX = 017 ;最大曲目
SOUND_BGM = 007 ;默认背景
SOUND_BTN = 028 ;按键音效
;============================================================
.ORG RESET_ADDR
;========================================
ProgramBegin: ;程序开始
SEI
CLD
LDX #$FF
TXS
LDA #$00
STA $2000
STA $2001
;========================================
TimeDelay: ;延时等待
LDX #$02
TimeDelayA:
BIT $2002
BPL TimeDelayA
TimeDelayB:
BIT $2002
BMI TimeDelayB
DEX
BNE TimeDelayA
;========================================
ClearScreen: ;清空屏幕
JSR PaletteClear
JSR NameTableClear
;========================================
PortInit: ;端口初始化
LDA #$0F
STA $4015
LDA #$C0
STA $4017
LDA #$00
STA $A000
;========================================
RamInit: ;内存初始化
LDX #$00
TXA
STA $00
STA $01
LDY #$00
RamInitSet:
STA ($00),Y
INY
BNE RamInitSet
INC $01
INX
CPX #$08
BCC RamInitSet
;========================================
ScreenInit: ;屏幕初始化
JSR ChrSteup
JSR PaletteSteup
JSR PpuLayoutSteup
LDA #SCROLL_H_VALUE
STA Scroll_H
LDA #SCROLL_V_VALUE
STA Scroll_V
JSR ShowTitle
JSR ShowPageItems
JSR ShowPageIndex
JSR ShowArrow
LDA #$0E
STA FC_PPU_Status
LDA #SOUND_BGM - 1
STA Sound_Index
JSR Sound_Init
;========================================
Circle: ;循环
JSR NmiDelay
JSR ButtonProcess
JSR ChangeItemIndex
JMP Circle
;========================================
NmiDelay: ;NMI延时
LDA $2002
BPL NmiDelay
JSR FC_PPU_Process
LDA Scroll_H
STA $2005
LDA Scroll_V
STA $2005
JSR Sound_Play
RTS
;========================================
MODE_CNTL = $FB ;行写入模式
MODE_CNTC = $FC ;行清除模式
MODE_CNTN = $FD ;行转行模式
MODE_CNTS = $FE ;转行空格写入模式
;----------------------------------------
FC_PPU_Process: ;PPU处理
LDA FC_PPU_Buffer
BEQ FC_PPU_Process_End
JSR FC_PPU_Process_Beg
FC_PPU_Process_End:
LDA #$00
STA FC_PPU_Buffer
STA $2006
STA $2006
STA $2005
STA $2005
LDA FC_PPU_Status
STA $2001
RTS
;----------------------------------------
FC_PPU_Process_Beg: ;处理开始
LDX FC_PPU_Cursor
LDA #$00
STA $2001
STA FC_PPU_Buffer,X
STA FC_PPU_Cursor
LDX #$FF
;----------------------------------------
FC_PPU_Mode_Select: ;模式选择
INX
LDA FC_PPU_Buffer,X
CMP #MODE_CNTL
BEQ FC_PPU_Mode_CountLine
CMP #MODE_CNTC
BEQ FC_PPU_Mode_CountClear
CMP #MODE_CNTN
BEQ FC_PPU_Mode_CountNext
CMP #MODE_CNTS
BEQ FC_PPU_Mode_CountSpace
RTS
;----------------------------------------
FC_PPU_Mode_CountLine: ;行写入模式
JSR FC_PPU_Set_Addr
LDY FC_PPU_Buffer,X
FC_PPU_CountLine_Write:
INX
LDA FC_PPU_Buffer,X
STA $2007
DEY
BNE FC_PPU_CountLine_Write
JMP FC_PPU_Mode_Select
;----------------------------------------
FC_PPU_Mode_CountClear: ;行清除模式
JSR FC_PPU_Write_Addr
LDY FC_PPU_Buffer,X
LDA #$00
FC_PPU_CountClear_Write:
STA $2007
DEY
BNE FC_PPU_CountClear_Write
JMP FC_PPU_Mode_Select
;----------------------------------------
FC_PPU_Mode_CountNext: ;转行写入模式
JSR FC_PPU_Set_Next
FC_PPU_CountNext_Write:
LDA FC_PPU_Addr_H
STA $2006
LDA FC_PPU_Addr_L
STA $2006
INX
LDY FC_PPU_Buffer,X
JMP FC_PPU_CountLine_Write
;----------------------------------------
FC_PPU_Mode_CountSpace: ;转行空格写入模式
JSR FC_PPU_Set_Next
FC_PPU_Mode_CountSpace_Write:
INX
LDA FC_PPU_Addr_H
STA $2006
LDA FC_PPU_Addr_L
AND #$E0
CLC
ADC FC_PPU_Buffer,X
STA FC_PPU_Addr_L
STA $2006
INX
LDY FC_PPU_Buffer,X
JMP FC_PPU_CountLine_Write
;----------------------------------------
FC_PPU_Set_Addr: ;写入地址
INX
LDA FC_PPU_Buffer,X
STA FC_PPU_Addr_H
STA $2006
INX
LDA FC_PPU_Buffer,X
STA FC_PPU_Addr_L
STA $2006
INX
RTS
;----------------------------------------
FC_PPU_Write_Addr: ;写入地址
INX
LDA FC_PPU_Buffer,X
STA $2006
INX
LDA FC_PPU_Buffer,X
STA $2006
INX
RTS
;----------------------------------------
FC_PPU_Set_Next: ;地址转行
LDA FC_PPU_Addr_L
CLC
ADC #$20
STA FC_PPU_Addr_L
BCC FC_PPU_Set_Next_End
INC FC_PPU_Addr_H
FC_PPU_Set_Next_End:
RTS
;==================================================
FC_PPU_Source_Write_Buffer: ;写入PPU缓冲数据
LDA (FC_Data_L),Y
STA FC_PPU_Buffer,X
INX
INY
RTS
;========================================
SRC_MODE_NULL = $FF ;无地址写入模式
;----------------------------------------
FC_PPU_Write_Source: ;源数据写入
PHA
TXA
PHA
TYA
PHA
LDX FC_PPU_Cursor
LDY #$00
LDA FC_Data_Cnt
STY FC_Data_Cnt
INC FC_Data_Cnt
CMP #SRC_MODE_NULL
BNE FC_PPU_Write_Line
JSR FC_PPU_Source_Write_Buffer
STA FC_Data_Cnt
FC_PPU_Write_Source_Set:
JSR FC_PPU_Source_Write_Buffer
DEC FC_Data_Cnt
BNE FC_PPU_Write_Source_Set
FC_PPU_Write_Line:
LDA (FC_Data_L),Y
CMP #MODE_CNTL
BNE FC_PPU_Write_Next
JSR FC_PPU_Source_Write_Buffer
JSR FC_PPU_Source_Write_Buffer
JSR FC_PPU_Source_Write_Buffer
JSR FC_PPU_Source_Write_Buffer
STA FC_Data_Cnt
BNE FC_PPU_Write_Source_Set
FC_PPU_Write_Next:
CMP #MODE_CNTN
BNE FC_PPU_Write_Space
JSR FC_PPU_Source_Write_Buffer
JSR FC_PPU_Source_Write_Buffer
STA FC_Data_Cnt
BNE FC_PPU_Write_Source_Set
FC_PPU_Write_Space:
CMP #MODE_CNTS
BNE FC_PPU_Write_Clear
JSR FC_PPU_Source_Write_Buffer
JSR FC_PPU_Source_Write_Buffer
JSR FC_PPU_Source_Write_Buffer
STA FC_Data_Cnt
BNE FC_PPU_Write_Source_Set
FC_PPU_Write_Clear:
CMP #MODE_CNTC
BNE FC_PPU_Write_Source_End
JSR FC_PPU_Source_Write_Buffer
JSR FC_PPU_Source_Write_Buffer
BNE FC_PPU_Write_Line
FC_PPU_Write_Source_End:
STX FC_PPU_Cursor
LDA #$00
STA FC_Data_Cnt
PLA
TAY
PLA
TAX
PLA
RTS
;========================================
FC_PPU_Source_Write: ;写入PPU缓冲数据
STA FC_PPU_Buffer,X
INX
INY
RTS
;========================================
FC_PPU_Clear_Source: ;源数据清除
PHA
TXA
PHA
TYA
PHA
LDX FC_PPU_Cursor
LDY #$00
LDA FC_Data_Cnt
STY FC_Data_Cnt
INC FC_Data_Cnt
CMP #SRC_MODE_NULL
BNE FC_PPU_Clear_Line
FC_PPU_Clear_Source_Set:
LDA (FC_Data_L),Y
STA FC_PPU_Buffer,X
TYA
CLC
ADC (FC_Data_L),Y
TAY
INX
INY
FC_PPU_Clear_Line:
LDA (FC_Data_L),Y
CMP #MODE_CNTL
BNE FC_PPU_Clear_Next
LDA #MODE_CNTC
JSR FC_PPU_Source_Write
LDA (FC_Data_L),Y
STA FC_PPU_Addr_H
JSR FC_PPU_Source_Write
LDA (FC_Data_L),Y
STA FC_PPU_Addr_L
JSR FC_PPU_Source_Write
JMP FC_PPU_Clear_Source_Set
FC_PPU_Clear_Next:
CMP #MODE_CNTN
BNE FC_PPU_Clear_Space
JSR FC_PPU_Set_Next
LDA #MODE_CNTC
STA FC_PPU_Buffer,X
INX
LDA FC_PPU_Addr_H
STA FC_PPU_Buffer,X
INX
LDA FC_PPU_Addr_L
JSR FC_PPU_Source_Write
JMP FC_PPU_Clear_Source_Set
FC_PPU_Clear_Space:
CMP #MODE_CNTS
BNE FC_PPU_Clear_Clear
JSR FC_PPU_Set_Next
INY
LDA #MODE_CNTC
STA FC_PPU_Buffer,X
INX
LDA FC_PPU_Addr_H
STA FC_PPU_Buffer,X
INX
LDA FC_PPU_Addr_L
AND #$E0
CLC
ADC (FC_Data_L),Y
STA FC_PPU_Addr_L
JSR FC_PPU_Source_Write
JMP FC_PPU_Clear_Source_Set
FC_PPU_Clear_Clear:
CMP #MODE_CNTC
BNE FC_PPU_Clear_Source_End
JSR FC_PPU_Source_Write
LDA (FC_Data_L),Y
JSR FC_PPU_Source_Write
LDA (FC_Data_L),Y
JSR FC_PPU_Source_Write
LDA (FC_Data_L),Y
JSR FC_PPU_Source_Write
JMP FC_PPU_Clear_Line
FC_PPU_Clear_Source_End:
STX FC_PPU_Cursor
LDA #$00
STA FC_Data_Cnt
PLA
TAY
PLA
TAX
PLA
RTS
;========================================
ButtonProcess: ;按键扫描
LDX #$01
STX $4016
DEX
STX $4016
ButtonScan
LDY #$08
ButtonScanBeg:
LDA $4016,X
LSR
ROL Btn_Once,X
LSR
DEY
BNE ButtonScanBeg
ButtonSet:
LDA Btn_Once,X
TAY
EOR Btn_Keep,X
AND Btn_Once,X
STA Btn_Once,X
TYA
STA Btn_Keep,X
;----------------------------------------
ButtonDelay: ;按键长按延迟
LDA Btn_Keep
BEQ ButtonDelayEnd
CMP #$10
BEQ ButtonDelayEnd
LDA Btn_Delay
CMP #BTN_DELAY_TIME
BCS ButtonDelayPress
INC Btn_Delay
RTS
ButtonDelayPress:
INC Btn_Delay
LDA Btn_Delay
SEC
SBC #BTN_DELAY_TIME
CMP #BTN_DELAY_SPEED
BCS ButtonDelayFinish
RTS
ButtonDelayFinish:
LDA Btn_Keep
STA Btn_Once
LDA #BTN_DELAY_TIME
ButtonDelayEnd:
STA Btn_Delay
RTS
;========================================
HexToDec: ;8位十六进制转十进制
LDY #$00
BCC Count100
INY
SBC #100
Count100:
CMP #100
BCC Set100
SBC #100
INY
BNE Count100
Set100:
STY DEC_100
LDY #$00
Count010:
CMP #10
BCC Set010
SBC #10
INY
BNE Count010
Set010:
STY DEC_010
STA DEC_001
RTS
;========================================
ChrSteup: ;图形块设置
LDX #$00
ChrSteupSet:
STX $8000
LDA Chr_Bank_Data,X
STA $8001
INX
CPX #$06
BCC ChrSteupSet
RTS
;========================================
PaletteClear: ;调色板清空
LDA #$3F
STA $2006
LDA #$00
STA $2006
LDX #$00
LDA #$0F
PaletteClearSet:
STA $2007
INX
CPX #$20
BCC PaletteClearSet
RTS
;========================================
NameTableClear: ;命名表清空
LDA #$20
STA $2006
LDA #$00
STA $2006
LDX #$00
LDY #$00
LDA #$00
NameTableClearSet:
STA $2007
INX
BNE NameTableClearSet
INY
CPY #10
BCC NameTableClearSet
RTS
;========================================
PaletteSteup: ;背景调色板设置
LDA #$3F
STA $2006
LDA #$00
STA $2006
LDX #$00
PaletteSteupSet:
LDA Palette_Data,X
STA $2007
INX
CPX #$10
BCC PaletteSteupSet
RTS
;========================================
PpuLayoutSteup: ;属性表配置
LDA #$23
STA $2006
LDA #$C0
STA $2006
LDX #$00
PpuLayoutSteupSet:
LDA PpuLayout_Data,X
STA $2007
INX
CPX #$40
BCC PpuLayoutSteupSet
RTS
;========================================
GetPageIndex: ;计算页索引
LDA #$00
STA Item_Page_Cur
LDA Item_Index_Cur
CMP #ITEM_PAGE
BCC GetPageIndexReturn
LDA #$00
CLC
GetPageIndexSet:
ADC #ITEM_PAGE
BCS GetPageMaxIndex
CMP Item_Index_Cur
BEQ GetPageIndexEnd
BCS GetPageIndexReturn
STA Item_Page_Cur
BNE GetPageIndexSet
GetPageIndexEnd:
STA Item_Page_Cur
GetPageIndexReturn:
RTS
GetPageMaxIndex:
LDA #ITEM_PAGE_MAX
STA Item_Page_Cur
RTS
;========================================
SaveOldSelect: ;保存历史索引
LDA Item_Page_Cur
STA Item_Page_Old
LDA Item_Index_Cur
STA Item_Index_Old
RTS
;========================================
SetLastPage: ;设置上一页索引
JSR SaveOldSelect
LDA #ITEM_MAX
CMP #ITEM_PAGE
BCS SetLastPageMul
LDA #$00
STA Item_Index_Cur
RTS
SetLastPageMul:
LDA Item_Index_Cur
CMP #ITEM_PAGE
BCC SetMaxPage
SEC
SBC #ITEM_PAGE
STA Item_Index_Cur
RTS
SetMaxPage:
LDA #ITEM_PAGE_MAX
CLC
ADC Item_Index_Cur
BCS SetLastMaxSet
CMP #ITEM_MAX
SetLastMaxSet
BCC SetLastPageSet
LDA #ITEM_MAX
SetLastPageSet:
STA Item_Index_Cur
RTS
;========================================
SetNextPage: ;设置下一页索引
JSR SaveOldSelect
LDA #ITEM_MAX
CMP #ITEM_PAGE
BCS SetNextPageMul
LDA #ITEM_PAGE - 1
STA Item_Index_Cur
RTS
SetNextPageMul:
LDA Item_Index_Cur
CMP #ITEM_PAGE_MAX
BCS SetNext
CLC
ADC #ITEM_PAGE
BCS SetNextMaxSet
CMP #ITEM_MAX
BCC SetNextSet
SetNextMaxSet
LDA #ITEM_MAX
SetNextSet:
STA Item_Index_Cur
RTS
SetNext:
LDA Item_Index_Cur
SEC
SBC #ITEM_PAGE_MAX
STA Item_Index_Cur
RTS
;========================================
SetLastItem: ;设置上一项索引
JSR SaveOldSelect
LDA Item_Index_Cur
BEQ SetMaxItem
LDA Item_Index_Cur
CMP Item_Page_Cur
BNE SetLastItemSet
SetLastItemSet:
DEC Item_Index_Cur
RTS
SetMaxItem:
LDA #ITEM_MAX
STA Item_Index_Cur
JSR GetPageIndex
RTS
;========================================
SetNextItem: ;设置下一项索引
JSR SaveOldSelect
LDA Item_Index_Cur
CMP #ITEM_MAX
BEQ SetMinItem
LDA Item_Page_Cur
CLC
ADC #ITEM_PAGE -1
CMP Item_Index_Cur
BNE SetNextItemSet
SetNextItemSet:
INC Item_Index_Cur
RTS
SetMinItem:
LDA #$00
STA Item_Index_Cur
JSR GetPageIndex
RTS
;========================================
SetOrderPos: ;设置序号位置
LDY Item_Index_Cnt
LDA Pos_Data_H,Y
STA FC_PPU_Buffer,X
INX
LDA Pos_Data_L,Y
STA FC_PPU_Buffer,X
INX
LDA #ORDER_INDEX_LENGTH + 1
STA FC_PPU_Buffer,X
INX
RTS
;========================================
ClearOrder: ;清除序号
LDA Item_Page_Cur
CMP Item_Page_Old
BEQ ClearOrderEnd
LDA Item_Page_Old
CLC
ADC Item_Index_Cnt
BCS ClearOrderEnd
CMP #ITEM_MAX
BEQ ClearOrderSet
BCS ClearOrderEnd
ClearOrderSet:
LDX FC_PPU_Cursor
LDA #MODE_CNTC
STA FC_PPU_Buffer,X
INX
JSR SetOrderPos
ClearOrderWrite:
STX FC_PPU_Cursor
ClearOrderEnd:
RTS
;========================================
WriteNum: ;写入数字
TAY
WriteNumSet:
LDA DEC_100,Y
CLC
ADC #CHAR_DIGIT
STA FC_PPU_Buffer,X
INX
INY
CPY #$03
BCC WriteNumSet
RTS
;========================================
ShowOrder: ;显示序号
LDA Item_Page_Cur
CLC
ADC Item_Index_Cnt
BCS ShowOrderEnd
CMP #ITEM_MAX
BEQ ShowOrderSet
BCS ShowOrderEnd
ShowOrderSet:
CLC
ADC #$01
JSR HexToDec
LDX FC_PPU_Cursor
LDA #MODE_CNTL
STA FC_PPU_Buffer,X
INX
JSR SetOrderPos
LDA #NMUBER_LENGTH_MAX - ORDER_INDEX_LENGTH
JSR WriteNum
LDA #CHAR_POINT
STA FC_PPU_Buffer,X
INX
STX FC_PPU_Cursor
ShowOrderEnd:
RTS
;========================================
UpdateOrder: ;更新序号
JSR ClearOrder
JSR ShowOrder
RTS
;========================================
SetTextPos: ;设置文本位置
LDY Item_Index_Cnt
LDA Pos_Data_H,Y
STA FC_PPU_Buffer,X
STA FC_PPU_Addr_H
INX
LDA Pos_Data_L,Y
CLC
ADC #ORDER_INDEX_LENGTH + 1
STA FC_PPU_Buffer,X
STA FC_PPU_Addr_L
INX
RTS
;========================================
ClearText: ;清除文本
LDA Item_Page_Cur
CMP Item_Page_Old
BEQ ClearTextEnd
LDA Item_Page_Old
CLC
ADC Item_Index_Cnt
BCS ClearTextEnd
CMP #ITEM_MAX
BEQ ClearTextSet
BCS ClearTextEnd
ClearTextSet:
LDX FC_PPU_Cursor
LDA #MODE_CNTC
STA FC_PPU_Buffer,X
INX
JSR SetTextPos
STX FC_PPU_Cursor
LDA Item_Page_Old
CLC
ADC Item_Index_Cnt
TAY
LDA Text_Data_L,Y
STA FC_Data_L
LDA Text_Data_H,Y
STA FC_Data_H
LDA #SRC_MODE_NULL
STA FC_Data_Cnt
JSR FC_PPU_Clear_Source
ClearTextEnd:
RTS
;========================================
ShowText: ;显示文本
LDA Item_Page_Cur
CLC
ADC Item_Index_Cnt
BCS ShowTextEnd
CMP #ITEM_MAX
BEQ ShowTextSet
BCS ShowTextEnd
ShowTextSet:
LDX FC_PPU_Cursor
LDA #MODE_CNTL
STA FC_PPU_Buffer,X
INX
JSR SetTextPos
STX FC_PPU_Cursor
LDA Item_Page_Cur
CLC
ADC Item_Index_Cnt
TAY
LDA Text_Data_L,Y
STA FC_Data_L
LDA Text_Data_H,Y
STA FC_Data_H
LDA #SRC_MODE_NULL
STA FC_Data_Cnt
JSR FC_PPU_Write_Source
ShowTextEnd:
RTS
;========================================
UpdateText: ;更新文本
JSR ClearText
JSR ShowText
RTS
;========================================
ShowTitle: ;显示标题
LDA #<Title_Text_Data
STA FC_Data_L
LDA #>Title_Text_Data
STA FC_Data_H
JSR FC_PPU_Write_Source
ShowTitleEnd:
JSR NmiDelay
RTS
;========================================
SetArrowPos: ;设置箭头位置
TAY
LDA Pos_Data_H,Y
STA FC_PPU_Buffer,X
INX
LDA Pos_Data_L,Y
SEC
SBC #$02
STA FC_PPU_Buffer,X
INX
LDA #$01
STA FC_PPU_Buffer,X
INX
RTS
;========================================
ShowArrow: ;显示箭头
ShowArrowClear:
LDX FC_PPU_Cursor
LDA #MODE_CNTL
STA FC_PPU_Buffer,X
INX
LDA Item_Index_Old
SEC
SBC Item_Page_Old
JSR SetArrowPos
LDA #CHAR_NULL
STA FC_PPU_Buffer,X
INX
ShowArrowShow:
LDA #MODE_CNTL
STA FC_PPU_Buffer,X
INX
LDA Item_Index_Cur
SEC
SBC Item_Page_Cur
JSR SetArrowPos
LDA #CHAR_ARROW
STA FC_PPU_Buffer,X
INX
STX FC_PPU_Cursor
RTS
;========================================
UpdateArrow: ;更新箭头
LDA Item_Index_Old
SEC
SBC Item_Page_Old
STA FC_Data_Cnt
LDA Item_Index_Cur
SEC
SBC Item_Page_Cur
CMP FC_Data_Cnt
BEQ UpdateArrowEnd
JSR ShowArrow
UpdateArrowEnd:
RTS
;========================================
ShowSingleItem: ;显示一项内容
JSR UpdateOrder
JSR UpdateText
ShowSingleItemEnd:
RTS
;========================================
ShowPageItems: ;显示一页内容
LDA #$00
STA Item_Index_Cnt
STA Item_Write_Buf
ShowPageItemsSet:
JSR ShowSingleItem
INC Item_Write_Buf
LDA Item_Write_Buf
CMP #ITEM_BUFFER_SIZE
BCC ShowPageItemsWrite
JSR NmiDelay
LDA #$00
STA Item_Write_Buf
ShowPageItemsWrite:
INC Item_Index_Cnt
LDA Item_Index_Cnt
CMP #ITEM_PAGE
BCC ShowPageItemsSet
LDA Item_Write_Buf
BEQ ShowPageItemsEnd
JSR NmiDelay
LDA #$00
STA Item_Write_Buf
ShowPageItemsEnd:
RTS
;========================================
UpdatePage: ;更新页内容
LDA Item_Page_Cur
CMP Item_Page_Old
BEQ UpdatePageEnd
JSR ShowPageItems
JSR ShowPageIndex
UpdatePageEnd:
RTS
;========================================
SetPageIndexPos: ;设置页号位置
LDX FC_PPU_Cursor
LDY #$00
LDA Title_Text_Data,Y
STA FC_PPU_Buffer,X
INX
INY
LDA Title_Text_Data,Y
STA FC_PPU_Buffer,X
INX
INY
LDA Title_Text_Data,Y
INY
CLC
ADC Title_Text_Data,Y
ADC #$02
STA FC_PPU_Buffer,X
INX
LDA #PAGE_INDEX_LENGTH * 2 + 1
STA FC_PPU_Buffer,X
INX
SetPageIndexPosEnd:
STX FC_PPU_Cursor
RTS
;========================================
ShowPageIndex: ;显示页号
LDA Item_Page_Cur
LDX #$01
ShowPageIndexSet:
CMP #ITEM_PAGE
BCC ShowPageIndexEnd
SEC
SBC #ITEM_PAGE
INX
BNE ShowPageIndexSet
ShowPageIndexEnd:
TXA
CLC
JSR HexToDec
JSR SetPageIndexPos
LDA #NMUBER_LENGTH_MAX - PAGE_INDEX_LENGTH
JSR WriteNum
LDA #CHAR_PER
STA FC_PPU_Buffer,X
INX
LDA #ITEM_PAGE_SUM
CLC
JSR HexToDec
LDA #NMUBER_LENGTH_MAX - PAGE_INDEX_LENGTH
JSR WriteNum
STX FC_PPU_Cursor
RTS
;========================================
LastSound: ;播放上一首
LDA Sound_Index
BEQ LastSoundEnd
LastSoundSet:
DEC Sound_Index
LDA Sound_Index
JSR Sound_Init
LastSoundEnd:
RTS
;========================================
NextSound: ;播放下一首
LDA Sound_Index
CMP #SOUND_MAX - 1
BEQ NextSoundEnd
NextSoundSet:
INC Sound_Index
LDA Sound_Index
JSR Sound_Init
NextSoundEnd:
RTS
;========================================
StopSound: ;停止音乐
LDA #$0B
STA $4015
LDA #$00
STA $4008
LDA #$0F
STA $4015
LDA #$30
STA $4000
STA $4004
STA $400C
LDA #$7F
STA $4001
STA $4005
RTS
;========================================
ChangeItemIndex: ;改变项索引
LDA Btn_Once
AND #$FF
BNE ChangeItemSound
RTS
ChangeItemSound:
LDA Btn_Once
AND #$2F
BEQ SelectLastPage
LDA #SOUND_BTN - 1
JSR Sound_Init
SelectLastPage:
LDA Btn_Once
CMP #BTN_LEFT
BNE SelectNextPage
JSR SetLastPage
JSR GetPageIndex
SelectNextPage:
LDA Btn_Once
CMP #BTN_RIGHT
BNE SelectLastItem
JSR SetNextPage
JSR GetPageIndex
SelectLastItem:
LDA Btn_Once
CMP #BTN_UP
BNE SelectNextItem
JSR SetLastItem
JSR GetPageIndex
SelectNextItem:
LDA Btn_Once
AND #BTN_SELECT | BTN_DOWN
BEQ SelectLastSound
JSR SetNextItem
JSR GetPageIndex
SelectLastSound:
LDA Btn_Once
CMP #BTN_B
BNE SelectNextSound
JSR LastSound
SelectNextSound:
LDA Btn_Once
CMP #BTN_A
BNE SelectResetSound
JSR NextSound
SelectResetSound:
LDA Btn_Once
CMP #BTN_START
BNE ChangeItemIndexEnd
LDA Sound_Index
JSR Sound_Init
ChangeItemIndexEnd:
JSR UpdatePage
JSR UpdateArrow
ChangeItemIndexReturn:
RTS
;========================================
Chr_Bank_Data: ;图形块号
.DB $00,$02,$04,$05,$06,$07
;========================================
Palette_Data: ;背景调色板数据
.DB $0F,$24,$24,$24,$0F,$20,$20,$20,$0F,$27,$27,$27,$0F,$2C,$2C,$2C
;========================================
PpuLayout_Data: ;属性表数据
.DB $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$FF,$55,$00,$00,$00,$00,$00,$00
.DB $FF,$55,$00,$00,$00,$00,$00,$00,$FF,$55,$00,$00,$00,$00,$00,$00
.DB $FF,$55,$00,$00,$00,$00,$00,$00,$FF,$55,$00,$00,$00,$00,$00,$00
.DB $FF,$55,$00,$00,$00,$00,$00,$00,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA
;========================================
Pos_Data_L: ;节目坐标位置低位
.DB $84,$C4,$04,$44,$84,$C4,$04,$44,$84,$C4,$04,$44
Pos_Data_H:;节目坐标位置高位
.DB $20,$20,$21,$21,$21,$21,$22,$22,$22,$22,$23,$23
;========================================
Text_Data_L: ;节目文本地址低位
.DB <ITEM_001,<ITEM_002,<ITEM_003,<ITEM_004,<ITEM_005,<ITEM_006,<ITEM_007,<ITEM_008,<ITEM_009,<ITEM_010
.DB <ITEM_011,<ITEM_012,<ITEM_013,<ITEM_014,<ITEM_015,<ITEM_016,<ITEM_017,<ITEM_018,<ITEM_019,<ITEM_020
.DB <ITEM_021,<ITEM_022,<ITEM_023,<ITEM_024,<ITEM_025,<ITEM_026,<ITEM_027,<ITEM_028,<ITEM_029,<ITEM_030
.DB <ITEM_031,<ITEM_032,<ITEM_033,<ITEM_034,<ITEM_035,<ITEM_036,<ITEM_037,<ITEM_038,<ITEM_039,<ITEM_040
.DB <ITEM_041,<ITEM_042,<ITEM_043,<ITEM_044,<ITEM_045,<ITEM_046,<ITEM_047,<ITEM_048,<ITEM_049,<ITEM_050
.DB <ITEM_051,<ITEM_052,<ITEM_053,<ITEM_054,<ITEM_055,<ITEM_056,<ITEM_057,<ITEM_058,<ITEM_059,<ITEM_060
.DB <ITEM_061,<ITEM_062,<ITEM_063,<ITEM_064,<ITEM_065,<ITEM_066,<ITEM_067,<ITEM_068,<ITEM_069,<ITEM_070
.DB <ITEM_071,<ITEM_072,<ITEM_073,<ITEM_074,<ITEM_075,<ITEM_076,<ITEM_077,<ITEM_078,<ITEM_079,<ITEM_080
.DB <ITEM_081,<ITEM_082,<ITEM_083,<ITEM_084,<ITEM_085,<ITEM_086,<ITEM_087,<ITEM_088,<ITEM_089,<ITEM_090
.DB <ITEM_091,<ITEM_092,<ITEM_093,<ITEM_094,<ITEM_095,<ITEM_096,<ITEM_097,<ITEM_098,<ITEM_099,<ITEM_100
.DB <ITEM_101,<ITEM_102,<ITEM_103,<ITEM_104,<ITEM_105,<ITEM_106,<ITEM_107,<ITEM_108,<ITEM_109,<ITEM_110
.DB <ITEM_111,<ITEM_112,<ITEM_113,<ITEM_114,<ITEM_115,<ITEM_116,<ITEM_117,<ITEM_118,<ITEM_119,<ITEM_120
.DB <ITEM_121,<ITEM_122,<ITEM_123,<ITEM_124,<ITEM_125,<ITEM_126,<ITEM_127,<ITEM_128,<ITEM_129,<ITEM_130
.DB <ITEM_131,<ITEM_132,<ITEM_133,<ITEM_134,<ITEM_135,<ITEM_136,<ITEM_137,<ITEM_138,<ITEM_139,<ITEM_140
.DB <ITEM_141,<ITEM_142,<ITEM_143,<ITEM_144,<ITEM_145,<ITEM_146,<ITEM_147,<ITEM_148,<ITEM_149,<ITEM_150
.DB <ITEM_151,<ITEM_152,<ITEM_153,<ITEM_154,<ITEM_155,<ITEM_156,<ITEM_157,<ITEM_158,<ITEM_159,<ITEM_160
.DB <ITEM_161,<ITEM_162,<ITEM_163,<ITEM_164,<ITEM_165,<ITEM_166,<ITEM_167,<ITEM_168,<ITEM_169,<ITEM_170
.DB <ITEM_171,<ITEM_172,<ITEM_173,<ITEM_174,<ITEM_175,<ITEM_176,<ITEM_177,<ITEM_178,<ITEM_179,<ITEM_180
.DB <ITEM_181,<ITEM_182,<ITEM_183,<ITEM_184,<ITEM_185,<ITEM_186,<ITEM_187,<ITEM_188,<ITEM_189,<ITEM_190
.DB <ITEM_191,<ITEM_192,<ITEM_193,<ITEM_194,<ITEM_195,<ITEM_196,<ITEM_197,<ITEM_198,<ITEM_199,<ITEM_200
.DB <ITEM_201,<ITEM_202,<ITEM_203,<ITEM_204,<ITEM_205,<ITEM_206,<ITEM_207,<ITEM_208,<ITEM_209,<ITEM_210
.DB <ITEM_211,<ITEM_212,<ITEM_213,<ITEM_214,<ITEM_215,<ITEM_216,<ITEM_217,<ITEM_218,<ITEM_219,<ITEM_220
.DB <ITEM_221,<ITEM_222,<ITEM_223,<ITEM_224,<ITEM_225,<ITEM_226,<ITEM_227,<ITEM_228,<ITEM_229,<ITEM_230
.DB <ITEM_231,<ITEM_232,<ITEM_233,<ITEM_234,<ITEM_235,<ITEM_236,<ITEM_237,<ITEM_238,<ITEM_239,<ITEM_240
.DB <ITEM_241,<ITEM_242,<ITEM_243,<ITEM_244,<ITEM_245,<ITEM_246,<ITEM_247,<ITEM_248,<ITEM_249,<ITEM_250
.DB <ITEM_251,<ITEM_252,<ITEM_253,<ITEM_254,<ITEM_255,<ITEM_256
;----------------------------------------
Text_Data_H: ;节目文本地址高位
.DB >ITEM_001,>ITEM_002,>ITEM_003,>ITEM_004,>ITEM_005,>ITEM_006,>ITEM_007,>ITEM_008,>ITEM_009,>ITEM_010
.DB >ITEM_011,>ITEM_012,>ITEM_013,>ITEM_014,>ITEM_015,>ITEM_016,>ITEM_017,>ITEM_018,>ITEM_019,>ITEM_020
.DB >ITEM_021,>ITEM_022,>ITEM_023,>ITEM_024,>ITEM_025,>ITEM_026,>ITEM_027,>ITEM_028,>ITEM_029,>ITEM_030
.DB >ITEM_031,>ITEM_032,>ITEM_033,>ITEM_034,>ITEM_035,>ITEM_036,>ITEM_037,>ITEM_038,>ITEM_039,>ITEM_040
.DB >ITEM_041,>ITEM_042,>ITEM_043,>ITEM_044,>ITEM_045,>ITEM_046,>ITEM_047,>ITEM_048,>ITEM_049,>ITEM_050
.DB >ITEM_051,>ITEM_052,>ITEM_053,>ITEM_054,>ITEM_055,>ITEM_056,>ITEM_057,>ITEM_058,>ITEM_059,>ITEM_060
.DB >ITEM_061,>ITEM_062,>ITEM_063,>ITEM_064,>ITEM_065,>ITEM_066,>ITEM_067,>ITEM_068,>ITEM_069,>ITEM_070
.DB >ITEM_071,>ITEM_072,>ITEM_073,>ITEM_074,>ITEM_075,>ITEM_076,>ITEM_077,>ITEM_078,>ITEM_079,>ITEM_080
.DB >ITEM_081,>ITEM_082,>ITEM_083,>ITEM_084,>ITEM_085,>ITEM_086,>ITEM_087,>ITEM_088,>ITEM_089,>ITEM_090
.DB >ITEM_091,>ITEM_092,>ITEM_093,>ITEM_094,>ITEM_095,>ITEM_096,>ITEM_097,>ITEM_098,>ITEM_099,>ITEM_100
.DB >ITEM_101,>ITEM_102,>ITEM_103,>ITEM_104,>ITEM_105,>ITEM_106,>ITEM_107,>ITEM_108,>ITEM_109,>ITEM_110
.DB >ITEM_111,>ITEM_112,>ITEM_113,>ITEM_114,>ITEM_115,>ITEM_116,>ITEM_117,>ITEM_118,>ITEM_119,>ITEM_120
.DB >ITEM_121,>ITEM_122,>ITEM_123,>ITEM_124,>ITEM_125,>ITEM_126,>ITEM_127,>ITEM_128,>ITEM_129,>ITEM_130
.DB >ITEM_131,>ITEM_132,>ITEM_133,>ITEM_134,>ITEM_135,>ITEM_136,>ITEM_137,>ITEM_138,>ITEM_139,>ITEM_140
.DB >ITEM_141,>ITEM_142,>ITEM_143,>ITEM_144,>ITEM_145,>ITEM_146,>ITEM_147,>ITEM_148,>ITEM_149,>ITEM_150
.DB >ITEM_151,>ITEM_152,>ITEM_153,>ITEM_154,>ITEM_155,>ITEM_156,>ITEM_157,>ITEM_158,>ITEM_159,>ITEM_160
.DB >ITEM_161,>ITEM_162,>ITEM_163,>ITEM_164,>ITEM_165,>ITEM_166,>ITEM_167,>ITEM_168,>ITEM_169,>ITEM_170
.DB >ITEM_171,>ITEM_172,>ITEM_173,>ITEM_174,>ITEM_175,>ITEM_176,>ITEM_177,>ITEM_178,>ITEM_179,>ITEM_180
.DB >ITEM_181,>ITEM_182,>ITEM_183,>ITEM_184,>ITEM_185,>ITEM_186,>ITEM_187,>ITEM_188,>ITEM_189,>ITEM_190
.DB >ITEM_191,>ITEM_192,>ITEM_193,>ITEM_194,>ITEM_195,>ITEM_196,>ITEM_197,>ITEM_198,>ITEM_199,>ITEM_200
.DB >ITEM_201,>ITEM_202,>ITEM_203,>ITEM_204,>ITEM_205,>ITEM_206,>ITEM_207,>ITEM_208,>ITEM_209,>ITEM_210
.DB >ITEM_211,>ITEM_212,>ITEM_213,>ITEM_214,>ITEM_215,>ITEM_216,>ITEM_217,>ITEM_218,>ITEM_219,>ITEM_220
.DB >ITEM_221,>ITEM_222,>ITEM_223,>ITEM_224,>ITEM_225,>ITEM_226,>ITEM_227,>ITEM_228,>ITEM_229,>ITEM_230
.DB >ITEM_231,>ITEM_232,>ITEM_233,>ITEM_234,>ITEM_235,>ITEM_236,>ITEM_237,>ITEM_238,>ITEM_239,>ITEM_240
.DB >ITEM_241,>ITEM_242,>ITEM_243,>ITEM_244,>ITEM_245,>ITEM_246,>ITEM_247,>ITEM_248,>ITEM_249,>ITEM_250
.DB >ITEM_251,>ITEM_252,>ITEM_253,>ITEM_254,>ITEM_255,>ITEM_256
;========================================
Title_Text_Data: ;标题文本数据
.DB MODE_CNTL,$20,$43
.STR "VIDEO GAMES 256 IN 1"
;========================================
Text_Data: ;节目文本
ITEM_001 .STR "CONTRA"
ITEM_002 .STR "SUPER CONTRA"
ITEM_003 .STR "CONTRA FORCE"
ITEM_004 .STR "FINAL MISSION"
ITEM_005 .STR "KAGE"
ITEM_006 .STR "CHIP TO DALE"
ITEM_007 .STR "CHIP TO DALE 2"
ITEM_008 .STR "DOUBLE DRAGON"
ITEM_009 .STR "DOUBLE DRAGON 2"
ITEM_010 .STR "DOUBLE DRAGON 3"
ITEM_011 .STR "NEKKETSU DODGEBALL"
ITEM_012 .STR "NEKKETSU SOCCER HEN"
ITEM_013 .STR "NEKKETSU KAKUTOU"
ITEM_014 .STR "NEKKETSU KOUSHIN KYOKU"
ITEM_015 .STR "NEKKETSU STREET BASKET"
ITEM_016 .STR "NEKKETSU HOCKEY BU"
ITEM_017 .STR "NEKKETSU SHIN KIROKU"
ITEM_018 .STR "NEKKETSU MONOGATARI"
ITEM_019 .STR "NEKKETSU KUNIO KUN"
ITEM_020 .STR "NEKKETSU SOCCER LEAGUE"
ITEM_021 .STR "NEKKETSU KOUHA"
ITEM_022 .STR "MONSTER IN MY POCKET"
ITEM_023 .STR "WAI WAI WORLD"
ITEM_024 .STR "IKARI III"
ITEM_025 .STR "DATSUGOKU"
ITEM_026 .STR "SNOW BROS"
ITEM_027 .STR "NINJA TURTLES"
ITEM_028 .STR "NINJA TURTLES 2"
ITEM_029 .STR "NINJA TURTLES 3"
ITEM_030 .STR "TURTLES FIGHTER"
ITEM_031 .STR "HEAVY BARREL"
ITEM_032 .STR "JACKAL"
ITEM_033 .STR "RUSH N ATTACK"
ITEM_034 .STR "LIFE FORCE"
ITEM_035 .STR "GUERRILLA WAR"
ITEM_036 .STR "SILK WORM"
ITEM_037 .STR "SUPER MARIO BROS"
ITEM_038 .STR "SUPER MARIO BROS 2"
ITEM_039 .STR "SUPER MARIO BROS 3"
ITEM_040 .STR "ADVENTURE ISLAND"
ITEM_041 .STR "ADVENTURE ISLAND 2"
ITEM_042 .STR "ADVENTURE ISLAND 3"
ITEM_043 .STR "ADVENTURE ISLAND 4"
ITEM_044 .STR "ROCKMAN"
ITEM_045 .STR "ROCKMAN 2"
ITEM_046 .STR "ROCKMAN 3"
ITEM_047 .STR "ROCKMAN 5"
ITEM_048 .STR "NINJA GAIDEN"
ITEM_049 .STR "NINJA GAIDEN 2"
ITEM_050 .STR "NINJA GAIDEN 3"
ITEM_051 .STR "CASTLEVANIA"
ITEM_052 .STR "CASTLEVANIA 2"
ITEM_053 .STR "CASTLEVANIA 3"
ITEM_054 .STR "BATMAN"
ITEM_055 .STR "BATMAN RETURNS"
ITEM_056 .STR "POWER BLADE"
ITEM_057 .STR "POWER BLADE 2"
ITEM_058 .STR "ROBOCOP"
ITEM_059 .STR "ROBOCOP 2"
ITEM_060 .STR "ROBOCOP 3"
ITEM_061 .STR "KID NIKI 2"
ITEM_062 .STR "KID NIKI 3"
ITEM_063 .STR "FLINTSTONES"
ITEM_064 .STR "FLINTSTONES 2"
ITEM_065 .STR "FLINTSTONES JETSONS"
ITEM_066 .STR "DUCK TALES"
ITEM_067 .STR "DUCK TALES 2"
ITEM_068 .STR "TINY TOON ADVENTURES"
ITEM_069 .STR "TINY TOON ADVENTURES 2"
ITEM_070 .STR "SAIYUUKI WORLD"
ITEM_071 .STR "SAIYUUKI WORLD 2"
ITEM_072 .STR "ROLLERGAMES"
ITEM_073 .STR "BONKS ADVENTURE"
ITEM_074 .STR "TOKI"
ITEM_075 .STR "PANIC RESTAURANT"
ITEM_076 .STR "WEREWOLF"
ITEM_077 .STR "SPARTAN X2"
ITEM_078 .STR "JACKIE CHANS"
ITEM_079 .STR "DAIKU NO GEN SAN"
ITEM_080 .STR "KABUKI QUANTUM FIGHTER"
ITEM_081 .STR "ASTYANAX"
ITEM_082 .STR "THE ROCKETEER"
ITEM_083 .STR "GUN DEC"
ITEM_084 .STR "HINOTORI"
ITEM_085 .STR "SWORD MASTER"
ITEM_086 .STR "KARNOV"
ITEM_087 .STR "KYOURYUU S JUURANGER"
ITEM_088 .STR "MIGHTY FINAL FIGHT"
ITEM_089 .STR "DRAGON FIGHTER"
ITEM_090 .STR "BAD DUDES"
ITEM_091 .STR "MCDONALDLAND"
ITEM_092 .STR "LITTLE NEMO"
ITEM_093 .STR "UFOURIA"
ITEM_094 .STR "TOTALLY RAD"
ITEM_095 .STR "MATENDOUJI"
ITEM_096 .STR "CHOUJIN SENTAI JETMAN"
ITEM_097 .STR "ROCKIN KATS"
ITEM_098 .STR "YUME PENGUIN MONOGATARI"
ITEM_099 .STR "CODE NAME VIPER"
ITEM_100 .STR "SQUASHED"
ITEM_101 .STR "NINJA CRUSADERS"
ITEM_102 .STR "MITSUME GA TOORU"
ITEM_103 .STR "CAPTAIN AMERICA"
ITEM_104 .STR "YOUNG INDIANA JONES"
ITEM_105 .STR "JAMES BOND JR"
ITEM_106 .STR "SECRET TIES"
ITEM_107 .STR "SAINT SEIYA 2"
ITEM_108 .STR "LITTLE SAMSON"
ITEM_109 .STR "TIME DIVER EON MAN"
ITEM_110 .STR "TARGET RENEGADE"
ITEM_111 .STR "JUNGLE BOOK"
ITEM_112 .STR "SHATTERHAND"
ITEM_113 .STR "KICK MASTER"
ITEM_114 .STR "CROSS FIRE"
ITEM_115 .STR "BUCKY OHARE"
ITEM_116 .STR "WACKY RACES"
ITEM_117 .STR "RYGAR"
ITEM_118 .STR "BIO MIRACLE BOKUTTE UPA"
ITEM_119 .STR "BIONIC COMMANDO"
ITEM_120 .STR "BANANA PRINCE"
ITEM_121 .STR "LITTLE MERMAID"
ITEM_122 .STR "GREMLINS 2"
ITEM_123 .STR "MAGICAL DOROPIE"
ITEM_124 .STR "JOURNEY TO SILIUS"
ITEM_125 .STR "G.I. JOE"
ITEM_126 .STR "G.I. JOE 2"
ITEM_127 .STR "ZEN"
ITEM_128 .STR "DOKI! DOKI! YUUENCHI"
ITEM_129 .STR "GETSUFUU MADEN"
ITEM_130 .STR "MOON CRYSTAL"
ITEM_131 .STR "JOE AND MAC"
ITEM_132 .STR "SPIDER MAN"
ITEM_133 .STR "LETHAL WEAPON"
ITEM_134 .STR "JURASSIC PARK"
ITEM_135 .STR "MAD CITY"
ITEM_136 .STR "LOW G MAN"
ITEM_137 .STR "TWIN BEE"
ITEM_138 .STR "TWIN BEE 2"
ITEM_139 .STR "BLASTER MASTER"
ITEM_140 .STR "OVER HORIZON"
ITEM_141 .STR "CHITEI SENKUU VAZOLDER"
ITEM_142 .STR "ABADOX"
ITEM_143 .STR "SAMURAI ZOMBIE NATION"
ITEM_144 .STR "PARODIUS"
ITEM_145 .STR "ISOLATED WARRIOR"
ITEM_146 .STR "TOP GUN"
ITEM_147 .STR "TOP GUN 2"
ITEM_148 .STR "ROBOCCO WARS"
ITEM_149 .STR "GUN NAC"
ITEM_150 .STR "THUNDERCADE"
ITEM_151 .STR "SUMMER CARNIVAL 92"
ITEM_152 .STR "DRAGON SPIRIT"
ITEM_153 .STR "KYUUKYOKU TIGER"
ITEM_154 .STR "LEGENDARY WINGS"
ITEM_155 .STR "BURAI FIGHTER"
ITEM_156 .STR "ZANAC"
ITEM_157 .STR "GRADIUS"
ITEM_158 .STR "BATTLE FORMULA"
ITEM_159 .STR "CHUKA TAISEN"
ITEM_160 .STR "ALADDIN"
ITEM_161 .STR "ULTRAMAN CLUB"
ITEM_162 .STR "8 EYES"
ITEM_163 .STR "DARKMAN"
ITEM_164 .STR "SPY VS SPY"
ITEM_165 .STR "MISSION IMPOSSIBLE"
ITEM_166 .STR "DRAGONS LAIR"
ITEM_167 .STR "THE LONE RANGER"
ITEM_168 .STR "HIRYUU NO KEN III"
ITEM_169 .STR "METAL GEAR SOLID"
ITEM_170 .STR "GAIAPOLIS"
ITEM_171 .STR "GUARDIAN LEGEND"
ITEM_172 .STR "STREET FIGHTER 2010"
ITEM_173 .STR "TOXIC CRUSADERS"
ITEM_174 .STR "GOLGO 13"
ITEM_175 .STR "DRAGON SCROLL"
ITEM_176 .STR "LUPIN SANSEI"
ITEM_177 .STR "MAJOU DENSETSU 2"
ITEM_178 .STR "TERMINATOR 2"
ITEM_179 .STR "GHOULS N GHOSTS"
ITEM_180 .STR "THE GOONIES 2"
ITEM_181 .STR "KAMEN NO NINJA"
ITEM_182 .STR "BIO FORCE APE"
ITEM_183 .STR "ALTERED BEAST"
ITEM_184 .STR "TAIYOU NO YUUSHA"
ITEM_185 .STR "WOLVERINE"
ITEM_186 .STR "HOOK"
ITEM_187 .STR "WIDGET"
ITEM_188 .STR "COWBOY KID"
ITEM_189 .STR "NEW GHOSTBUSTERS II"
ITEM_190 .STR "ROD LAND"
ITEM_191 .STR "ALIEN 3"
ITEM_192 .STR "SD HERO SOUKESSEN"
ITEM_193 .STR "BOMBERMAN 2"
ITEM_194 .STR "METAL STORM"
ITEM_195 .STR "CHASE H.Q."
ITEM_196 .STR "RAINBOW ISLANDS"
ITEM_197 .STR "THE PUNISHER"
ITEM_198 .STR "GUN.SMOKE"
ITEM_199 .STR "MEIKYUU JIMA"
ITEM_200 .STR "TROG"
ITEM_201 .STR "SOLOMONS KEY 2"
ITEM_202 .STR "FLYING HERO"
ITEM_203 .STR "COBRA COMMAND"
ITEM_204 .STR "WCW WORLD"
ITEM_205 .STR "SUPER SPIKE VBALL"
ITEM_206 .STR "SIDE POCKET"
ITEM_207 .STR "DOUBLE DRIBBLE"
ITEM_208 .STR "CAPTAIN TSUBASA 2"
ITEM_209 .STR "JOY MECH FIGHT"
ITEM_210 .STR "FIGHTING ROAD"
ITEM_211 .STR "STREET FIGHTER 16P"
ITEM_212 .STR "FELIX THE CAT"
ITEM_213 .STR "DARKWING DUCK"
ITEM_214 .STR "DARKWING DUCK 2"
ITEM_215 .STR "KEROPPI NO DAIBOUKEN"
ITEM_216 .STR "CAT NINDEN TEYANDEE"
ITEM_217 .STR "MICKEY MOUSE 3"
ITEM_218 .STR "BUBBLE BOBBLE PART 2"
ITEM_219 .STR "TALESPIN"
ITEM_220 .STR "TOM AND JERRY"
ITEM_221 .STR "HOKUTO NO KEN 2"
ITEM_222 .STR "CAESARS PALACE"
ITEM_223 .STR "TERRA CRESTA"
ITEM_224 .STR "X MAN"
ITEM_225 .STR "CONAN"
ITEM_226 .STR "ROBO WARRIOR"
ITEM_227 .STR "GREAT BATTLE CYBER"
ITEM_228 .STR "SHADOWGATE"
ITEM_229 .STR "HAPPY BIRTHDAY BUGS"
ITEM_230 .STR "NINJA BROTHERS"
ITEM_231 .STR "DYNATRON CITY"
ITEM_232 .STR "IMAGE FIGHT"
ITEM_233 .STR "MICKEYS NUMBERLAND"
ITEM_234 .STR "MICKEYS LETTERLAND"
ITEM_235 .STR "SILVA SAGA II"
ITEM_236 .STR "DEJA VU"
ITEM_237 .STR "ULTIMATE BASKETBALL"
ITEM_238 .STR "HOME ALONE 2"
ITEM_239 .STR "HEROES OF MIGHT"
ITEM_240 .STR "THE IMMORTAL"
ITEM_241 .STR "TETRASTAR THE FIGHTER"
ITEM_242 .STR "WARIOS WOODS"
ITEM_243 .STR "FINAL FANTASY"
ITEM_244 .STR "FINAL FANTASY 2"
ITEM_245 .STR "METAL MAX"
ITEM_246 .STR "METROID"
ITEM_247 .STR "SWEET HOME"
ITEM_248 .STR "LEGEND OF ZELDA"
ITEM_249 .STR "SUGORO QUEST"
ITEM_250 .STR "YS II"
ITEM_251 .STR "DYNASTY WARS"
ITEM_252 .STR "GOD SLAYER"
ITEM_253 .STR "RADIA SENKI"
ITEM_254 .STR "SUPER ROBOT TAISEN 2"
ITEM_255 .STR "EARTHBOUND"
ITEM_256 .STR "GACHAPON SENSHI 4"