mirror of
https://github.com/ShadauxCat/CATSFC.git
synced 2025-04-02 10:41:47 -04:00
Compare commits
19 commits
Author | SHA1 | Date | |
---|---|---|---|
|
f3dab3957c | ||
|
010c211443 | ||
|
72db4b9ec1 | ||
|
a1d1e01e11 | ||
|
4252250fe7 | ||
|
5e5d5dcaa1 | ||
|
1329a31267 | ||
|
3f501f9c90 | ||
|
5edf465c07 | ||
|
3e412a93c5 | ||
|
48eb438a24 | ||
|
4b5a5a15d7 | ||
|
41c50b372e | ||
|
22aa56d2ed | ||
|
fbe8c3fc96 | ||
|
6b370ce35b | ||
|
0e68b604c6 | ||
|
53d2f1f6cd | ||
|
700a1535d6 |
12 changed files with 1159 additions and 979 deletions
6
CATSFC/system/gui/uicolors.txt
Normal file
6
CATSFC/system/gui/uicolors.txt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
Background: #000000
|
||||||
|
InactiveItem: #461F99
|
||||||
|
ActiveItem: #FFFFFF
|
||||||
|
MessageText: #461F99
|
||||||
|
InactiveMain: #FFFFFF
|
||||||
|
ActiveMain: #FFFFFF
|
|
@ -48,6 +48,10 @@ Tools
|
||||||
Options
|
Options
|
||||||
#MSG_MAIN_MENU_EXIT
|
#MSG_MAIN_MENU_EXIT
|
||||||
Exit
|
Exit
|
||||||
|
#MSG_FILE_MENU_LOADING_LIST
|
||||||
|
Loading...
|
||||||
|
#MSG_FILE_MENU_SORTING_LIST
|
||||||
|
Sorting...
|
||||||
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
||||||
Fluidity %s
|
Fluidity %s
|
||||||
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
||||||
|
@ -60,6 +64,8 @@ Aspect ratio %s
|
||||||
Fast-forward %s
|
Fast-forward %s
|
||||||
#FMT_VIDEO_FRAME_SKIPPING
|
#FMT_VIDEO_FRAME_SKIPPING
|
||||||
Frame skipping %s
|
Frame skipping %s
|
||||||
|
#FMT_VIDEO_GAME_SCREEN
|
||||||
|
Game screen %s
|
||||||
#FMT_AUDIO_SOUND
|
#FMT_AUDIO_SOUND
|
||||||
Sound %s
|
Sound %s
|
||||||
#FMT_AUDIO_RETRO_SOUND
|
#FMT_AUDIO_RETRO_SOUND
|
||||||
|
@ -164,6 +170,10 @@ New game
|
||||||
[9] Show 1 in 10 frames
|
[9] Show 1 in 10 frames
|
||||||
#MSG_VIDEO_FRAME_SKIPPING_10
|
#MSG_VIDEO_FRAME_SKIPPING_10
|
||||||
[10] Show 1 in 11 frames
|
[10] Show 1 in 11 frames
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_TOP
|
||||||
|
Upper Screen
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_BOTTOM
|
||||||
|
Lower Screen
|
||||||
#MSG_GENERAL_OFF
|
#MSG_GENERAL_OFF
|
||||||
Off
|
Off
|
||||||
#MSG_GENERAL_ON
|
#MSG_GENERAL_ON
|
||||||
|
@ -259,6 +269,10 @@ STARTCHINESESIM
|
||||||
综合设置
|
综合设置
|
||||||
#MSG_MAIN_MENU_EXIT
|
#MSG_MAIN_MENU_EXIT
|
||||||
退出模拟器
|
退出模拟器
|
||||||
|
#MSG_FILE_MENU_LOADING_LIST
|
||||||
|
装载...
|
||||||
|
#MSG_FILE_MENU_SORTING_LIST
|
||||||
|
列表进行排序...
|
||||||
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
||||||
流畅度 %s
|
流畅度 %s
|
||||||
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
||||||
|
@ -271,6 +285,8 @@ STARTCHINESESIM
|
||||||
游戏快进 %s
|
游戏快进 %s
|
||||||
#FMT_VIDEO_FRAME_SKIPPING
|
#FMT_VIDEO_FRAME_SKIPPING
|
||||||
跳帧方式 %s
|
跳帧方式 %s
|
||||||
|
#FMT_VIDEO_GAME_SCREEN
|
||||||
|
游戏屏幕 %s
|
||||||
#FMT_AUDIO_SOUND
|
#FMT_AUDIO_SOUND
|
||||||
声音开关 %s
|
声音开关 %s
|
||||||
#FMT_AUDIO_RETRO_SOUND
|
#FMT_AUDIO_RETRO_SOUND
|
||||||
|
@ -290,11 +306,11 @@ Retro sound %s
|
||||||
#MSG_TOOLS_GLOBAL_HOTKEY_GENERAL
|
#MSG_TOOLS_GLOBAL_HOTKEY_GENERAL
|
||||||
全局热键
|
全局热键
|
||||||
#MSG_TOOLS_GAME_HOTKEY_GENERAL
|
#MSG_TOOLS_GAME_HOTKEY_GENERAL
|
||||||
游戏专用覆盖性热键
|
特定游戏热键
|
||||||
#FMT_OPTIONS_LANGUAGE
|
#FMT_OPTIONS_LANGUAGE
|
||||||
语言 %s
|
语言 %s
|
||||||
#FMT_OPTIONS_CPU_FREQUENCY
|
#FMT_OPTIONS_CPU_FREQUENCY
|
||||||
CPU主频 %s
|
CPU 主频 %s
|
||||||
#MSG_OPTIONS_CPU_FREQUENCY_0
|
#MSG_OPTIONS_CPU_FREQUENCY_0
|
||||||
[0] 240 MHz
|
[0] 240 MHz
|
||||||
#MSG_OPTIONS_CPU_FREQUENCY_1
|
#MSG_OPTIONS_CPU_FREQUENCY_1
|
||||||
|
@ -308,7 +324,7 @@ CPU主频 %s
|
||||||
#MSG_OPTIONS_CPU_FREQUENCY_5
|
#MSG_OPTIONS_CPU_FREQUENCY_5
|
||||||
[5] 396 MHz
|
[5] 396 MHz
|
||||||
#MSG_OPTIONS_CARD_CAPACITY
|
#MSG_OPTIONS_CARD_CAPACITY
|
||||||
卡容量
|
卡带容量
|
||||||
#MSG_OPTIONS_RESET
|
#MSG_OPTIONS_RESET
|
||||||
缺省设置
|
缺省设置
|
||||||
#MSG_OPTIONS_VERSION
|
#MSG_OPTIONS_VERSION
|
||||||
|
@ -330,7 +346,7 @@ CPU主频 %s
|
||||||
#MSG_HOTKEY_FULL_SCREEN_TOGGLE
|
#MSG_HOTKEY_FULL_SCREEN_TOGGLE
|
||||||
全屏开关
|
全屏开关
|
||||||
#MSG_PROGRESS_HOTKEY_WAITING_FOR_KEYS
|
#MSG_PROGRESS_HOTKEY_WAITING_FOR_KEYS
|
||||||
按下你想要设置为这个效果的按钮
|
按下你想要设置的热键组合。
|
||||||
#MSG_HOTKEY_DELETE_WITH_A
|
#MSG_HOTKEY_DELETE_WITH_A
|
||||||
*A 清除
|
*A 清除
|
||||||
#MSG_HOTKEY_CANCEL_WITH_B
|
#MSG_HOTKEY_CANCEL_WITH_B
|
||||||
|
@ -375,6 +391,10 @@ CPU主频 %s
|
||||||
[9] 显示 1/10
|
[9] 显示 1/10
|
||||||
#MSG_VIDEO_FRAME_SKIPPING_10
|
#MSG_VIDEO_FRAME_SKIPPING_10
|
||||||
[10] 显示 1/11
|
[10] 显示 1/11
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_TOP
|
||||||
|
上屏
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_BOTTOM
|
||||||
|
下屏
|
||||||
#MSG_GENERAL_OFF
|
#MSG_GENERAL_OFF
|
||||||
关
|
关
|
||||||
#MSG_GENERAL_ON
|
#MSG_GENERAL_ON
|
||||||
|
@ -392,23 +412,23 @@ CPU主频 %s
|
||||||
#MSG_CHEAT_ELEMENT_NOT_LOADED
|
#MSG_CHEAT_ELEMENT_NOT_LOADED
|
||||||
<没有加载>
|
<没有加载>
|
||||||
#MSG_SAVESTATE_FULL
|
#MSG_SAVESTATE_FULL
|
||||||
当前存档槽已有存档文件,覆盖已有存档吗?
|
当前存档槽已有存档文件,覆盖现有存档吗?
|
||||||
#MSG_PROGRESS_SAVED_STATE_CREATING
|
#MSG_PROGRESS_SAVED_STATE_CREATING
|
||||||
正在写入...
|
正在写入...
|
||||||
#MSG_PROGRESS_SAVED_STATE_CREATION_FAILED
|
#MSG_PROGRESS_SAVED_STATE_CREATION_FAILED
|
||||||
写入存档失败!
|
存档写入失败!
|
||||||
#MSG_PROGRESS_SAVED_STATE_CREATION_SUCCEEDED
|
#MSG_PROGRESS_SAVED_STATE_CREATION_SUCCEEDED
|
||||||
写入存档成功!
|
存档写入成功!
|
||||||
#MSG_TOP_SCREEN_NO_SAVED_STATE_IN_SLOT
|
#MSG_TOP_SCREEN_NO_SAVED_STATE_IN_SLOT
|
||||||
没有游戏截图
|
没有游戏截图
|
||||||
#MSG_PROGRESS_SAVED_STATE_CORRUPTED
|
#MSG_PROGRESS_SAVED_STATE_CORRUPTED
|
||||||
存档文件找不到或者损坏!
|
存档文件不存在或者已损坏!
|
||||||
#MSG_PROGRESS_SAVED_STATE_LOADING
|
#MSG_PROGRESS_SAVED_STATE_LOADING
|
||||||
正在加载...
|
正在加载...
|
||||||
#MSG_PROGRESS_SAVED_STATE_LOAD_FAILED
|
#MSG_PROGRESS_SAVED_STATE_LOAD_FAILED
|
||||||
加载存档失败
|
存档加载失败
|
||||||
#MSG_PROGRESS_SAVED_STATE_LOAD_SUCCEEDED
|
#MSG_PROGRESS_SAVED_STATE_LOAD_SUCCEEDED
|
||||||
加载存档成功
|
存档加载成功
|
||||||
#MSG_SAVED_STATE_DELETE_ALL
|
#MSG_SAVED_STATE_DELETE_ALL
|
||||||
删除当前游戏的所有存档
|
删除当前游戏的所有存档
|
||||||
#FMT_SAVED_STATE_DELETE_ONE
|
#FMT_SAVED_STATE_DELETE_ONE
|
||||||
|
@ -434,18 +454,18 @@ CPU主频 %s
|
||||||
#MSG_SCREENSHOT_SLIDESHOW_KEYS
|
#MSG_SCREENSHOT_SLIDESHOW_KEYS
|
||||||
*u 加快播放\n
|
*u 加快播放\n
|
||||||
*d 减慢播放\n
|
*d 减慢播放\n
|
||||||
*l 上一帧\n
|
*l 上一帧 \n
|
||||||
*r 下一帧\n
|
*r 下一帧 \n
|
||||||
*A 暂停\n
|
*A 暂停 \n
|
||||||
*B 返回菜单
|
*B 返回菜单
|
||||||
#MSG_PROGRESS_LOADING_GAME
|
#MSG_PROGRESS_LOADING_GAME
|
||||||
正在装载游戏...
|
正在装载游戏...
|
||||||
#MSG_EMULATOR_NAME
|
#MSG_EMULATOR_NAME
|
||||||
SFC模拟器
|
SFC 模拟器
|
||||||
#MSG_WORD_EMULATOR_VERSION
|
#MSG_WORD_EMULATOR_VERSION
|
||||||
版本
|
版本
|
||||||
#MSG_DIALOG_RESET
|
#MSG_DIALOG_RESET
|
||||||
确定将 SFC模拟器恢复为出厂设置吗?
|
确定将 SFC 模拟器恢复为出厂设置吗?
|
||||||
#MSG_PROGRESS_RESETTING
|
#MSG_PROGRESS_RESETTING
|
||||||
正在设置,请稍候...
|
正在设置,请稍候...
|
||||||
|
|
||||||
|
@ -470,6 +490,10 @@ Outils
|
||||||
Options
|
Options
|
||||||
#MSG_MAIN_MENU_EXIT
|
#MSG_MAIN_MENU_EXIT
|
||||||
Quitter
|
Quitter
|
||||||
|
#MSG_FILE_MENU_LOADING_LIST
|
||||||
|
Chargement...
|
||||||
|
#MSG_FILE_MENU_SORTING_LIST
|
||||||
|
Tri...
|
||||||
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
||||||
Fluidité %s
|
Fluidité %s
|
||||||
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
||||||
|
@ -482,6 +506,8 @@ Format d'image %s
|
||||||
Avance rapide %s
|
Avance rapide %s
|
||||||
#FMT_VIDEO_FRAME_SKIPPING
|
#FMT_VIDEO_FRAME_SKIPPING
|
||||||
Omission d'images %s
|
Omission d'images %s
|
||||||
|
#FMT_VIDEO_GAME_SCREEN
|
||||||
|
Écran de jeu %s
|
||||||
#FMT_AUDIO_SOUND
|
#FMT_AUDIO_SOUND
|
||||||
Son %s
|
Son %s
|
||||||
#FMT_AUDIO_RETRO_SOUND
|
#FMT_AUDIO_RETRO_SOUND
|
||||||
|
@ -586,6 +612,10 @@ Nouveau jeu
|
||||||
[9] Montrer 1 image sur 10
|
[9] Montrer 1 image sur 10
|
||||||
#MSG_VIDEO_FRAME_SKIPPING_10
|
#MSG_VIDEO_FRAME_SKIPPING_10
|
||||||
[10] Montrer 1 image sur 11
|
[10] Montrer 1 image sur 11
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_TOP
|
||||||
|
Écran supérieur
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_BOTTOM
|
||||||
|
Écran inférieur
|
||||||
#MSG_GENERAL_OFF
|
#MSG_GENERAL_OFF
|
||||||
Hors fonction
|
Hors fonction
|
||||||
#MSG_GENERAL_ON
|
#MSG_GENERAL_ON
|
||||||
|
@ -682,6 +712,10 @@ Tools
|
||||||
Optionen
|
Optionen
|
||||||
#MSG_MAIN_MENU_EXIT
|
#MSG_MAIN_MENU_EXIT
|
||||||
Beenden
|
Beenden
|
||||||
|
#MSG_FILE_MENU_LOADING_LIST
|
||||||
|
Laden...
|
||||||
|
#MSG_FILE_MENU_SORTING_LIST
|
||||||
|
Sortieren...
|
||||||
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
||||||
Flüssigkeit %s
|
Flüssigkeit %s
|
||||||
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
||||||
|
@ -694,6 +728,8 @@ Bildformat %s
|
||||||
Schnellvorlauf %s
|
Schnellvorlauf %s
|
||||||
#FMT_VIDEO_FRAME_SKIPPING
|
#FMT_VIDEO_FRAME_SKIPPING
|
||||||
Frames übersp. %s
|
Frames übersp. %s
|
||||||
|
#FMT_VIDEO_GAME_SCREEN
|
||||||
|
Bildschirm %s
|
||||||
#FMT_AUDIO_SOUND
|
#FMT_AUDIO_SOUND
|
||||||
Ton %s
|
Ton %s
|
||||||
#FMT_AUDIO_RETRO_SOUND
|
#FMT_AUDIO_RETRO_SOUND
|
||||||
|
@ -798,6 +834,10 @@ Neues Spiel
|
||||||
[9] Zeige 1 von 10 Frames
|
[9] Zeige 1 von 10 Frames
|
||||||
#MSG_VIDEO_FRAME_SKIPPING_10
|
#MSG_VIDEO_FRAME_SKIPPING_10
|
||||||
[10] Zeige 1 von 11 Frames
|
[10] Zeige 1 von 11 Frames
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_TOP
|
||||||
|
Oberer Bildschirm
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_BOTTOM
|
||||||
|
Unterer Bildschirm
|
||||||
#MSG_GENERAL_OFF
|
#MSG_GENERAL_OFF
|
||||||
Aus
|
Aus
|
||||||
#MSG_GENERAL_ON
|
#MSG_GENERAL_ON
|
||||||
|
@ -894,6 +934,10 @@ Hulpmiddelen
|
||||||
Opties
|
Opties
|
||||||
#MSG_MAIN_MENU_EXIT
|
#MSG_MAIN_MENU_EXIT
|
||||||
Afsluiten
|
Afsluiten
|
||||||
|
#MSG_FILE_MENU_LOADING_LIST
|
||||||
|
Laden...
|
||||||
|
#MSG_FILE_MENU_SORTING_LIST
|
||||||
|
Sorteren...
|
||||||
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
||||||
Fluïditeit %s
|
Fluïditeit %s
|
||||||
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
||||||
|
@ -906,6 +950,8 @@ Beeldverhouding %s
|
||||||
Vooruitspoelen %s
|
Vooruitspoelen %s
|
||||||
#FMT_VIDEO_FRAME_SKIPPING
|
#FMT_VIDEO_FRAME_SKIPPING
|
||||||
Beeld overslaan %s
|
Beeld overslaan %s
|
||||||
|
#FMT_VIDEO_GAME_SCREEN
|
||||||
|
Spelscherm %s
|
||||||
#FMT_AUDIO_SOUND
|
#FMT_AUDIO_SOUND
|
||||||
Geluid %s
|
Geluid %s
|
||||||
#FMT_AUDIO_RETRO_SOUND
|
#FMT_AUDIO_RETRO_SOUND
|
||||||
|
@ -945,7 +991,7 @@ CPU frequentie %s
|
||||||
#MSG_OPTIONS_CARD_CAPACITY
|
#MSG_OPTIONS_CARD_CAPACITY
|
||||||
Kaartcapaciteit
|
Kaartcapaciteit
|
||||||
#MSG_OPTIONS_RESET
|
#MSG_OPTIONS_RESET
|
||||||
Herstel standaard instellingen
|
Herstel standaardinstellingen
|
||||||
#MSG_OPTIONS_VERSION
|
#MSG_OPTIONS_VERSION
|
||||||
Versie-informatie
|
Versie-informatie
|
||||||
#MSG_SCREENSHOT_CREATE
|
#MSG_SCREENSHOT_CREATE
|
||||||
|
@ -965,7 +1011,7 @@ Sla spelstaat 1 op
|
||||||
#MSG_HOTKEY_FULL_SCREEN_TOGGLE
|
#MSG_HOTKEY_FULL_SCREEN_TOGGLE
|
||||||
Schakel naar volledig scherm
|
Schakel naar volledig scherm
|
||||||
#MSG_PROGRESS_HOTKEY_WAITING_FOR_KEYS
|
#MSG_PROGRESS_HOTKEY_WAITING_FOR_KEYS
|
||||||
Druk op de gewenste knoppencombinatie.
|
Druk op de gewenste toetsencombinatie.
|
||||||
#MSG_HOTKEY_DELETE_WITH_A
|
#MSG_HOTKEY_DELETE_WITH_A
|
||||||
*A Wissen
|
*A Wissen
|
||||||
#MSG_HOTKEY_CANCEL_WITH_B
|
#MSG_HOTKEY_CANCEL_WITH_B
|
||||||
|
@ -1010,6 +1056,10 @@ Nieuw spel
|
||||||
[9] 1 uit 10 beelden tonen
|
[9] 1 uit 10 beelden tonen
|
||||||
#MSG_VIDEO_FRAME_SKIPPING_10
|
#MSG_VIDEO_FRAME_SKIPPING_10
|
||||||
[10] 1 uit 11 beelden tonen
|
[10] 1 uit 11 beelden tonen
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_TOP
|
||||||
|
Bovenste scherm
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_BOTTOM
|
||||||
|
Onderste scherm
|
||||||
#MSG_GENERAL_OFF
|
#MSG_GENERAL_OFF
|
||||||
Uit
|
Uit
|
||||||
#MSG_GENERAL_ON
|
#MSG_GENERAL_ON
|
||||||
|
@ -1037,7 +1087,7 @@ Opslaan geslaagd!
|
||||||
#MSG_TOP_SCREEN_NO_SAVED_STATE_IN_SLOT
|
#MSG_TOP_SCREEN_NO_SAVED_STATE_IN_SLOT
|
||||||
Geen spelstaat in slot.
|
Geen spelstaat in slot.
|
||||||
#MSG_PROGRESS_SAVED_STATE_CORRUPTED
|
#MSG_PROGRESS_SAVED_STATE_CORRUPTED
|
||||||
State niet gevonden of corrupt.
|
Staat niet gevonden of corrupt.
|
||||||
#MSG_PROGRESS_SAVED_STATE_LOADING
|
#MSG_PROGRESS_SAVED_STATE_LOADING
|
||||||
Laden...
|
Laden...
|
||||||
#MSG_PROGRESS_SAVED_STATE_LOAD_FAILED
|
#MSG_PROGRESS_SAVED_STATE_LOAD_FAILED
|
||||||
|
@ -1080,7 +1130,7 @@ CATSFC SNES emulator
|
||||||
#MSG_WORD_EMULATOR_VERSION
|
#MSG_WORD_EMULATOR_VERSION
|
||||||
Versie
|
Versie
|
||||||
#MSG_DIALOG_RESET
|
#MSG_DIALOG_RESET
|
||||||
Alle standaard instellingen herstellen?
|
Alle standaardinstellingen herstellen?
|
||||||
#MSG_PROGRESS_RESETTING
|
#MSG_PROGRESS_RESETTING
|
||||||
Even geduld A.U.B.
|
Even geduld A.U.B.
|
||||||
|
|
||||||
|
@ -1106,6 +1156,10 @@ Herramientas
|
||||||
Opciones
|
Opciones
|
||||||
#MSG_MAIN_MENU_EXIT
|
#MSG_MAIN_MENU_EXIT
|
||||||
Salir
|
Salir
|
||||||
|
#MSG_FILE_MENU_LOADING_LIST
|
||||||
|
Cargando...
|
||||||
|
#MSG_FILE_MENU_SORTING_LIST
|
||||||
|
Ordenando...
|
||||||
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
||||||
Fluidez %s
|
Fluidez %s
|
||||||
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
||||||
|
@ -1118,6 +1172,8 @@ Modo de pantalla %s
|
||||||
Modo avance rápido %s
|
Modo avance rápido %s
|
||||||
#FMT_VIDEO_FRAME_SKIPPING
|
#FMT_VIDEO_FRAME_SKIPPING
|
||||||
Salto de fotogramas %s
|
Salto de fotogramas %s
|
||||||
|
#FMT_VIDEO_GAME_SCREEN
|
||||||
|
Pantalla de juego %s
|
||||||
#FMT_AUDIO_SOUND
|
#FMT_AUDIO_SOUND
|
||||||
Sonido %s
|
Sonido %s
|
||||||
#FMT_AUDIO_RETRO_SOUND
|
#FMT_AUDIO_RETRO_SOUND
|
||||||
|
@ -1222,6 +1278,10 @@ Nuevo juego
|
||||||
[9] Mostrar 1/10
|
[9] Mostrar 1/10
|
||||||
#MSG_VIDEO_FRAME_SKIPPING_10
|
#MSG_VIDEO_FRAME_SKIPPING_10
|
||||||
[10] Mostrar 1/11
|
[10] Mostrar 1/11
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_TOP
|
||||||
|
Pantalla superior
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_BOTTOM
|
||||||
|
Pantalla inferior
|
||||||
#MSG_GENERAL_OFF
|
#MSG_GENERAL_OFF
|
||||||
Apagado
|
Apagado
|
||||||
#MSG_GENERAL_ON
|
#MSG_GENERAL_ON
|
||||||
|
@ -1317,6 +1377,10 @@ Strumenti
|
||||||
Opzioni
|
Opzioni
|
||||||
#MSG_MAIN_MENU_EXIT
|
#MSG_MAIN_MENU_EXIT
|
||||||
Uscita
|
Uscita
|
||||||
|
#MSG_FILE_MENU_LOADING_LIST
|
||||||
|
Caricando...
|
||||||
|
#MSG_FILE_MENU_SORTING_LIST
|
||||||
|
Ordinamento...
|
||||||
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
||||||
Fluidità %s
|
Fluidità %s
|
||||||
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
||||||
|
@ -1329,6 +1393,8 @@ Modalità video %s
|
||||||
Avanzamento rapido %s
|
Avanzamento rapido %s
|
||||||
#FMT_VIDEO_FRAME_SKIPPING
|
#FMT_VIDEO_FRAME_SKIPPING
|
||||||
Salto fotogrammi %s
|
Salto fotogrammi %s
|
||||||
|
#FMT_VIDEO_GAME_SCREEN
|
||||||
|
Game screen %s
|
||||||
#FMT_AUDIO_SOUND
|
#FMT_AUDIO_SOUND
|
||||||
Audio %s
|
Audio %s
|
||||||
#FMT_AUDIO_RETRO_SOUND
|
#FMT_AUDIO_RETRO_SOUND
|
||||||
|
@ -1433,6 +1499,10 @@ Nuovo gioco
|
||||||
[9] Mostra 1 su 10 fotogrammi
|
[9] Mostra 1 su 10 fotogrammi
|
||||||
#MSG_VIDEO_FRAME_SKIPPING_10
|
#MSG_VIDEO_FRAME_SKIPPING_10
|
||||||
[10] Mostra 1 su 11 fotogrammi
|
[10] Mostra 1 su 11 fotogrammi
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_TOP
|
||||||
|
Upper Screen
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_BOTTOM
|
||||||
|
Lower Screen
|
||||||
#MSG_GENERAL_OFF
|
#MSG_GENERAL_OFF
|
||||||
Disabilita
|
Disabilita
|
||||||
#MSG_GENERAL_ON
|
#MSG_GENERAL_ON
|
||||||
|
@ -1528,6 +1598,10 @@ Ferramentas
|
||||||
Opções
|
Opções
|
||||||
#MSG_MAIN_MENU_EXIT
|
#MSG_MAIN_MENU_EXIT
|
||||||
Sair
|
Sair
|
||||||
|
#MSG_FILE_MENU_LOADING_LIST
|
||||||
|
Carregando...
|
||||||
|
#MSG_FILE_MENU_SORTING_LIST
|
||||||
|
Classificando...
|
||||||
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
#FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE
|
||||||
Fluidez %s
|
Fluidez %s
|
||||||
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
#MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO
|
||||||
|
@ -1540,6 +1614,8 @@ Proporção %s
|
||||||
Avanço de quadro %s
|
Avanço de quadro %s
|
||||||
#FMT_VIDEO_FRAME_SKIPPING
|
#FMT_VIDEO_FRAME_SKIPPING
|
||||||
Pulo de quadros %s
|
Pulo de quadros %s
|
||||||
|
#FMT_VIDEO_GAME_SCREEN
|
||||||
|
Tela de jogo %s
|
||||||
#FMT_AUDIO_SOUND
|
#FMT_AUDIO_SOUND
|
||||||
Som %s
|
Som %s
|
||||||
#FMT_AUDIO_RETRO_SOUND
|
#FMT_AUDIO_RETRO_SOUND
|
||||||
|
@ -1557,9 +1633,9 @@ Carregar arquivo de trapaça
|
||||||
#MSG_TOOLS_SCREENSHOT_GENERAL
|
#MSG_TOOLS_SCREENSHOT_GENERAL
|
||||||
Foto...
|
Foto...
|
||||||
#MSG_TOOLS_GLOBAL_HOTKEY_GENERAL
|
#MSG_TOOLS_GLOBAL_HOTKEY_GENERAL
|
||||||
Atalhos de tecla globais...
|
Atalhos de botões globais...
|
||||||
#MSG_TOOLS_GAME_HOTKEY_GENERAL
|
#MSG_TOOLS_GAME_HOTKEY_GENERAL
|
||||||
Atalhos de tecla do jogo atual...
|
Atalhos de botões do jogo atual...
|
||||||
#FMT_OPTIONS_LANGUAGE
|
#FMT_OPTIONS_LANGUAGE
|
||||||
Idioma %s
|
Idioma %s
|
||||||
#FMT_OPTIONS_CPU_FREQUENCY
|
#FMT_OPTIONS_CPU_FREQUENCY
|
||||||
|
@ -1577,9 +1653,9 @@ Frequência da CPU %s
|
||||||
#MSG_OPTIONS_CPU_FREQUENCY_5
|
#MSG_OPTIONS_CPU_FREQUENCY_5
|
||||||
[5] 396 MHz
|
[5] 396 MHz
|
||||||
#MSG_OPTIONS_CARD_CAPACITY
|
#MSG_OPTIONS_CARD_CAPACITY
|
||||||
Capacidade do SD
|
Capacidade do cartão SD
|
||||||
#MSG_OPTIONS_RESET
|
#MSG_OPTIONS_RESET
|
||||||
Restaurar configurações padrão
|
Restaurar configuração padrão
|
||||||
#MSG_OPTIONS_VERSION
|
#MSG_OPTIONS_VERSION
|
||||||
Informações desta versão
|
Informações desta versão
|
||||||
#MSG_SCREENSHOT_CREATE
|
#MSG_SCREENSHOT_CREATE
|
||||||
|
@ -1619,7 +1695,7 @@ Novo jogo
|
||||||
#MSG_VIDEO_ASPECT_RATIO_3
|
#MSG_VIDEO_ASPECT_RATIO_3
|
||||||
[3] Meio, pixels exatos
|
[3] Meio, pixels exatos
|
||||||
#MSG_VIDEO_ASPECT_RATIO_4
|
#MSG_VIDEO_ASPECT_RATIO_4
|
||||||
[4] Toda a tela, alisado
|
[4] Toda a tela, suavizado
|
||||||
#MSG_VIDEO_FRAME_SKIPPING_AUTOMATIC
|
#MSG_VIDEO_FRAME_SKIPPING_AUTOMATIC
|
||||||
[-] Variar conforme o jogo
|
[-] Variar conforme o jogo
|
||||||
#MSG_VIDEO_FRAME_SKIPPING_0
|
#MSG_VIDEO_FRAME_SKIPPING_0
|
||||||
|
@ -1644,6 +1720,10 @@ Novo jogo
|
||||||
[9] Mostrar 1 em 10 frames
|
[9] Mostrar 1 em 10 frames
|
||||||
#MSG_VIDEO_FRAME_SKIPPING_10
|
#MSG_VIDEO_FRAME_SKIPPING_10
|
||||||
[10] Mostrar 1 em 11 frames
|
[10] Mostrar 1 em 11 frames
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_TOP
|
||||||
|
Tela superior
|
||||||
|
#MSG_VIDEO_GAME_SCREEN_BOTTOM
|
||||||
|
Tela inferior
|
||||||
#MSG_GENERAL_OFF
|
#MSG_GENERAL_OFF
|
||||||
Desligado
|
Desligado
|
||||||
#MSG_GENERAL_ON
|
#MSG_GENERAL_ON
|
||||||
|
@ -1661,7 +1741,7 @@ Nenhum jogo carregado no momento
|
||||||
#MSG_CHEAT_ELEMENT_NOT_LOADED
|
#MSG_CHEAT_ELEMENT_NOT_LOADED
|
||||||
<Nada carregado aqui>
|
<Nada carregado aqui>
|
||||||
#MSG_SAVESTATE_FULL
|
#MSG_SAVESTATE_FULL
|
||||||
O slot atual contem um estado. Deseja sobrescrevê-lo?
|
O slot atual contém um estado. Deseja sobrescrevê-lo?
|
||||||
#MSG_PROGRESS_SAVED_STATE_CREATING
|
#MSG_PROGRESS_SAVED_STATE_CREATING
|
||||||
Salvando estado...
|
Salvando estado...
|
||||||
#MSG_PROGRESS_SAVED_STATE_CREATION_FAILED
|
#MSG_PROGRESS_SAVED_STATE_CREATION_FAILED
|
||||||
|
@ -1671,7 +1751,7 @@ OK!
|
||||||
#MSG_TOP_SCREEN_NO_SAVED_STATE_IN_SLOT
|
#MSG_TOP_SCREEN_NO_SAVED_STATE_IN_SLOT
|
||||||
Nenhum estado salvo aqui
|
Nenhum estado salvo aqui
|
||||||
#MSG_PROGRESS_SAVED_STATE_CORRUPTED
|
#MSG_PROGRESS_SAVED_STATE_CORRUPTED
|
||||||
O arquivo de estado deste jogo não foi encontrado ou está corrupto.
|
O arquivo de estado deste jogo não foi encontrado ou está corrompido.
|
||||||
#MSG_PROGRESS_SAVED_STATE_LOADING
|
#MSG_PROGRESS_SAVED_STATE_LOADING
|
||||||
Carregando...
|
Carregando...
|
||||||
#MSG_PROGRESS_SAVED_STATE_LOAD_FAILED
|
#MSG_PROGRESS_SAVED_STATE_LOAD_FAILED
|
||||||
|
@ -1679,7 +1759,7 @@ Falhou!
|
||||||
#MSG_PROGRESS_SAVED_STATE_LOAD_SUCCEEDED
|
#MSG_PROGRESS_SAVED_STATE_LOAD_SUCCEEDED
|
||||||
OK!
|
OK!
|
||||||
#MSG_SAVED_STATE_DELETE_ALL
|
#MSG_SAVED_STATE_DELETE_ALL
|
||||||
Delete todos os estads salvos
|
Delete todos os estados salvos
|
||||||
#FMT_SAVED_STATE_DELETE_ONE
|
#FMT_SAVED_STATE_DELETE_ONE
|
||||||
Delete o estado salvo %d
|
Delete o estado salvo %d
|
||||||
#MSG_DIALOG_SAVE_STATE_DELETE_ALL
|
#MSG_DIALOG_SAVE_STATE_DELETE_ALL
|
||||||
|
@ -1704,7 +1784,7 @@ Pausar...
|
||||||
*u Acelerar\n
|
*u Acelerar\n
|
||||||
*d Desacelerar\n
|
*d Desacelerar\n
|
||||||
*l Foto anterior\n
|
*l Foto anterior\n
|
||||||
*r Proxima foto\n
|
*r Próxima foto\n
|
||||||
*A Pausar\n
|
*A Pausar\n
|
||||||
*B Voltar ao menu
|
*B Voltar ao menu
|
||||||
#MSG_PROGRESS_LOADING_GAME
|
#MSG_PROGRESS_LOADING_GAME
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
CATSFC version 1.34, 2013-03-30
|
CATSFC version 1.36, 2013-06-16
|
||||||
|
|
||||||
A Super Nintendo emulator for the Supercard DSTWO.
|
A Super Nintendo emulator for the Supercard DSTWO.
|
||||||
|
|
||||||
|
@ -38,11 +38,6 @@ old format used in Mightymo's BSNES Cheat Code Pack.
|
||||||
4. Open your storage card's CATSFC folder, then descend into gamecht.
|
4. Open your storage card's CATSFC folder, then descend into gamecht.
|
||||||
5. Drag the cheat code files from the zip archive to the card's gamecht
|
5. Drag the cheat code files from the zip archive to the card's gamecht
|
||||||
folder.
|
folder.
|
||||||
6. In the card's gamecht directory, create two folders. Name the first one
|
|
||||||
*a-m* and the second one *n-z*. Drag the cheat files from the games whose
|
|
||||||
name starts with A to M into *a-m* and the rest into *n-z*.
|
|
||||||
|
|
||||||
This is because the directory display does not handle more than 512 files.
|
|
||||||
|
|
||||||
To add cheats to the menu in a game, first load the game, then use the Cheats
|
To add cheats to the menu in a game, first load the game, then use the Cheats
|
||||||
menu's "Load a cheat file" option.
|
menu's "Load a cheat file" option.
|
||||||
|
|
|
@ -135,7 +135,7 @@ bool _FAT_directory_isValidLfn (const char* name) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool _FAT_directory_isValidAlias (const char* name) {
|
bool _FAT_directory_isValidAlias (const char* name) {
|
||||||
return false;//disables this function to preserve file name casing
|
//return false;//disables this function to preserve file name casing
|
||||||
|
|
||||||
u32 i;
|
u32 i;
|
||||||
u32 nameLength;
|
u32 nameLength;
|
||||||
|
@ -159,7 +159,7 @@ bool _FAT_directory_isValidAlias (const char* name) {
|
||||||
// Make sure the name doesn't contain any control codes
|
// Make sure the name doesn't contain any control codes
|
||||||
//if name isn't all capitals, then it is not a valid short name
|
//if name isn't all capitals, then it is not a valid short name
|
||||||
for (i = 0; i < nameLength; i++) {
|
for (i = 0; i < nameLength; i++) {
|
||||||
if (name[i] < 0x5A && name[i]!=0x20) {
|
if (name[i] > 0x5A && name[i]!= 0x20) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -756,7 +756,37 @@ static bool _FAT_directory_entryExists (PARTITION* partition, const char* name,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//a fix for checking if a short file name is already in use.
|
||||||
|
static bool _FAT_directory_entryExistsSFN (PARTITION* partition, const char* name, u32 dirCluster) {
|
||||||
|
DIR_ENTRY tempEntry;
|
||||||
|
bool foundFile;
|
||||||
|
char alias[MAX_ALIAS_LENGTH];
|
||||||
|
u32 dirnameLength;
|
||||||
|
|
||||||
|
dirnameLength = strnlen(name, MAX_FILENAME_LENGTH);
|
||||||
|
|
||||||
|
if (dirnameLength >= MAX_FILENAME_LENGTH) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Make sure the entry doesn't already exist
|
||||||
|
foundFile = _FAT_directory_getFirstEntry (partition, &tempEntry, dirCluster);
|
||||||
|
|
||||||
|
while (foundFile) { // It hasn't already found the file
|
||||||
|
if(!strcasecmp(name, tempEntry.d_name))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Check if the alias matches
|
||||||
|
_FAT_directory_entryGetAlias (tempEntry.entryData, alias);
|
||||||
|
if ((dirnameLength == strnlen(alias, MAX_ALIAS_LENGTH))
|
||||||
|
&& (strcasecmp(alias, name) == 0)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
foundFile = _FAT_directory_getNextEntry (partition, &tempEntry);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool _FAT_directory_addEntry (PARTITION* partition, DIR_ENTRY* entry, u32 dirCluster) {
|
bool _FAT_directory_addEntry (PARTITION* partition, DIR_ENTRY* entry, u32 dirCluster) {
|
||||||
u32 entrySize;
|
u32 entrySize;
|
||||||
|
@ -833,7 +863,7 @@ bool _FAT_directory_addEntry (PARTITION* partition, DIR_ENTRY* entry, u32 dirClu
|
||||||
++ j;
|
++ j;
|
||||||
}
|
}
|
||||||
// Short filename
|
// Short filename
|
||||||
strupr (entry->d_name);
|
strupr (entry->entryData);
|
||||||
}else {
|
}else {
|
||||||
// Long filename needed
|
// Long filename needed
|
||||||
//memset( entry->unicodeFilename, 0, 512 );
|
//memset( entry->unicodeFilename, 0, 512 );
|
||||||
|
@ -883,7 +913,7 @@ bool _FAT_directory_addEntry (PARTITION* partition, DIR_ENTRY* entry, u32 dirClu
|
||||||
i++;
|
i++;
|
||||||
alias[6] = '0' + ((i / 10) % 10); // 10's digit
|
alias[6] = '0' + ((i / 10) % 10); // 10's digit
|
||||||
alias[7] = '0' + (i % 10); // 1's digit
|
alias[7] = '0' + (i % 10); // 1's digit
|
||||||
} while (_FAT_directory_entryExists (partition, alias, dirCluster) && (i < 100));
|
} while (_FAT_directory_entryExistsSFN (partition, alias, dirCluster) && (i < 100));
|
||||||
if (i == 100) {
|
if (i == 100) {
|
||||||
// Couldn't get a tail number
|
// Couldn't get a tail number
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -49,9 +49,10 @@
|
||||||
|
|
||||||
#define BYTES_PER_READ 512
|
#define BYTES_PER_READ 512
|
||||||
|
|
||||||
#ifndef NULL
|
// MODIFICATION START [Neb]
|
||||||
#define NULL 0
|
// In libfat by Chishm, some types are #define'd here. In the DS2 SDK,
|
||||||
#endif
|
// these types are defined by another header.
|
||||||
|
#include "ds2_types.h"
|
||||||
|
|
||||||
#ifndef bool
|
#ifndef bool
|
||||||
#define bool int
|
#define bool int
|
||||||
|
@ -65,21 +66,7 @@
|
||||||
#define true 1
|
#define true 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef u8
|
// MODIFICATION END [Neb]
|
||||||
#define u8 unsigned char
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef u16
|
|
||||||
#define u16 unsigned short
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef u32
|
|
||||||
#define u32 unsigned long
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef s32
|
|
||||||
#define s32 long
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct _reent
|
struct _reent
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,10 +56,10 @@ static uint16 SevenToSixScanlineResize (uint16 TopColour, uint16 BottomColour, u
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NDSSFCDrawFrameAntialiased ()
|
void NDSSFCDrawFrameAntialiased (void* screen_addr)
|
||||||
{
|
{
|
||||||
uint16 X, Y;
|
uint16 X, Y;
|
||||||
uint16 *SrcTop = (uint16 *) GFX.Screen, *SrcBottom = SrcTop + 256, *Dest = (uint16 *) up_screen_addr;
|
uint16 *SrcTop = (uint16 *) GFX.Screen, *SrcBottom = SrcTop + 256, *Dest = (uint16 *) screen_addr;
|
||||||
|
|
||||||
for (Y = 0; Y < 224; Y += 7)
|
for (Y = 0; Y < 224; Y += 7)
|
||||||
{
|
{
|
||||||
|
|
|
@ -106,6 +106,13 @@ struct gui_iconlist gui_icon_list[]= {
|
||||||
/* 34 */ {"sbutto", 76, 16, NULL}
|
/* 34 */ {"sbutto", 76, 16, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
u16 COLOR_BG = COLOR16( 0, 0, 0);
|
||||||
|
u16 COLOR_INACTIVE_ITEM = COLOR16( 0, 0, 0);
|
||||||
|
u16 COLOR_ACTIVE_ITEM = COLOR16(31, 31, 31);
|
||||||
|
u16 COLOR_MSSG = COLOR16( 0, 0, 0);
|
||||||
|
u16 COLOR_INACTIVE_MAIN = COLOR16(31, 31, 31);
|
||||||
|
u16 COLOR_ACTIVE_MAIN = COLOR16(31, 31, 31);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Drawing string aroud center
|
* Drawing string aroud center
|
||||||
|
@ -621,6 +628,7 @@ void draw_hscroll_over(u32 index)
|
||||||
/*
|
/*
|
||||||
* Drawing dialog
|
* Drawing dialog
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
void draw_dialog(void* screen_addr, u32 sx, u32 sy, u32 ex, u32 ey)
|
void draw_dialog(void* screen_addr, u32 sx, u32 sy, u32 ex, u32 ey)
|
||||||
{
|
{
|
||||||
drawboxfill(screen_addr, sx + 5, sy + 5, ex + 5, ey + 5, COLOR_DIALOG_SHADOW);
|
drawboxfill(screen_addr, sx + 5, sy + 5, ex + 5, ey + 5, COLOR_DIALOG_SHADOW);
|
||||||
|
@ -647,6 +655,7 @@ void draw_dialog(void* screen_addr, u32 sx, u32 sy, u32 ex, u32 ey)
|
||||||
|
|
||||||
drawboxfill(screen_addr, sx, sy, ex, ey, COLOR_DIALOG);
|
drawboxfill(screen_addr, sx, sy, ex, ey, COLOR_DIALOG);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Draw yes or no dialog
|
* Draw yes or no dialog
|
||||||
|
@ -1098,6 +1107,62 @@ int icon_init(u32 language_id)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int color_init()
|
||||||
|
{
|
||||||
|
char path[MAX_PATH];
|
||||||
|
char current_line[256];
|
||||||
|
sprintf(path, "%s/%s/%s", main_path, GUI_SOURCE_PATH, "uicolors.txt");
|
||||||
|
FILE* fp = fopen(path, "r");
|
||||||
|
if (fp != NULL)
|
||||||
|
{
|
||||||
|
while(fgets(current_line, 256, fp))
|
||||||
|
{
|
||||||
|
char* colon = strchr(current_line, ':');
|
||||||
|
if (colon)
|
||||||
|
{
|
||||||
|
*colon = '\0';
|
||||||
|
u16* color = NULL;
|
||||||
|
if (strcasecmp(current_line, "Background") == 0)
|
||||||
|
color = &COLOR_BG;
|
||||||
|
else if (strcasecmp(current_line, "ActiveItem") == 0)
|
||||||
|
color = &COLOR_ACTIVE_ITEM;
|
||||||
|
else if (strcasecmp(current_line, "InactiveItem") == 0)
|
||||||
|
color = &COLOR_INACTIVE_ITEM;
|
||||||
|
else if (strcasecmp(current_line, "MessageText") == 0)
|
||||||
|
color = &COLOR_MSSG;
|
||||||
|
else if (strcasecmp(current_line, "ActiveMain") == 0)
|
||||||
|
color = &COLOR_ACTIVE_MAIN;
|
||||||
|
else if (strcasecmp(current_line, "InactiveMain") == 0)
|
||||||
|
color = &COLOR_INACTIVE_MAIN;
|
||||||
|
|
||||||
|
if (color != NULL)
|
||||||
|
{
|
||||||
|
char* end = strchr(colon + 1, '\0') - 1;
|
||||||
|
while (*end && (*end == '\r' || *end == '\n'))
|
||||||
|
*end-- = '\0';
|
||||||
|
char* ptr = colon + 1;
|
||||||
|
while (*ptr && *ptr == ' ')
|
||||||
|
ptr++;
|
||||||
|
u32 color32;
|
||||||
|
u8 r, g, b;
|
||||||
|
if (strlen(ptr) == 7 && *ptr == '#')
|
||||||
|
{
|
||||||
|
color32 = strtol(ptr + 1, NULL, 16);
|
||||||
|
r = (color32 >> 16) & 0xFF;
|
||||||
|
g = (color32 >> 8) & 0xFF;
|
||||||
|
b = color32 & 0xFF;
|
||||||
|
*color = COLOR16(r >> 3, g >> 3, b >> 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/*************************************************************/
|
/*************************************************************/
|
||||||
void show_icon(void* screen, struct gui_iconlist* icon, u32 x, u32 y)
|
void show_icon(void* screen, struct gui_iconlist* icon, u32 x, u32 y)
|
||||||
{
|
{
|
||||||
|
|
|
@ -61,27 +61,25 @@
|
||||||
#define COLOR_TRANS COLOR16(31, 31, 63)
|
#define COLOR_TRANS COLOR16(31, 31, 63)
|
||||||
#define COLOR_WHITE COLOR16(31, 31, 31)
|
#define COLOR_WHITE COLOR16(31, 31, 31)
|
||||||
#define COLOR_BLACK COLOR16( 0, 0, 0)
|
#define COLOR_BLACK COLOR16( 0, 0, 0)
|
||||||
#define COLOR_TEXT COLOR16(31, 31, 31)
|
//#define COLOR_TEXT COLOR16(31, 31, 31)
|
||||||
#define COLOR_PROGRESS_TEXT COLOR16( 0, 0, 0)
|
//#define COLOR_PROGRESS_TEXT COLOR16( 0, 0, 0)
|
||||||
#define COLOR_PROGRESS_BAR COLOR16(15, 15, 15)
|
//#define COLOR_PROGRESS_BAR COLOR16(15, 15, 15)
|
||||||
#define COLOR_ERROR COLOR16(31, 0, 0)
|
//#define COLOR_ERROR COLOR16(31, 0, 0)
|
||||||
#define COLOR_BG COLOR16(2, 4, 10)
|
//#define COLOR_BG COLOR16(2, 4, 10)
|
||||||
#define COLOR_BG32 COLOR32(2*8, 4*8, 10*8)
|
//#define COLOR_BG32 COLOR32(2*8, 4*8, 10*8)
|
||||||
#define COLOR_ROM_INFO COLOR16(22, 18, 26)
|
//#define COLOR_ROM_INFO COLOR16(22, 18, 26)
|
||||||
#define COLOR_ACTIVE_ITEM COLOR16(31, 31, 31)
|
//#define COLOR_HELP_TEXT COLOR16(16, 20, 24)
|
||||||
#define COLOR_INACTIVE_ITEM COLOR16(11, 7, 19)
|
//#define COLOR_DIALOG COLOR16(31, 31, 31)
|
||||||
#define COLOR_HELP_TEXT COLOR16(16, 20, 24)
|
//#define COLOR_DIALOG_SHADOW COLOR16( 0, 2, 8)
|
||||||
#define COLOR_DIALOG COLOR16(31, 31, 31)
|
//#define COLOR_FRAME COLOR16( 0, 0, 0)
|
||||||
#define COLOR_DIALOG_SHADOW COLOR16( 0, 2, 8)
|
//#define COLOR_YESNO_TEXT COLOR16( 0, 0, 0)
|
||||||
#define COLOR_FRAME COLOR16( 0, 0, 0)
|
//#define COLOR_GREEN COLOR16( 0, 31, 0 )
|
||||||
#define COLOR_YESNO_TEXT COLOR16( 0, 0, 0)
|
//#define COLOR_GREEN1 COLOR16( 0, 24, 0 )
|
||||||
#define COLOR_GREEN COLOR16( 0, 31, 0 )
|
//#define COLOR_GREEN2 COLOR16( 0, 18, 0 )
|
||||||
#define COLOR_GREEN1 COLOR16( 0, 24, 0 )
|
//#define COLOR_GREEN3 COLOR16( 0, 12, 0 )
|
||||||
#define COLOR_GREEN2 COLOR16( 0, 18, 0 )
|
//#define COLOR_GREEN4 COLOR16( 0, 6, 0 )
|
||||||
#define COLOR_GREEN3 COLOR16( 0, 12, 0 )
|
//#define COLOR_RED COLOR16( 31, 0, 0 )
|
||||||
#define COLOR_GREEN4 COLOR16( 0, 6, 0 )
|
//#define COLOR_MSSG COLOR16( 16, 8, 29)
|
||||||
#define COLOR_RED COLOR16( 31, 0, 0 )
|
|
||||||
#define COLOR_MSSG COLOR16( 16, 8, 29)
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
*
|
*
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
@ -89,6 +87,13 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern u16 COLOR_BG;
|
||||||
|
extern u16 COLOR_INACTIVE_ITEM;
|
||||||
|
extern u16 COLOR_ACTIVE_ITEM;
|
||||||
|
extern u16 COLOR_MSSG;
|
||||||
|
extern u16 COLOR_INACTIVE_MAIN;
|
||||||
|
extern u16 COLOR_ACTIVE_MAIN;
|
||||||
|
|
||||||
struct background{
|
struct background{
|
||||||
char bgname[128];
|
char bgname[128];
|
||||||
char bgbuffer[256*192*2];
|
char bgbuffer[256*192*2];
|
||||||
|
@ -180,6 +185,7 @@ extern void msg_screen_clear(void);
|
||||||
extern void msg_set_text_color(u32 color);
|
extern void msg_set_text_color(u32 color);
|
||||||
|
|
||||||
extern int icon_init(u32 language_id);
|
extern int icon_init(u32 language_id);
|
||||||
|
extern int color_init(void);
|
||||||
extern int gui_change_icon(u32 language_id);
|
extern int gui_change_icon(u32 language_id);
|
||||||
extern int show_background(void *screen, char *bgname);
|
extern int show_background(void *screen, char *bgname);
|
||||||
extern void show_icon(void* screen, struct gui_iconlist *icon, u32 x, u32 y);
|
extern void show_icon(void* screen, struct gui_iconlist *icon, u32 x, u32 y);
|
||||||
|
|
|
@ -140,22 +140,29 @@ bool8 S9xInitUpdate ()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern void NDSSFCDrawFrameAntialiased();
|
extern void NDSSFCDrawFrameAntialiased(void* screen_addr);
|
||||||
|
|
||||||
|
|
||||||
bool8 S9xDeinitUpdate (int Width, int Height, bool8 /*sixteen_bit*/)
|
bool8 S9xDeinitUpdate (int Width, int Height, bool8 /*sixteen_bit*/)
|
||||||
{
|
{
|
||||||
|
void* screen_addr = emu_config.BottomScreenGame
|
||||||
|
? down_screen_addr
|
||||||
|
: up_screen_addr;
|
||||||
|
SCREEN_ID screen_num = emu_config.BottomScreenGame
|
||||||
|
? DOWN_SCREEN
|
||||||
|
: UP_SCREEN;
|
||||||
|
|
||||||
switch(game_config.graphic)
|
switch(game_config.graphic)
|
||||||
{
|
{
|
||||||
//Up
|
//Up
|
||||||
case 1:
|
case 1:
|
||||||
#ifdef DS2_DMA
|
#ifdef DS2_DMA
|
||||||
__dcache_writeback_all();
|
__dcache_writeback_all();
|
||||||
ds2_DMAcopy_32Byte(1 /* channel: graphics */, up_screen_addr, GFX.Screen + 256 * 32 * 2, 256 * 192 * 2);
|
ds2_DMAcopy_32Byte(1 /* channel: graphics */, screen_addr, GFX.Screen + 256 * 32 * 2, 256 * 192 * 2);
|
||||||
ds2_DMA_wait(1);
|
ds2_DMA_wait(1);
|
||||||
ds2_DMA_stop(1);
|
ds2_DMA_stop(1);
|
||||||
#else
|
#else
|
||||||
memcpy(up_screen_addr, GFX.Screen+256*32*2, 256*192*2);
|
memcpy(screen_addr, GFX.Screen+256*32*2, 256*192*2);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -163,11 +170,11 @@ bool8 S9xDeinitUpdate (int Width, int Height, bool8 /*sixteen_bit*/)
|
||||||
case 2:
|
case 2:
|
||||||
#ifdef DS2_DMA
|
#ifdef DS2_DMA
|
||||||
__dcache_writeback_all();
|
__dcache_writeback_all();
|
||||||
ds2_DMAcopy_32Byte(1 /* channel: graphics */, up_screen_addr, GFX.Screen, 256 * 192 * 2);
|
ds2_DMAcopy_32Byte(1 /* channel: graphics */, screen_addr, GFX.Screen, 256 * 192 * 2);
|
||||||
ds2_DMA_wait(1);
|
ds2_DMA_wait(1);
|
||||||
ds2_DMA_stop(1);
|
ds2_DMA_stop(1);
|
||||||
#else
|
#else
|
||||||
memcpy(up_screen_addr, GFX.Screen, 256*192*2);
|
memcpy(screen_addr, GFX.Screen, 256*192*2);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -175,16 +182,16 @@ bool8 S9xDeinitUpdate (int Width, int Height, bool8 /*sixteen_bit*/)
|
||||||
case 3:
|
case 3:
|
||||||
#ifdef DS2_DMA
|
#ifdef DS2_DMA
|
||||||
__dcache_writeback_all();
|
__dcache_writeback_all();
|
||||||
ds2_DMAcopy_32Byte(1 /* channel: graphics */, up_screen_addr, GFX.Screen + 256 * 16 * 2, 256 * 192 * 2);
|
ds2_DMAcopy_32Byte(1 /* channel: graphics */, screen_addr, GFX.Screen + 256 * 16 * 2, 256 * 192 * 2);
|
||||||
ds2_DMA_wait(1);
|
ds2_DMA_wait(1);
|
||||||
ds2_DMA_stop(1);
|
ds2_DMA_stop(1);
|
||||||
#else
|
#else
|
||||||
memcpy(up_screen_addr, GFX.Screen+256*16*2, 256*192*2);
|
memcpy(screen_addr, GFX.Screen+256*16*2, 256*192*2);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
NDSSFCDrawFrameAntialiased ();
|
NDSSFCDrawFrameAntialiased (screen_addr);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
@ -197,7 +204,7 @@ bool8 S9xDeinitUpdate (int Width, int Height, bool8 /*sixteen_bit*/)
|
||||||
register unsigned int m;
|
register unsigned int m;
|
||||||
|
|
||||||
src = GFX.Screen;
|
src = GFX.Screen;
|
||||||
dst = (unsigned char*)up_screen_addr;
|
dst = (unsigned char*)screen_addr;
|
||||||
for(m = 0; m < 32; m++)
|
for(m = 0; m < 32; m++)
|
||||||
{
|
{
|
||||||
#ifdef DS2_DMA
|
#ifdef DS2_DMA
|
||||||
|
@ -214,7 +221,7 @@ bool8 S9xDeinitUpdate (int Width, int Height, bool8 /*sixteen_bit*/)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ds2_flipScreen(UP_SCREEN, UP_SCREEN_UPDATE_METHOD);
|
ds2_flipScreen(screen_num, UP_SCREEN_UPDATE_METHOD);
|
||||||
// A problem with update method 1 (wait, double buffer) means that, after
|
// A problem with update method 1 (wait, double buffer) means that, after
|
||||||
// about 15 minutes of play time, the screen starts to half-redraw every
|
// about 15 minutes of play time, the screen starts to half-redraw every
|
||||||
// frame. With update method 0, this is mitigated. (Method 2 is too slow.)
|
// frame. With update method 0, this is mitigated. (Method 2 is too slow.)
|
||||||
|
@ -648,7 +655,19 @@ int sfc_main (int argc, char **argv)
|
||||||
S9xSetSoundMute (TRUE);
|
S9xSetSoundMute (TRUE);
|
||||||
unsigned short screen[256*192];
|
unsigned short screen[256*192];
|
||||||
|
|
||||||
copy_screen((void*)screen, up_screen_addr, 0, 0, 256, 192);
|
if (FirstInvocation) {
|
||||||
|
memset(screen, 0, sizeof(screen));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
S9xDeinitUpdate(256, 224, TRUE);
|
||||||
|
|
||||||
|
void* screen_addr = emu_config.BottomScreenGame
|
||||||
|
? down_screen_addr
|
||||||
|
: up_screen_addr;
|
||||||
|
|
||||||
|
copy_screen((void*)screen, screen_addr, 0, 0, 256, 192);
|
||||||
|
}
|
||||||
|
|
||||||
menu(screen, FirstInvocation);
|
menu(screen, FirstInvocation);
|
||||||
FirstInvocation = FALSE;
|
FirstInvocation = FALSE;
|
||||||
game_disableAudio();
|
game_disableAudio();
|
||||||
|
@ -1262,10 +1281,13 @@ uint32 S9xReadJoypad (int which1)
|
||||||
mdelay(1);
|
mdelay(1);
|
||||||
} while (inputdata.key & KEY_LID);
|
} while (inputdata.key & KEY_LID);
|
||||||
ds2_wakeup();
|
ds2_wakeup();
|
||||||
// Before starting to emulate again, turn off the lower
|
// Before starting to emulate again, turn on only the
|
||||||
// screen's backlight.
|
// game screen's backlight.
|
||||||
|
SCREEN_ID screen_num = emu_config.BottomScreenGame
|
||||||
|
? DOWN_SCREEN
|
||||||
|
: UP_SCREEN;
|
||||||
mdelay(100); // needed to avoid ds2_setBacklight crashing
|
mdelay(100); // needed to avoid ds2_setBacklight crashing
|
||||||
ds2_setBacklight(2);
|
ds2_setBacklight(3 - screen_num);
|
||||||
GameFrequencyCPU();
|
GameFrequencyCPU();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
1576
source/nds/gui.c
1576
source/nds/gui.c
File diff suppressed because it is too large
Load diff
|
@ -86,7 +86,8 @@ struct _EMU_CONFIG
|
||||||
u32 HotkeyQuickLoadState;
|
u32 HotkeyQuickLoadState;
|
||||||
u32 HotkeyQuickSaveState;
|
u32 HotkeyQuickSaveState;
|
||||||
u32 HotkeyToggleFullScreen;
|
u32 HotkeyToggleFullScreen;
|
||||||
u32 Reserved[58];
|
u32 BottomScreenGame;
|
||||||
|
u32 Reserved[57];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GAME_CONFIG
|
struct _GAME_CONFIG
|
||||||
|
|
|
@ -31,12 +31,17 @@ enum MSG
|
||||||
MSG_MAIN_MENU_TOOLS,
|
MSG_MAIN_MENU_TOOLS,
|
||||||
MSG_MAIN_MENU_OPTIONS,
|
MSG_MAIN_MENU_OPTIONS,
|
||||||
MSG_MAIN_MENU_EXIT,
|
MSG_MAIN_MENU_EXIT,
|
||||||
|
|
||||||
|
MSG_FILE_MENU_LOADING_LIST,
|
||||||
|
MSG_FILE_MENU_SORTING_LIST,
|
||||||
|
|
||||||
FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE,
|
FMT_VIDEO_AUDIO_FLUIDITY_PREFERENCE,
|
||||||
MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO,
|
MSG_VIDEO_AUDIO_FLUIDITY_PREFER_VIDEO,
|
||||||
MSG_VIDEO_AUDIO_FLUIDITY_PREFER_AUDIO,
|
MSG_VIDEO_AUDIO_FLUIDITY_PREFER_AUDIO,
|
||||||
FMT_VIDEO_ASPECT_RATIO,
|
FMT_VIDEO_ASPECT_RATIO,
|
||||||
FMT_VIDEO_FAST_FORWARD,
|
FMT_VIDEO_FAST_FORWARD,
|
||||||
FMT_VIDEO_FRAME_SKIPPING,
|
FMT_VIDEO_FRAME_SKIPPING,
|
||||||
|
FMT_VIDEO_GAME_SCREEN,
|
||||||
FMT_AUDIO_SOUND,
|
FMT_AUDIO_SOUND,
|
||||||
FMT_AUDIO_RETRO_SOUND,
|
FMT_AUDIO_RETRO_SOUND,
|
||||||
FMT_SAVED_STATE_CREATE,
|
FMT_SAVED_STATE_CREATE,
|
||||||
|
@ -92,6 +97,9 @@ enum MSG
|
||||||
MSG_VIDEO_FRAME_SKIPPING_9,
|
MSG_VIDEO_FRAME_SKIPPING_9,
|
||||||
MSG_VIDEO_FRAME_SKIPPING_10,
|
MSG_VIDEO_FRAME_SKIPPING_10,
|
||||||
|
|
||||||
|
MSG_VIDEO_GAME_SCREEN_TOP,
|
||||||
|
MSG_VIDEO_GAME_SCREEN_BOTTOM,
|
||||||
|
|
||||||
MSG_GENERAL_OFF,
|
MSG_GENERAL_OFF,
|
||||||
MSG_GENERAL_ON,
|
MSG_GENERAL_ON,
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue