-include config.mk
-# GUI needs this
-export DESTDIR
-
-# Configuration settings
-CONF_BUILD_ASM_CPU=0
-CONF_BUILD_ASM_SPC700=0
-CONF_BUILD_ASM_SA1=0 # Still not there
-CONF_XSP=0
-
-# Sane defaults (override if needed)
+# Sane defaults
ifeq ($(ARCH),armel)
- CONF_BUILD_ASM_CPU=1
- CONF_BUILD_ASM_SPC700=1
- CONF_XSP=1
- CONF_BUILD_MISC_ROUTINES=misc_armel
+ CONF_BUILD_ASM_CPU?=1
+ CONF_BUILD_ASM_SPC700?=1
+ CONF_BUILD_ASM_SA1?=0 # Still not there
+ CONF_XSP?=1
+ CONF_BUILD_MISC_ROUTINES?=misc_armel
else ifeq ($(ARCH),i386)
- CONF_BUILD_MISC_ROUTINES=misc_i386
+ CONF_BUILD_ASM_CPU?=0
+ CONF_BUILD_ASM_SPC700?=0
+ CONF_BUILD_ASM_SA1?=0 # Still not there
+ CONF_XSP?=0
+ CONF_BUILD_MISC_ROUTINES?=misc_i386
endif
# SNES stuff
install: drnoksnes
install drnoksnes $(DESTDIR)/usr/games
- $(MAKE) -C gui install
+ $(MAKE) -C gui install DESTDIR="$(DESTDIR)"
deps: $(DEPS)
%.d: %.cpp
usr/share/icons/hicolor/40x40/hildon
usr/share/icons/hicolor/48x48/hildon
usr/share/icons/hicolor/scalable/hildon
+usr/share/gconf/schemas
usr/share/pixmaps
--- /dev/null
+#!/bin/sh
+# postrm script for drnoksnes
+#
+# see: dh_installdeb(1)
+
+set -e
+
+case "$1" in
+ purge)
+ gconftool-2 --recursive-unset /apps/maemo/drnoksnes || true
+ ;;
+
+ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
+
$(M4) $(M4DEFS) debian/drnoksnes.postinst.m4 > debian/drnoksnes.postinst
echo ARCH="$(ARCH)" > config.mk
+ifeq ($(shell expr "$(MAEMO_VERSION)" ">" 4), 1)
+ # Maemo 5 devices do not support Xsp
+ echo CONF_XSP=0 >> config.mk
+endif
echo ASFLAGS="$(ASFLAGS)" >> config.mk
echo CFLAGS="$(CFLAGS)" >> config.mk
echo CXXFLAGS="$(CFLAGS)" >> config.mk
echo CFLAGS="$(GUI_CFLAGS)" > gui/config.mk
echo LDFLAGS="$(GUI_LDFLAGS)" >> gui/config.mk
+ echo MAEMO_VERSION="$(MAEMO_VERSION)" >> gui/config.mk
echo GAME_VERSION="$(GAME_VERSION)" >> gui/config.mk
touch configure-stamp
rm -f build-stamp configure-stamp
-$(MAKE) clean
rm -f config.mk gui/config.mk
- dh_clean
+ dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
- $(MAKE) DESTDIR=$(CURDIR)/debian/drnoksnes install
+ $(MAKE) DESTDIR=$(CURDIR)/debian/drnoksnes GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install
# Build architecture-independent files here.
binary-indep: build install
# dh_installdocs
# dh_installexamples
# dh_installman
+ dh_gconf
dh_link
dh_strip --dbg-package=drnoksnes-dbg
dh_compress
M4DEFS:= -DGAME_VERSION=$(GAME_VERSION) -DGAME_PLUGIN_PATH=$(GAME_PLUGIN_PATH)
M4DEFS+= -DGAME_CONF_PATH=$(GAME_CONF_PATH) -DGAME_BIN_PATH=$(GAME_BIN_PATH)
M4DEFS+= -DGAME_GAME_PATH=$(GAME_GAME_PATH) -DGAME_BANNER_PATH=$(GAME_BANNER_PATH)
+ifdef MAEMO_VERSION
+M4DEFS+= -DMAEMO -DMAEMO_MAJOR=$(MAEMO_VERSION)
+endif
-OBJS:=plugin.o state.o save.o controls.o cellrendererkey.o about.o
+OBJS:=plugin.o state.o save.o controls.o cellrendererkey.o advanced.o about.o
DATA_FILES:=drnoksnes.conf drnoksnes.desktop drnoksnes.game
DATA_FILES+=drnoksnes.service drnoksnes.startup.service
+DATA_FILES+=drnoksnes.schemas
all: drnoksnes_plugin.so data
install -m 0644 icons/main_48.png $(DESTDIR)/usr/share/icons/hicolor/48x48/hildon/drnoksnes.png
install -m 0644 icons/main_64.png $(DESTDIR)/usr/share/icons/hicolor/scalable/hildon/drnoksnes.png
install -m 0644 icons/banner.png $(DESTDIR)$(GAME_BANNER_PATH)
-
+ install -m 0644 drnoksnes.schemas $(DESTDIR)/usr/share/gconf/schemas/
+ifneq ($(GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL),1)
+ gconftool-2 --makefile-install-rule $(DESTDIR)/usr/share/gconf/schemas/drnoksnes.schemas > /dev/null
+endif
+
.PHONY: all clean data install
--- /dev/null
+/*
+* This file is part of DrNokSnes
+*
+* Copyright (C) 2009 Javier S. Pedro <maemo@javispedro.com>
+*
+* This software is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public License
+* as published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful, but
+* WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA
+*
+*/
+
+#include <gtk/gtk.h>
+#include <hildon/hildon-helper.h>
+
+#if MAEMO_VERSION >= 5
+#include <hildon/hildon-gtk.h>
+#include <hildon/hildon-check-button.h>
+#else
+#include <hildon/hildon-caption.h>
+#endif
+
+#include "../platform/hgw.h"
+#include "plugin.h"
+
+static GtkDialog* dialog;
+#if MAEMO_VERSION >= 5
+static HildonCheckButton* accu_check;
+#else
+#include <hildon/hildon-caption.h>
+static GtkCheckButton* xsp_check;
+#endif
+
+static void load_settings()
+{
+#if MAEMO_VERSION >= 5
+ hildon_check_button_set_active(accu_check,
+ gconf_client_get_bool(gcc, kGConfTransparency, NULL));
+#else
+ gtk_toggle_button_set_active(xsp_check,
+ gconf_client_get_bool(gcc, kGConfXSP, NULL));
+#endif
+}
+
+static void save_settings()
+{
+#if MAEMO_VERSION >= 5
+ gconf_client_set_bool(gcc, kGConfTransparency,
+ hildon_check_button_get_active(accu_check), NULL);
+#else
+ gconf_client_set_bool(gcc, kGConfXSP,
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(xsp_check)), NULL);
+#endif
+}
+
+static void cb_dialog_response(GtkWidget * button, gint response, gpointer data)
+{
+ if (response == GTK_RESPONSE_OK) {
+ save_settings();
+ }
+
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+}
+
+void advanced_dialog(GtkWindow* parent)
+{
+ dialog = GTK_DIALOG(gtk_dialog_new_with_buttons("Advanced settings",
+ parent, GTK_DIALOG_MODAL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL));
+
+
+#if MAEMO_VERSION >= 5
+ accu_check = HILDON_CHECK_BUTTON(hildon_check_button_new(
+ HILDON_SIZE_FULLSCREEN_WIDTH | HILDON_SIZE_FINGER_HEIGHT));
+ gtk_button_set_label(GTK_BUTTON(accu_check), "Accurate graphics");
+ gtk_box_pack_start(GTK_BOX(dialog->vbox), GTK_WIDGET(accu_check), FALSE, FALSE, 0);
+#else
+ xsp_check = GTK_CHECK_BUTTON(gtk_check_button_new());
+ GtkWidget* xsp_caption = hildon_caption_new(NULL,
+ "Use hardware scaling", GTK_WIDGET(xsp_check), NULL,
+ HILDON_CAPTION_OPTIONAL);
+ gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), GTK_WIDGET(xsp_caption));
+#endif
+
+ load_settings();
+
+#if MAEMO_VERSION >= 5
+ gtk_window_resize(GTK_WINDOW(dialog), 800, 300);
+#else
+ gtk_window_resize(GTK_WINDOW(dialog), 400, 200);
+#endif
+
+ g_signal_connect(G_OBJECT(dialog), "response",
+ G_CALLBACK (cb_dialog_response), NULL);
+
+ gtk_widget_show_all(GTK_WIDGET(dialog));
+}
+
void controls_setup()
{
- GConfValue* mapping = gconf_client_get(gcc, kGConfMapping, NULL);
int i;
- if (!mapping) {
- // Key not set; setup defaults
- for (i = 0; buttons[i].name; i++) {
- gconf_client_set_int(gcc, buttons[i].gconf_key,
- buttons[i].default_scancode, NULL);
- }
+ // Check if all the keys exist. If not, fill them with default values.
+ // XXX Note that not filling a key will cause HGW to crash.
- g_debug("Loading default key mappings\n");
+ gconf_client_preload(gcc, kGConfKeysPath, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
+ for (i = 0; buttons[i].name; i++) {
+ GConfValue *mapping = gconf_client_get(gcc, buttons[i].gconf_key, NULL);
- gconf_client_set_int(gcc, kGConfMapping, 1, NULL);
- } else {
- // If this key is set, consider defaults loaded.
- gconf_value_free(mapping);
-
- // We still have to check if all the keys exist
- gconf_client_preload(gcc, kGConfKeysPath, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
- for (i = 0; buttons[i].name; i++) {
- mapping = gconf_client_get(gcc, buttons[i].gconf_key, NULL);
-
- if (!mapping) {
- // Not set; set to default.
- gconf_client_set_int(gcc, buttons[i].gconf_key,
- buttons[i].default_scancode, NULL);
- } else {
- gconf_value_free(mapping);
- }
+ if (!mapping) {
+ // Not set; set to default.
+ gconf_client_set_int(gcc, buttons[i].gconf_key,
+ buttons[i].default_scancode, NULL);
+ } else {
+ gconf_value_free(mapping);
}
}
}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<gconfschemafile>
+ <schemalist>
+ <schema>
+ <key>/schemas/apps/maemo/drnoksnes/display-framerate</key>
+ <applyto>/apps/maemo/drnoksnes/display-framerate</applyto>
+ <owner>drnoksnes</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Display framerate</short>
+ <long>
+ Display a framerate counter in the lower left corner.
+ </long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/maemo/drnoksnes/display-controls</key>
+ <applyto>/apps/maemo/drnoksnes/display-controls</applyto>
+ <owner>drnoksnes</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Display onscreen controls</short>
+ <long>
+ Display a grid with the onscreen controls if touchscreen controls
+ are enabled.
+ </long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/maemo/drnoksnes/frameskip</key>
+ <applyto>/apps/maemo/drnoksnes/frameskip</applyto>
+ <owner>drnoksnes</owner>
+ <type>int</type>
+ <default>0</default>
+ <locale name="C">
+ <short>Frameskip</short>
+ <long>
+ Skip this many frames after rendering one frame (or 0 for auto).
+ </long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/maemo/drnoksnes/mapping</key>
+ <applyto>/apps/maemo/drnoksnes/mapping</applyto>
+ <owner>drnoksnes</owner>
+ <type>int</type>
+ <default>1</default>
+ <locale name="C">
+ <short>Key mapping setting</short>
+ <long>
+ Set to 0 for None, 1 for Keyboard only, etc.
+ </long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/maemo/drnoksnes/rom</key>
+ <applyto>/apps/maemo/drnoksnes/rom</applyto>
+ <owner>drnoksnes</owner>
+ <type>string</type>
+ <default></default>
+ <locale name="C">
+ <short>ROM to load</short>
+ <long>
+ Full path to the ROM file to load on next startup.
+ </long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/maemo/drnoksnes/sound</key>
+ <applyto>/apps/maemo/drnoksnes/sound</applyto>
+ <owner>drnoksnes</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Enable sound</short>
+ <long>
+ Enable emulation and output of sound.
+ </long>
+ </locale>
+ </schema>
+ifelse(eval(MAEMO_MAJOR < 5), 1, `dnl
+ <schema>
+ <key>/schemas/apps/maemo/drnoksnes/xsp</key>
+ <applyto>/apps/maemo/drnoksnes/xsp</applyto>
+ <owner>drnoksnes</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Pixel doubling</short>
+ <long>
+ Enable the use of the hardware pixel doubler. Without it,
+ a slower, lower quality software scaler is used.
+ </long>
+ </locale>
+ </schema>
+', `')dnl
+ <schema>
+ <key>/schemas/apps/maemo/drnoksnes/speedhacks</key>
+ <applyto>/apps/maemo/drnoksnes/speedhacks</applyto>
+ <owner>drnoksnes</owner>
+ <type>int</type>
+ <default>0</default>
+ <locale name="C">
+ <short>Speedhacks</short>
+ <long>
+ Set to 0 to disable speedhacks, to 1 to enable safe speedhacks,
+ to 2 to enable all speedhacks.
+ </long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/maemo/drnoksnes/transparency</key>
+ <applyto>/apps/maemo/drnoksnes/transparency</applyto>
+ <owner>drnoksnes</owner>
+ <type>bool</type>
+ ifelse(eval(MAEMO_MAJOR < 5), 1, `<default>false</default>', `<default>true</default>')
+ <locale name="C">
+ <short>Transparency</short>
+ <long>
+ Enable emulated transparency effects.
+ </long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/maemo/drnoksnes/turbo</key>
+ <applyto>/apps/maemo/drnoksnes/turbo</applyto>
+ <owner>drnoksnes</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Turbo mode</short>
+ <long>
+ Do not sleep at all between frames.
+ </long>
+ </locale>
+ </schema>
+ </schemalist>
+</gconfschemafile>
#if MAEMO_VERSION >= 5
static GtkBox* buttons_hbox;
static HildonButton* select_rom_btn;
-static HildonCheckButton* audio_check;
+static HildonCheckButton* sound_check;
static HildonPickerButton* framerate_picker;
static HildonCheckButton* display_fps_check;
static HildonCheckButton* turbo_check;
#else
static GtkButton* select_rom_btn;
static GtkLabel* rom_label;
-static GtkCheckButton* audio_check;
+static GtkCheckButton* sound_check;
static GtkCheckButton* turbo_check;
static GtkComboBox* framerate_combo;
static GtkCheckButton* accu_check;
controls_dialog(get_parent_window());
}
+static void advanced_item_callback(GtkWidget * button, gpointer data)
+{
+ advanced_dialog(get_parent_window());
+}
+
static void about_item_callback(GtkWidget * button, gpointer data)
{
about_dialog(get_parent_window());
#if MAEMO_VERSION >= 5
{
GtkBox* opt_hbox1 = GTK_BOX(gtk_hbox_new(FALSE, HILDON_MARGIN_DEFAULT));
- audio_check =
+ sound_check =
HILDON_CHECK_BUTTON(hildon_check_button_new(
HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT));
- gtk_button_set_label(GTK_BUTTON(audio_check), "Sound");
+ gtk_button_set_label(GTK_BUTTON(sound_check), "Sound");
framerate_picker = HILDON_PICKER_BUTTON(hildon_picker_button_new(
HILDON_SIZE_AUTO, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL));
gtk_box_pack_start(GTK_BOX(framerate_sel), GTK_WIDGET(framerate_sel_box), FALSE, FALSE, 0);
gtk_widget_show_all(GTK_WIDGET(framerate_sel_box));
- gtk_box_pack_start_defaults(opt_hbox1, GTK_WIDGET(audio_check));
+ gtk_box_pack_start_defaults(opt_hbox1, GTK_WIDGET(sound_check));
gtk_box_pack_start_defaults(opt_hbox1, GTK_WIDGET(framerate_picker));
gtk_box_pack_start(GTK_BOX(parent), GTK_WIDGET(opt_hbox1), FALSE, FALSE, 0);
}
#else
{
GtkBox* opt_hbox1 = GTK_BOX(gtk_hbox_new(FALSE, HILDON_MARGIN_DEFAULT));
- audio_check =
+ sound_check =
GTK_CHECK_BUTTON(gtk_check_button_new_with_label("Enable sound"));
turbo_check =
speedhacks_combo =
GTK_COMBO_BOX(gtk_combo_box_new_text());
- gtk_box_pack_start(opt_hbox1, GTK_WIDGET(audio_check), FALSE, FALSE, 0);
+ gtk_box_pack_start(opt_hbox1, GTK_WIDGET(sound_check), FALSE, FALSE, 0);
gtk_box_pack_start(opt_hbox1, GTK_WIDGET(display_fps_check), TRUE, FALSE, 0);
gtk_box_pack_start(opt_hbox1, GTK_WIDGET(turbo_check), FALSE, FALSE, 0);
gtk_box_pack_start_defaults(GTK_BOX(parent), GTK_WIDGET(opt_hbox1));
/* Load current configuration from GConf */
#if MAEMO_VERSION >= 5
- hildon_check_button_set_active(audio_check,
- !gconf_client_get_bool(gcc, kGConfDisableAudio, NULL));
+ hildon_check_button_set_active(sound_check,
+ gconf_client_get_bool(gcc, kGConfSound, NULL));
hildon_picker_button_set_active(framerate_picker,
gconf_client_get_int(gcc, kGConfFrameskip, NULL));
hildon_check_button_set_active(turbo_check,
hildon_check_button_set_active(display_fps_check,
gconf_client_get_bool(gcc, kGConfDisplayFramerate, NULL));
#else
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(audio_check),
- !gconf_client_get_bool(gcc, kGConfDisableAudio, NULL));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sound_check),
+ gconf_client_get_bool(gcc, kGConfSound, NULL));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(turbo_check),
gconf_client_get_bool(gcc, kGConfTurboMode, NULL));
gtk_combo_box_set_active(framerate_combo,
{
/* Write current settings to gconf */
#if MAEMO_VERSION >= 5
- gconf_client_set_bool(gcc, kGConfDisableAudio,
- !hildon_check_button_get_active(audio_check), NULL);
+ gconf_client_set_bool(gcc, kGConfSound,
+ hildon_check_button_get_active(sound_check), NULL);
gconf_client_set_int(gcc, kGConfFrameskip,
hildon_picker_button_get_active(framerate_picker), NULL);
gconf_client_set_bool(gcc, kGConfDisplayFramerate,
hildon_check_button_get_active(display_fps_check), NULL);
gconf_client_set_bool(gcc, kGConfTurboMode,
hildon_check_button_get_active(turbo_check), NULL);
-
- // For now, transparencies are always enabled in Fremantle
- gconf_client_set_bool(gcc, kGConfTransparency, TRUE, NULL);
- // Speedhacks always disabled
- gconf_client_set_int(gcc, kGConfSpeedhacks, FALSE, NULL);
#else
- gconf_client_set_bool(gcc, kGConfDisableAudio,
- !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(audio_check)), NULL);
+ gconf_client_set_bool(gcc, kGConfSound,
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sound_check)), NULL);
gconf_client_set_bool(gcc, kGConfTurboMode,
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(turbo_check)), NULL);
gconf_client_set_int(gcc, kGConfFrameskip,
const HildonSizeType button_size =
HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH;
menu_items[0] = hildon_gtk_button_new(button_size);
- gtk_button_set_label(GTK_BUTTON(menu_items[0]), "Placeholder");
+ gtk_button_set_label(GTK_BUTTON(menu_items[0]), "Settings…");
menu_items[1] = hildon_gtk_button_new(button_size);
gtk_button_set_label(GTK_BUTTON(menu_items[1]), "Controls…");
menu_items[2] = hildon_gtk_button_new(button_size);
gtk_button_set_label(GTK_BUTTON(menu_items[2]), "About…");
*nitems = 3;
+ g_signal_connect(G_OBJECT(menu_items[0]), "clicked",
+ G_CALLBACK(advanced_item_callback), NULL);
g_signal_connect(G_OBJECT(menu_items[1]), "clicked",
G_CALLBACK(controls_item_callback), NULL);
g_signal_connect(G_OBJECT(menu_items[2]), "clicked",
*nitems = 2;
GtkMenu* settings_menu = GTK_MENU(gtk_menu_new());
- GtkMenuItem* controls_item =
- GTK_MENU_ITEM(gtk_menu_item_new_with_label("Controls…"));
-
gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_items[0]),
GTK_WIDGET(settings_menu));
+
+ GtkMenuItem* controls_item =
+ GTK_MENU_ITEM(gtk_menu_item_new_with_label("Controls…"));
gtk_menu_append(GTK_MENU(settings_menu), GTK_WIDGET(controls_item));
+ GtkMenuItem* advanced_item =
+ GTK_MENU_ITEM(gtk_menu_item_new_with_label("Advanced…"));
+ gtk_menu_append(GTK_MENU(settings_menu), GTK_WIDGET(advanced_item));
+
g_signal_connect(G_OBJECT(controls_item), "activate",
G_CALLBACK(controls_item_callback), NULL);
+ g_signal_connect(G_OBJECT(advanced_item), "activate",
+ G_CALLBACK(advanced_item_callback), NULL);
g_signal_connect(G_OBJECT(menu_items[1]), "activate",
G_CALLBACK(about_item_callback), NULL);
#endif
void save_save_as(GtkWindow* parent);
/* controls.c */
+/** Fill in default controls */
void controls_setup();
void controls_dialog(GtkWindow* parent);
+/* advanced.c */
+void advanced_dialog(GtkWindow* parent);
+
/* about.c */
void about_dialog(GtkWindow* parent);
DIE("No Rom in Gconf!");
}
- char no_audio = FALSE;
- if (hgw_conf_request_bool(hgw, kGConfDisableAudio, &no_audio) == HGW_ERR_NONE) {
- Config.enableAudio = no_audio ? false : true;
+ char sound = FALSE;
+ if (hgw_conf_request_bool(hgw, kGConfSound, &sound) == HGW_ERR_NONE) {
+ Config.enableAudio = sound ? true : false;
}
char turbo = FALSE;
Settings.Transparency = transparency ? TRUE : FALSE;
}
- char scaler[256];
- scaler[0] = '\0';
- if (hgw_conf_request_string(hgw, kGConfScaler, scaler) == HGW_ERR_NONE) {
- if (strlen(scaler) > 0) {
+#if CONF_XSP
+ char xsp = TRUE;
+ if (hgw_conf_request_bool(hgw, kGConfXSP, xsp) == HGW_ERR_NONE) {
+ if (!xsp) {
free(Config.scaler);
- Config.scaler = strdup(scaler);
+ Config.scaler = strdup("2x");
}
}
+#endif
char displayFramerate = FALSE;
if (hgw_conf_request_bool(hgw, kGConfDisplayFramerate, &displayFramerate) == HGW_ERR_NONE) {
#define kGConfPath "/apps/maemo/drnoksnes"
#define kGConfRomFile kGConfPath "/" "rom"
-#define kGConfDisableAudio kGConfPath "/" "no_audio"
+#define kGConfSound kGConfPath "/" "sound"
#define kGConfTurboMode kGConfPath "/" "turbo"
#define kGConfFrameskip kGConfPath "/" "frameskip"
#define kGConfTransparency kGConfPath "/" "transparency"
#define kGConfDisplayFramerate kGConfPath "/" "display-framerate"
#define kGConfDisplayControls kGConfPath "/" "display-controls"
#define kGConfSpeedhacks kGConfPath "/" "speedhacks"
+#define kGConfXSP kGConfPath "/" "xsp"
#define kGConfMapping kGConfPath "/" "mapping"
#define kGConfKeysPath kGConfPath "/" "keys"
+ (m_area.y * pitch);
};
- int getDrawBufferPitch() const
+ unsigned int getDrawBufferPitch() const
{
return screen->pitch;
};