From b3f5eecbcd660065b8d1c92029e5e6fa0a74ecdb Mon Sep 17 00:00:00 2001 From: "SND\\ckain_cp" Date: Wed, 16 Apr 2014 18:04:29 +0000 Subject: Big endian CDDA support. Uses Config.Cdda (previously bool). Now enum. Gtk gui was modified for new enum, but compatibility was kept so that other guis don't go nuts. git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@90008 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- data/pcsxr.ui | 97 +++++++++++++++++++++++++++++++++++++------------ gui/ConfDlg.c | 4 +- gui/Config.c | 4 +- libpcsxcore/cdriso.c | 6 +-- libpcsxcore/cdrom.c | 6 +-- libpcsxcore/psxcommon.h | 8 +++- 6 files changed, 91 insertions(+), 34 deletions(-) diff --git a/data/pcsxr.ui b/data/pcsxr.ui index 2a7ed4c3..573f07fb 100644 --- a/data/pcsxr.ui +++ b/data/pcsxr.ui @@ -1710,23 +1710,6 @@ - - - Disable CD Audio - True - True - False - True - 0 - True - - - 4 - 5 - GTK_FILL - - - Slow Boot @@ -1880,6 +1863,57 @@ 0 + + + True + False + 0 + + + True + False + 5 + 10 + + + True + False + CD Audio + True + + + False + False + 0 + + + + + True + False + liststore5 + + + + 0 + + + + + False + False + 1 + + + + + + + False + True + 1 + + True @@ -1939,11 +1973,11 @@ False True - 1 + 3 - + True False 0 @@ -1952,7 +1986,7 @@ True False 5 - 4 + 4 True @@ -2018,7 +2052,7 @@ False False 4 - + @@ -2061,7 +2095,7 @@ False True - 1 + 2 @@ -2453,7 +2487,7 @@ True False - Most _Recent + Slot _Recent True @@ -4355,4 +4389,21 @@ + + + + + + + + Enabled (Little endian) + + + Disabled + + + Enabled (Big endian) + + + diff --git a/gui/ConfDlg.c b/gui/ConfDlg.c index 9b414f79..7041c259 100755 --- a/gui/ConfDlg.c +++ b/gui/ConfDlg.c @@ -900,7 +900,7 @@ void OnCpu_Clicked(GtkDialog *dialog, gint arg1, gpointer user_data) { Config.Xa = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_Xa"))); Config.SioIrq = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_SioIrq"))); Config.Mdec = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_Mdec"))); - Config.Cdda = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_CDDA"))); + Config.Cdda = gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_builder_get_object(builder, "GtkCombo_CDDA"))); Config.SlowBoot = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_SlowBoot"))); Config.PsxAuto = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_PsxAuto"))); @@ -981,7 +981,7 @@ void OnConf_Cpu() { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_Xa")), Config.Xa); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_SioIrq")), Config.SioIrq); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_Mdec")), Config.Mdec); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_CDDA")), Config.Cdda); + gtk_combo_box_set_active(GTK_COMBO_BOX(gtk_builder_get_object(builder, "GtkCombo_CDDA")), Config.Cdda); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_SlowBoot")), Config.SlowBoot); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "GtkCheckButton_PsxAuto")), Config.PsxAuto); diff --git a/gui/Config.c b/gui/Config.c index 5f9a0c99..8d6253c2 100755 --- a/gui/Config.c +++ b/gui/Config.c @@ -130,7 +130,7 @@ int LoadConfig(PcsxConfig *Conf) { Config.SioIrq = GetValueb(data, "SioIrq"); Config.Mdec = GetValueb(data, "Mdec"); Config.PsxAuto = GetValueb(data, "PsxAuto"); - Config.Cdda = GetValueb(data, "Cdda"); + Config.Cdda = GetValuel(data, "Cdda"); Config.SlowBoot= GetValueb(data, "SlowBoot"); Config.Debug = GetValueb(data, "Dbg"); Config.PsxOut = (Config.PsxOut || GetValueb(data, "PsxOut")); @@ -179,7 +179,7 @@ void SaveConfig() { SetValueb("SioIrq", Config.SioIrq); SetValueb("Mdec", Config.Mdec); SetValueb("PsxAuto", Config.PsxAuto); - SetValueb("Cdda", Config.Cdda); + SetValuel("Cdda", Config.Cdda); SetValueb("SlowBoot",Config.SlowBoot); SetValueb("Dbg", Config.Debug); SetValueb("PsxOut", Config.PsxOut); diff --git a/libpcsxcore/cdriso.c b/libpcsxcore/cdriso.c index 4481b33d..95a787b4 100755 --- a/libpcsxcore/cdriso.c +++ b/libpcsxcore/cdriso.c @@ -1980,8 +1980,8 @@ long CALLBACK ISOreadCDDA(unsigned char m, unsigned char s, unsigned char f, uns break; } - // data tracks play silent - if (ti[track].type != CDDA) { + // data tracks play silent (or CDDA set to silent) + if (ti[track].type != CDDA || Config.Cdda == CDDA_DISABLED) { memset(buffer, 0, CD_FRAMESIZE_RAW); return 0; } @@ -2006,7 +2006,7 @@ long CALLBACK ISOreadCDDA(unsigned char m, unsigned char s, unsigned char f, uns return -1; } - if (cddaBigEndian) { + if (Config.Cdda == CDDA_ENABLED_BE || cddaBigEndian) { int i; unsigned char tmp; diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c index 69d665a6..2aa6f9ad 100755 --- a/libpcsxcore/cdrom.c +++ b/libpcsxcore/cdrom.c @@ -703,7 +703,7 @@ void cdrInterrupt() { ReadTrack(cdr.SetSectorPlay); cdr.TrackChanged = FALSE; - if (!Config.Cdda) + if (Config.Cdda != CDDA_DISABLED) CDR_play(cdr.SetSectorPlay); // Vib Ribbon: gameplay checks flag @@ -1582,7 +1582,7 @@ void cdrReset() { int cdrFreeze(gzFile f, int Mode) { u8 tmpp[3]; - if (Mode == 0 && !Config.Cdda) + if (Mode == 0 && Config.Cdda != CDDA_DISABLED) CDR_stop(); gzfreeze(&cdr, sizeof(cdr)); @@ -1600,7 +1600,7 @@ int cdrFreeze(gzFile f, int Mode) { if (cdr.Play) { Find_CurTrack(cdr.SetSectorPlay); - if (!Config.Cdda) + if (Config.Cdda != CDDA_DISABLED) CDR_play(cdr.SetSectorPlay); } } diff --git a/libpcsxcore/psxcommon.h b/libpcsxcore/psxcommon.h index b6f83e74..8def3612 100755 --- a/libpcsxcore/psxcommon.h +++ b/libpcsxcore/psxcommon.h @@ -141,7 +141,7 @@ typedef struct { boolean SioIrq; boolean Mdec; boolean PsxAuto; - boolean Cdda; + u8 Cdda; boolean HLE; boolean SlowBoot; boolean Debug; @@ -189,6 +189,12 @@ enum { CPU_INTERPRETER }; // CPU Types +enum { + CDDA_ENABLED_LE = 0, + CDDA_DISABLED, + CDDA_ENABLED_BE +}; // CDDA Types + int EmuInit(); void EmuReset(); void EmuShutdown(); -- cgit v1.2.3