diff options
Diffstat (limited to 'pcr/gens-gs')
-rw-r--r-- | pcr/gens-gs/PKGBUILD | 49 | ||||
-rw-r--r-- | pcr/gens-gs/gens-gtk.patch | 187 |
2 files changed, 236 insertions, 0 deletions
diff --git a/pcr/gens-gs/PKGBUILD b/pcr/gens-gs/PKGBUILD new file mode 100644 index 000000000..316c0af9c --- /dev/null +++ b/pcr/gens-gs/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: trya <tryagainprod@gmail.com> + +pkgname=gens-gs +pkgver=r7 +pkgrel=5 +pkgdesc="An emulator of Sega Genesis, Sega CD and 32X, combining features from various forks of Gens" +url="http://segaretro.org/Gens/GS" +arch=('i686' 'x86_64') +license=('GPL') +if [[ $CARCH == "x86_64" ]]; then + depends=('lib32-gtk2' 'lib32-sdl' 'lib32-libgl') + makedepends=('nasm' 'gcc-multilib') + optdepends=('lib32-alsa-plugins: sound with Gens/GS for Pulseaudio users' + 'lib32-libpulse: sound with Gens/GS for Pulseaudio users') +else + depends=('gtk2' 'sdl' 'libgl') + makedepends=('nasm' 'gcc') +fi +replaces=('bin32-gens-gs') +conflicts=('gens' 'gens-gs-git' 'bin32-gens-gs' 'bin32-gens') +options=('!libtool') +source=("http://segaretro.org/images/6/6d/Gens-gs-r7.tar.gz" + gens-gtk.patch) +md5sums=('bcb17b49774aa318a224c741028aabc3' + '94a8ea744dee8caea73db1223ac67dcd') + +build() { + if [ $CARCH == "x86_64" ]; then + export CC="gcc -m32" + export CXX="g++ -m32" + export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" + fi + + cd "$srcdir/$pkgname-$pkgver" + + patch -Np1 < ../gens-gtk.patch + if [ $CARCH == "x86_64" ]; then + i386 ./configure --prefix=/usr + else + ./configure --prefix=/usr LIBS="-ldl -lX11" + fi + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir" install + rm -f "$pkgdir/usr/lib/mdp/*.a" +} diff --git a/pcr/gens-gs/gens-gtk.patch b/pcr/gens-gs/gens-gtk.patch new file mode 100644 index 000000000..0bc6fd0ee --- /dev/null +++ b/pcr/gens-gs/gens-gtk.patch @@ -0,0 +1,187 @@ +diff -ru gens/src/gens/ui/gtk/about/about_window.cpp gens-build/src/gens/ui/gtk/about/about_window.cpp +--- gens/src/gens/ui/gtk/about/about_window.cpp 2010-10-11 16:32:29.000000000 +0000 ++++ gens-build/src/gens/ui/gtk/about/about_window.cpp 2010-10-11 15:46:25.000000000 +0000 +@@ -84,7 +84,7 @@ + gtk_window_set_position(GTK_WINDOW(about_window), GTK_WIN_POS_CENTER); + gtk_window_set_resizable(GTK_WINDOW(about_window), FALSE); + gtk_window_set_type_hint(GTK_WINDOW(about_window), GDK_WINDOW_TYPE_HINT_DIALOG); +- gtk_dialog_set_has_separator(GTK_DIALOG(about_window), FALSE); ++ g_object_set(GTK_DIALOG(about_window), "has-separator", FALSE, NULL); + + // Callbacks for if the window is closed. + g_signal_connect((gpointer)about_window, "delete_event", +diff -ru gens/src/gens/ui/gtk/bios_misc_files/bmf_window.cpp gens-build/src/gens/ui/gtk/bios_misc_files/bmf_window.cpp +--- gens/src/gens/ui/gtk/bios_misc_files/bmf_window.cpp 2010-10-11 16:32:29.000000000 +0000 ++++ gens-build/src/gens/ui/gtk/bios_misc_files/bmf_window.cpp 2010-10-11 15:33:03.000000000 +0000 +@@ -84,7 +84,7 @@ + gtk_window_set_position(GTK_WINDOW(bmf_window), GTK_WIN_POS_CENTER); + gtk_window_set_resizable(GTK_WINDOW(bmf_window), FALSE); + gtk_window_set_type_hint(GTK_WINDOW(bmf_window), GDK_WINDOW_TYPE_HINT_DIALOG); +- gtk_dialog_set_has_separator(GTK_DIALOG(bmf_window), FALSE); ++ g_object_set(GTK_DIALOG(bmf_window), "has-separator", FALSE, NULL); + + // Callbacks for if the window is closed. + g_signal_connect((gpointer)bmf_window, "delete_event", +diff -ru gens/src/gens/ui/gtk/directory_config/dir_window.cpp gens-build/src/gens/ui/gtk/directory_config/dir_window.cpp +--- gens/src/gens/ui/gtk/directory_config/dir_window.cpp 2010-10-11 16:32:29.000000000 +0000 ++++ gens-build/src/gens/ui/gtk/directory_config/dir_window.cpp 2010-10-11 15:34:21.000000000 +0000 +@@ -109,7 +109,7 @@ + gtk_window_set_position(GTK_WINDOW(dir_window), GTK_WIN_POS_CENTER); + gtk_window_set_resizable(GTK_WINDOW(dir_window), FALSE); + gtk_window_set_type_hint(GTK_WINDOW(dir_window), GDK_WINDOW_TYPE_HINT_DIALOG); +- gtk_dialog_set_has_separator(GTK_DIALOG(dir_window), FALSE); ++ g_object_set(GTK_DIALOG(dir_window), "has-separator", FALSE, NULL); + + // Callbacks for if the window is closed. + g_signal_connect((gpointer)(dir_window), "delete_event", +diff -ru gens/src/gens/ui/gtk/general_options/genopt_window.cpp gens-build/src/gens/ui/gtk/general_options/genopt_window.cpp +--- gens/src/gens/ui/gtk/general_options/genopt_window.cpp 2010-10-11 16:32:29.000000000 +0000 ++++ gens-build/src/gens/ui/gtk/general_options/genopt_window.cpp 2010-10-11 15:36:00.000000000 +0000 +@@ -140,7 +140,7 @@ + gtk_window_set_position(GTK_WINDOW(genopt_window), GTK_WIN_POS_CENTER); + gtk_window_set_resizable(GTK_WINDOW(genopt_window), false); + gtk_window_set_type_hint(GTK_WINDOW(genopt_window), GDK_WINDOW_TYPE_HINT_DIALOG); +- gtk_dialog_set_has_separator(GTK_DIALOG(genopt_window), false); ++ g_object_set(GTK_DIALOG(genopt_window), "has-separator", false, NULL); + + // Callbacks for if the window is closed. + g_signal_connect((gpointer)genopt_window, "delete_event", +@@ -458,11 +458,11 @@ + gtk_box_pack_start(GTK_BOX(vboxIntroEffect), lblIntroEffect, false, false, 0); + + // Dropdown for intro effect. +- cboIntroEffect = gtk_combo_box_new_text(); +- gtk_combo_box_append_text(GTK_COMBO_BOX(cboIntroEffect), "None"); +- gtk_combo_box_append_text(GTK_COMBO_BOX(cboIntroEffect), "Gens Logo Effect"); +- gtk_combo_box_append_text(GTK_COMBO_BOX(cboIntroEffect), "\"Crazy\" Effect"); +- //gtk_combo_box_append_text(GTK_COMBO_BOX(cboIntroEffect), "Genesis TMSS"); // TODO: Broken. ++ cboIntroEffect = gtk_combo_box_text_new(); ++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboIntroEffect), "None"); ++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboIntroEffect), "Gens Logo Effect"); ++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboIntroEffect), "\"Crazy\" Effect"); ++ //gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboIntroEffect), "Genesis TMSS"); // TODO: Broken. + gtk_widget_show(cboIntroEffect); + gtk_box_pack_start(GTK_BOX(vboxIntroEffect), cboIntroEffect, false, false, 0); + g_signal_connect((gpointer)(cboIntroEffect), "changed", +diff -ru gens/src/gens/ui/gtk/gens/gens_window_callbacks.cpp gens-build/src/gens/ui/gtk/gens/gens_window_callbacks.cpp +--- gens/src/gens/ui/gtk/gens/gens_window_callbacks.cpp 2010-10-11 16:32:29.000000000 +0000 ++++ gens-build/src/gens/ui/gtk/gens/gens_window_callbacks.cpp 2010-10-11 15:21:28.000000000 +0000 +@@ -154,9 +154,9 @@ + GSFT_UNUSED_PARAMETER(y); + GSFT_UNUSED_PARAMETER(user_data); + +- if (context->targets) ++ if (gdk_drag_context_list_targets(context)) + { +- GdkAtom target_type = GDK_POINTER_TO_ATOM(g_list_nth_data(context->targets, 0)); ++ GdkAtom target_type = GDK_POINTER_TO_ATOM(g_list_nth_data(gdk_drag_context_list_targets(context), 0)); + gtk_drag_get_data(widget, context, target_type, time); + return true; + } +diff -ru gens/src/gens/ui/gtk/opengl_resolution/glres_window.cpp gens-build/src/gens/ui/gtk/opengl_resolution/glres_window.cpp +--- gens/src/gens/ui/gtk/opengl_resolution/glres_window.cpp 2010-10-11 16:32:29.000000000 +0000 ++++ gens-build/src/gens/ui/gtk/opengl_resolution/glres_window.cpp 2010-10-11 15:46:21.000000000 +0000 +@@ -75,7 +75,7 @@ + gtk_window_set_position(GTK_WINDOW(glres_window), GTK_WIN_POS_CENTER); + gtk_window_set_resizable(GTK_WINDOW(glres_window), FALSE); + gtk_window_set_type_hint(GTK_WINDOW(glres_window), GDK_WINDOW_TYPE_HINT_DIALOG); +- gtk_dialog_set_has_separator(GTK_DIALOG(glres_window), FALSE); ++ g_object_set(GTK_DIALOG(glres_window), "has-separator", FALSE, NULL); + + // Callbacks for if the window is closed. + g_signal_connect((gpointer)(glres_window), "delete_event", +diff -ru gens/src/gens/ui/gtk/plugin_manager/pmgr_window.cpp gens-build/src/gens/ui/gtk/plugin_manager/pmgr_window.cpp +--- gens/src/gens/ui/gtk/plugin_manager/pmgr_window.cpp 2010-10-11 16:32:29.000000000 +0000 ++++ gens-build/src/gens/ui/gtk/plugin_manager/pmgr_window.cpp 2010-10-11 15:46:29.000000000 +0000 +@@ -80,8 +80,7 @@ + // Callbacks. + static gboolean pmgr_window_callback_close(GtkWidget *widget, GdkEvent *event, gpointer user_data); + static void pmgr_window_callback_response(GtkDialog *dialog, gint response_id, gpointer user_data); +-static void pmgr_window_callback_tabPluginList_switch_page(GtkNotebook *notebook, GtkNotebookPage *page, +- guint page_num, gpointer user_data); ++static void pmgr_window_callback_tabPluginList_switch_page(GtkNotebook *notebook, guint page_num, gpointer user_data); + static void pmgr_window_callback_lstPluginList_cursor_changed(GtkTreeView *tree_view, gpointer user_data); + static void pmgr_window_callback_fraPluginDesc_size_allocate(GtkWidget *widget, GtkAllocation *allocation, gpointer user_data); + +@@ -119,7 +118,7 @@ + gtk_window_set_position(GTK_WINDOW(pmgr_window), GTK_WIN_POS_CENTER); + gtk_window_set_resizable(GTK_WINDOW(pmgr_window), FALSE); + gtk_window_set_type_hint(GTK_WINDOW(pmgr_window), GDK_WINDOW_TYPE_HINT_DIALOG); +- gtk_dialog_set_has_separator(GTK_DIALOG(pmgr_window), FALSE); ++ g_object_set(GTK_DIALOG(pmgr_window), "has-separator", FALSE, NULL); + + // Callbacks for if the window is closed. + g_signal_connect((gpointer)pmgr_window, "delete_event", +@@ -559,11 +558,9 @@ + * @param page_num New notebook page index. + * @param user_data User data. + */ +-static void pmgr_window_callback_tabPluginList_switch_page(GtkNotebook *notebook, GtkNotebookPage *page, +- guint page_num, gpointer user_data) ++static void pmgr_window_callback_tabPluginList_switch_page(GtkNotebook *notebook, guint page_num, gpointer user_data) + { + GSFT_UNUSED_PARAMETER(notebook); +- GSFT_UNUSED_PARAMETER(page); + GSFT_UNUSED_PARAMETER(user_data); + + // Activate the "cursor-changed" callback for the page. +diff -ru gens/src/gens/ui/gtk/select_cdrom/selcd_window.cpp gens-build/src/gens/ui/gtk/select_cdrom/selcd_window.cpp +--- gens/src/gens/ui/gtk/select_cdrom/selcd_window.cpp 2010-10-11 16:32:29.000000000 +0000 ++++ gens-build/src/gens/ui/gtk/select_cdrom/selcd_window.cpp 2010-10-11 15:46:16.000000000 +0000 +@@ -94,7 +94,7 @@ + gtk_window_set_position(GTK_WINDOW(selcd_window), GTK_WIN_POS_CENTER); + gtk_window_set_resizable(GTK_WINDOW(selcd_window), FALSE); + gtk_window_set_type_hint(GTK_WINDOW(selcd_window), GDK_WINDOW_TYPE_HINT_DIALOG); +- gtk_dialog_set_has_separator(GTK_DIALOG(selcd_window), FALSE); ++ g_object_set(GTK_DIALOG(selcd_window), "has-separator", FALSE, NULL); + + // Callbacks for if the window is closed. + g_signal_connect((gpointer)(selcd_window), "delete_event", +@@ -128,7 +128,7 @@ + gtk_box_pack_start(GTK_BOX(hboxDeviceName), lblDeviceName, false, false, 0); + + // Create the dropdown for the CD-ROM device name. +- cboDeviceName = gtk_combo_box_entry_new_text(); ++ cboDeviceName = gtk_combo_box_text_new_with_entry(); + gtk_entry_set_max_length(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(cboDeviceName))), 63); + gtk_label_set_mnemonic_widget(GTK_LABEL(lblDeviceName), cboDeviceName); + gtk_widget_show(cboDeviceName); +@@ -156,7 +156,7 @@ + gtk_box_pack_start(GTK_BOX(hboxDriveSpeed), vboxDriveSpeedDropdown, true, true, 0); + + // Create the dropdown for the CD-ROM drive speed selection. +- cboDriveSpeed = gtk_combo_box_new_text(); ++ cboDriveSpeed = gtk_combo_box_text_new(); + char tmpSpeed[16]; + for (unsigned int i = 0; i < ((sizeof(CD_DriveSpeed) / sizeof(CD_DriveSpeed[0])) - 1); i++) + { +@@ -167,7 +167,7 @@ + else + szprintf(tmpSpeed, sizeof(tmpSpeed), "%dx", CD_DriveSpeed[i]); + +- gtk_combo_box_append_text(GTK_COMBO_BOX(cboDriveSpeed), tmpSpeed); ++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboDriveSpeed), tmpSpeed); + } + gtk_widget_show(cboDriveSpeed); + gtk_box_pack_start(GTK_BOX(vboxDriveSpeedDropdown), cboDriveSpeed, true, false, 0); +@@ -252,7 +252,7 @@ + continue; + + // Add the device file. +- gtk_combo_box_append_text(GTK_COMBO_BOX(cboDeviceName), tmpDeviceName); ++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cboDeviceName), tmpDeviceName); + } + } + +diff -ru gens/src/mdp/misc/game_genie/gg_window_gtk2.cpp gens-build/src/mdp/misc/game_genie/gg_window_gtk2.cpp +--- gens/src/mdp/misc/game_genie/gg_window_gtk2.cpp 2010-10-11 16:32:29.000000000 +0000 ++++ gens-build/src/mdp/misc/game_genie/gg_window_gtk2.cpp 2010-10-11 15:52:05.000000000 +0000 +@@ -111,7 +111,7 @@ + gtk_window_set_position(GTK_WINDOW(gg_window), GTK_WIN_POS_CENTER); + gtk_window_set_resizable(GTK_WINDOW(gg_window), TRUE); + gtk_window_set_type_hint(GTK_WINDOW(gg_window), GDK_WINDOW_TYPE_HINT_DIALOG); +- gtk_dialog_set_has_separator(GTK_DIALOG(gg_window), FALSE); ++ g_object_set(GTK_DIALOG(gg_window), "has-separator", FALSE, NULL); + + // Add the window icon. + GList *icon_list = NULL; |