Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions yabause/src/android/jni/yui.c
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,7 @@ Java_org_yabause_android_YabauseRunnable_init( JNIEnv* env, jobject obj, jobject
yinit.cdcoretype = CDCORE_ISO;
yinit.carttype = GetCartridgeType();
yinit.regionid = 0;
yinit.syslanguageid = 0;
yinit.biospath = GetBiosPath();
yinit.cdpath = GetGamePath();
yinit.buppath = GetMemoryPath();
Expand Down
1 change: 1 addition & 0 deletions yabause/src/cocoa/YabauseController.m
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,7 @@ - (void)startEmulationWithCDCore:(int)cdcore CDPath:(const char *)fn
yinit.cdcoretype = cdcore;
yinit.carttype = [prefs cartType];
yinit.regionid = [prefs region];
yinit.syslanguageid = [prefs system language];
yinit.biospath = ([bios length] > 0 && ![prefs emulateBios]) ?
[bios UTF8String] : NULL;
yinit.cdpath = fn;
Expand Down
1 change: 1 addition & 0 deletions yabause/src/dreamcast/yui.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ int YuiInit(int sh2core) {
yinit.cdcoretype = CDCORE_ARCH;
yinit.carttype = CART_NONE;
yinit.regionid = REGION_AUTODETECT;
yinit.syslanguageid = 0;
yinit.biospath = emulate_bios ? NULL : bios;
yinit.cdpath = NULL;
yinit.buppath = NULL;
Expand Down
46 changes: 46 additions & 0 deletions yabause/src/gtk/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,11 @@ GtkWidget * yui;
GKeyFile * keyfile;
yabauseinit_struct yinit;

char* toLower(char* s) {
for(char *p=s; *p; p++) *p=tolower(*p);
return s;
}

static int yui_main(gpointer data) {
PERCore->HandleEvents();
return TRUE;
Expand Down Expand Up @@ -161,6 +166,7 @@ static void yui_settings_init(void) {
yinit.carttype = CART_NONE;
yinit.regionid = 0;
yinit.biospath = biospath;
yinit.syslanguageid = 0;
yinit.cdpath = cdpath;
yinit.buppath = buppath;
yinit.mpegpath = mpegpath;
Expand Down Expand Up @@ -225,6 +231,28 @@ static gboolean yui_settings_load(void) {
Cs2ChangeCDCore(yinit.cdcoretype, yinit.cdpath);
}

/* SystemLanguageID */
{
char * syslang = g_key_file_get_value(keyfile, "General", "SystemLanguageID", 0);
tmp = yinit.syslanguageid;
if ((syslang == 0) || !strcmp(syslang, "0")) {
yinit.syslanguageid = 0;
} else {
switch(syslang[0]) {
case '0': yinit.syslanguageid = 0; break;
case '1': yinit.syslanguageid = 1; break;
case '2': yinit.syslanguageid = 2; break;
case '3': yinit.syslanguageid = 3; break;
case '4': yinit.syslanguageid = 4; break;
case '5': yinit.syslanguageid = 5; break;
}
}

if ((YUI_WINDOW(yui)->state & YUI_IS_INIT) && (tmp != yinit.syslanguageid)) {
mustRestart = TRUE;
}
}

/* region */
{
char * region = g_key_file_get_value(keyfile, "General", "Region", 0);
Expand Down Expand Up @@ -493,6 +521,24 @@ int main(int argc, char *argv[]) {
g_strlcpy(biospath, argv[i] + strlen("--bios="), 256);
yinit.biospath = biospath;
}
//set System Language
if (0 == strcmp(argv[i], "-l") && argv[i + 1]) {
g_strlcpy(strsyslangeid, argv[i + 1], 256);
if (toLower(strsyslangeid) == "english") { yinit.syslanguageid = 0; }
if (toLower(strsyslangeid) == "deutsch") { yinit.syslanguageid = 1; }
if (toLower(strsyslangeid) == "french") { yinit.syslanguageid = 2; }
if (toLower(strsyslangeid) == "spanish") { yinit.syslanguageid = 3; }
if (toLower(strsyslangeid) == "italian") { yinit.syslanguageid = 4; }
if (toLower(strsyslangeid) == "japanese") { yinit.syslanguageid = 5; }
} else if (strstr(argv[i], "--language=")) {
g_strlcpy(strsyslangeid, argv[i] + strlen("--language="), 256);
if (toLower(strsyslangeid) == "english") { yinit.syslanguageid = 0; }
if (toLower(strsyslangeid) == "deutsch") { yinit.syslanguageid = 1; }
if (toLower(strsyslangeid) == "french") { yinit.syslanguageid = 2; }
if (toLower(strsyslangeid) == "spanish") { yinit.syslanguageid = 3; }
if (toLower(strsyslangeid) == "italian") { yinit.syslanguageid = 4; }
if (toLower(strsyslangeid) == "japanese") { yinit.syslanguageid = 5; }
}
//set iso
else if (0 == strcmp(argv[i], "-i") && argv[i + 1]) {
g_strlcpy(cdpath, argv[i + 1], 256);
Expand Down
13 changes: 13 additions & 0 deletions yabause/src/gtk/settings.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,16 @@ YuiRangeItem * osdcores = NULL;
YuiRangeItem * sndcores = NULL;
YuiRangeItem * percores = NULL;

YuiRangeItem syslanguage[] = {
{ "0" , "English" },
{ "1" , "Deutsch" },
{ "2" , "French" },
{ "3" , "Spanish" },
{ "4" , "Italian" },
{ "5" , "Japanese" },
{ 0, 0 }
};

YuiRangeItem regions[] = {
{ "Auto" , "Auto-detect" },
{ "J" , "Japan (NTSC)" },
Expand Down Expand Up @@ -325,6 +335,9 @@ GtkWidget* create_dialog1(void) {
box = yui_page_add(YUI_PAGE(general), _("Save States"));
gtk_container_add(GTK_CONTAINER(box), yui_file_entry_new(keyfile, "General", "StatePath", YUI_FILE_ENTRY_BROWSE | YUI_FILE_ENTRY_DIRECTORY, NULL));

box = yui_page_add(YUI_PAGE(general), _("System Language"));
gtk_container_add(GTK_CONTAINER(box), yui_range_new(keyfile, "General", "SystemLanguageID", syslanguage));

gtk_notebook_append_page(GTK_NOTEBOOK(notebook1), general, gtk_label_new (_("General")));
gtk_widget_show_all(general);

Expand Down
19 changes: 16 additions & 3 deletions yabause/src/qt/Arguments.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ namespace Arguments
void autostart(const QString& param);
void binary(const QString& param);
void bios(const QString& param);
void syslangid(const QString& param);
void cdrom(const QString& param);
void fullscreen(const QString& param);
void help(const QString& param);
Expand Down Expand Up @@ -50,6 +51,7 @@ namespace Arguments
{ "-a", "--autostart", NULL, "Automatically start emulation.", 1, autostart },
{ NULL, "--binary=", "<FILE>[:ADDRESS]", "Use a binary file.", 1, binary },
{ "-b", "--bios=", "<BIOS>", "Choose a bios file.", 3, bios },
{ "-l", "--language=", "<language>","Choose the system language: english, deutsch, french, spanish, italian, japanese", 7, syslangid },
{ "-c", "--cdrom=", "<CDROM>", "Choose the cdrom device.", 4, cdrom },
{ "-f", "--fullscreen", NULL, "Start the emulator in fullscreen.", 5, fullscreen },
{ "-h", "--help", NULL, "Show this help and exit.", 0, help },
Expand All @@ -62,8 +64,8 @@ namespace Arguments

void parse()
{
QVector<Option *> choosenOptions(7);
QVector<QString> params(7);
QVector<Option *> choosenOptions(8);
QVector<QString> params(8);

QStringList arguments = QApplication::arguments();
QStringListIterator argit(arguments);
Expand All @@ -90,7 +92,7 @@ namespace Arguments
}
}

for(int i = 0;i < 7;i++)
for(int i = 0;i < 8;i++)
{
Option * option = choosenOptions[i];
if (option)
Expand Down Expand Up @@ -143,6 +145,17 @@ namespace Arguments
vs->setValue("General/Bios", param);
}

void syslangid(const QString& param)
{
VolatileSettings * vs = QtYabause::volatileSettings();
if (param.toLower() == "english") { vs->setValue("General/SystemLanguageID", 0); }
if (param.toLower() == "deutsch") { vs->setValue("General/SystemLanguageID", 1); }
if (param.toLower() == "french") { vs->setValue("General/SystemLanguageID", 2); }
if (param.toLower() == "spanish") { vs->setValue("General/SystemLanguageID", 3); }
if (param.toLower() == "italian") { vs->setValue("General/SystemLanguageID", 4); }
if (param.toLower() == "japanese") { vs->setValue("General/SystemLanguageID", 5); }
}

void cdrom(const QString& param)
{
VolatileSettings * vs = QtYabause::volatileSettings();
Expand Down
16 changes: 16 additions & 0 deletions yabause/src/qt/YabauseThread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,21 @@ void YabauseThread::reloadSettings()
case 'L': mYabauseConf.regionid = 0xD; break;
}
}
const QString r1 = vs->value( "General/SystemLanguageID", mYabauseConf.syslanguageid ).toString();
if ( r1.isEmpty() || r1 == "0" )
mYabauseConf.syslanguageid = 0;
else
{
switch ( r1[0].toLatin1() )
{
case '0': mYabauseConf.syslanguageid = 0; break;
case '1': mYabauseConf.syslanguageid = 1; break;
case '2': mYabauseConf.syslanguageid = 2; break;
case '3': mYabauseConf.syslanguageid = 3; break;
case '4': mYabauseConf.syslanguageid = 4; break;
case '5': mYabauseConf.syslanguageid = 5; break;
}
}
if (vs->value("General/EnableEmulatedBios", false).toBool())
mYabauseConf.biospath = strdup( "" );
else
Expand Down Expand Up @@ -431,6 +446,7 @@ void YabauseThread::resetYabauseConf()
mYabauseConf.cdcoretype = QtYabause::defaultCDCore().id;
mYabauseConf.carttype = CART_NONE;
mYabauseConf.regionid = 0;
mYabauseConf.syslanguageid = 0;
mYabauseConf.biospath = 0;
mYabauseConf.cdpath = 0;
mYabauseConf.buppath = 0;
Expand Down
14 changes: 14 additions & 0 deletions yabause/src/qt/ui/UISettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,14 @@ struct Item

typedef QList<Item> Items;

const Items mSysLanguageID = Items()
<< Item( "0", "English" )
<< Item( "1", "Deutsch" )
<< Item( "2", "French" )
<< Item( "3", "Spanish" )
<< Item( "4", "Italian" )
<< Item( "5", "Japanese" );

const Items mRegions = Items()
<< Item( "Auto" , "Auto-detect" )
<< Item( "J" , "Japan (NTSC)" )
Expand Down Expand Up @@ -332,6 +340,10 @@ void UISettings::loadCores()
foreach ( const Item& it, mRegions )
cbRegion->addItem( QtYabause::translate( it.Name ), it.id );

// System Language
foreach ( const Item& it, mSysLanguageID )
cbSysLanguageID ->addItem( QtYabause::translate( it.Name ), it.id );

// SH2 Interpreters
for ( int i = 0; SH2CoreList[i] != NULL; i++ )
{
Expand Down Expand Up @@ -432,6 +444,7 @@ void UISettings::loadSettings()
cbCdDrive->setCurrentIndex(leCdRom->text().isEmpty() ? 0 : cbCdDrive->findText(leCdRom->text()));

leSaveStates->setText( s->value( "General/SaveStates", getDataDirPath() ).toString() );
cbSysLanguageID->setCurrentIndex( cbSysLanguageID->findData( s->value( "General/SystemLanguageID", mSysLanguageID.at( 0 ).id ).toString() ) );
#ifdef HAVE_LIBMINI18N
int i;
if ((i=cbTranslation->findData(s->value( "General/Translation" ).toString())) != -1)
Expand Down Expand Up @@ -537,6 +550,7 @@ void UISettings::saveSettings()
else
s->setValue( "General/CdRomISO", leCdRom->text() );
s->setValue( "General/SaveStates", leSaveStates->text() );
s->setValue( "General/SystemLanguageID", cbSysLanguageID->itemData( cbSysLanguageID->currentIndex() ).toString() );
#ifdef HAVE_LIBMINI18N
s->setValue( "General/Translation", cbTranslation->itemData(cbTranslation->currentIndex()).toString() );
#endif
Expand Down
21 changes: 20 additions & 1 deletion yabause/src/qt/ui/UISettings.ui
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,25 @@
</widget>
</item>
<item row="10" column="0" colspan="2">
<widget class="QLabel" name="lSysLanguageID">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>System Language</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
</widget>
</item>
<item row="11" column="0" colspan="2">
<widget class="QComboBox" name="cbSysLanguageID"/>
</item>
<item row="12" column="0" colspan="2">
<widget class="QLabel" name="lTranslation">
<property name="font">
<font>
Expand Down Expand Up @@ -192,7 +211,7 @@
</property>
</widget>
</item>
<item row="11" column="0" colspan="2">
<item row="13" column="0" colspan="2">
<widget class="QComboBox" name="cbTranslation"/>
</item>
<item row="20" column="0">
Expand Down
1 change: 1 addition & 0 deletions yabause/src/qt/ui/UIYabause.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -757,6 +757,7 @@ void UIYabause::on_aFileSettings_triggered()
newhash["Advanced/68kCore"] != hash["Advanced/68kCore"] ||
newhash["General/CdRom"]!=hash["General/CdRom"] ||
newhash["General/CdRomISO"]!=hash["General/CdRomISO"] ||
newhash["General/SystemLanguageID"]!=hash["General/SystemLanguageID"] ||
newhash["General/ClockSync"]!=hash["General/ClockSync"] ||
newhash["General/FixedBaseTime"]!=hash["General/FixedBaseTime"] ||
newhash["Advanced/EnableScuDspDynarec"] != hash["Advanced/EnableScuDspDynarec"] ||
Expand Down
4 changes: 3 additions & 1 deletion yabause/src/runner/yui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -552,6 +552,7 @@ namespace game_testing
yinit.cdcoretype = CDCORE_ISO;
yinit.carttype = CART_NONE;
yinit.regionid = REGION_AUTODETECT;
yinit.syslanguageid = 0;
yinit.biospath = emulate_bios ? NULL : bios;
yinit.cdpath = full_path.c_str();
yinit.buppath = NULL;
Expand Down Expand Up @@ -799,6 +800,7 @@ namespace yabauseut
yinit.cdcoretype = CDCORE_DUMMY;
yinit.carttype = CART_NONE;
yinit.regionid = REGION_AUTODETECT;
yinit.syslanguageid = 0;
yinit.biospath = emulate_bios ? NULL : bios;
yinit.cdpath = NULL;
yinit.buppath = NULL;
Expand Down Expand Up @@ -1112,4 +1114,4 @@ int main(int argc, char *argv[])
std::cout << "Unknown mode argument." << std::endl;
return false;
}
}
}
Loading