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
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
# ReGBA-RG350

GBA emulator for RG350 console

This is my personal fork of the GBA emulator for RG350 console.
I added external gamepad support.

More information:
* [Demonstrational video](https://youtu.be/A8kiZaQG-84)


---------------------------------

TempGBA version 1.45, 2013-09-14

A Game Boy Advance emulator for the Supercard DSTWO.
Expand Down
5 changes: 5 additions & 0 deletions source/opendingux/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,17 @@ DEFS := -DGCW_ZERO -DMIPS_XBURST \
-DSCREEN_WIDTH=320 -DSCREEN_HEIGHT=240 \
-DGIT_VERSION=$(shell git describe --always)

ifdef PLAYGO
DEFS += -DPLAYGO
DEFS += -DUSE_MMAP
else
ifdef RG350
DEFS += -DRG350
DEFS += -DUSE_MMAP
else
DEFS += -DLOAD_ALL_ROM
endif
endif
HAS_MIPS32R2 := $(shell echo | $(CC) -dM -E - |grep _MIPS_ARCH_MIPS32R2)
ifneq ($(HAS_MIPS32R2),)
DEFS += -DMIPS_32R2
Expand Down
4 changes: 2 additions & 2 deletions source/opendingux/data/manual-en.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ In the Main Menu or any submenu containing options, you can press the Select key
- Input Settings -
> GBA buttons: Press A on one of these, and you can set a new button on your device to be used for triggering it on the GBA. These mappings are mandatory; you cannot have a mapping such that nothing on your device can trigger a GBA button. However, you can set multiple GBA buttons to be triggered by one on your device.
> Rapid-fire buttons: These mappings are optional; you can press A, then two buttons at once to clear them. Rapid-fire buttons press and release their GBA button at 30 Hz: they are pressed for 1/60 of a second, then unpressed for the same time.
> Analog sensitivity (GCW Zero only): This setting controls how far the analog nub needs to go to trigger a direction. The analog nub can be used to navigate the menus with this sensitivity as well.
> Analog in-game binding (GCW Zero only): "None" does not allow the analog nub to be passed through to the GBA game, but allows it to be used for hotkeys. "GBA D-pad" allows the analog nub to be passed to the GBA according to the sensitivity setting, as well as hotkeys.
> Analogs sensitivity (GCW Zero only): This setting controls how far the analog nub needs to go to trigger a direction. The analog nub can be used to navigate the menus with this sensitivity as well.
> L-Analog in-game binding (GCW Zero only): "None" does not allow the analog nub to be passed through to the GBA game, but allows it to be used for hotkeys. "GBA D-pad" allows the analog nub to be passed to the GBA according to the sensitivity setting, as well as hotkeys.

- Hotkeys -
Press A on these, and you can set a new combination of buttons on your device to be used during emulation to trigger each function, or B to clear the binding.
Expand Down
4 changes: 2 additions & 2 deletions source/opendingux/data/manual-es.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ En el Menú Principal o cualquier submenú que contenga opciones, se puede pulsa
- Ajustes de entrada (Input Settings) -
> GBA buttons: Presione A en uno de ellos para establecer un nuevo botón en el dispositivo para ser utilizado en la GBA. Estas asignaciones son obligatorias, no se puede tener una asignación tal que no haya ningun botón asignado. Sin embargo, se puede configurar un solo boton que active múltiples botones en la GBA.
> Rapid-fire buttons: Estas asignaciones son opcionales, se pueden pulsar A, y luego dos botones a la vez para eliminarlas. Los botones de disparo rápido (Turbo) pulsan y sueltan el botón de GBA a 30 Hz: son presionados durante 1/60 de segundo, entonces se sueltan durante el mismo tiempo.
> Analog sensitivity (Sólo GCW Zero): Este ajuste controla cuanto tiene que moverse el stick analógico para activar una dirección. El stick analógico se puede utilizar para navegar por los menús con esta sensibilidad también.
> Analog in-game binding (Sólo GCW Zero): "None" no permite controlar el juego de GBA con el stick analógico, pero permite que sea utilizado para teclas de acceso rápido. "GBA D-pad" permite controlar el juego de GBA con el stick analógico de acuerdo con el ajuste de la sensibilidad, así como teclas de acceso rápido.
> Analogs sensitivity (Sólo GCW Zero): Este ajuste controla cuanto tiene que moverse el stick analógico para activar una dirección. El stick analógico se puede utilizar para navegar por los menús con esta sensibilidad también.
> L-Analog in-game binding (Sólo GCW Zero): "None" no permite controlar el juego de GBA con el stick analógico, pero permite que sea utilizado para teclas de acceso rápido. "GBA D-pad" permite controlar el juego de GBA con el stick analógico de acuerdo con el ajuste de la sensibilidad, así como teclas de acceso rápido.

- Teclas de Acceso Rápido (Hotkeys) -
Presione A en ellos, y se puede establecer una nueva combinación de botones en el dispositivo para activar cada función durante la emulación, o B para borrar la asignación.
Expand Down
4 changes: 2 additions & 2 deletions source/opendingux/data/manual-fr.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ Dans le Menu Principal ou tout sous-menu comportant des options, vous pouvez app
- Réglages d'entrée (Input Settings) -
> Boutons GBA: Appuyez sur A sur une de ces options et vous pouvez affecter un nouveau bouton sur votre dispositif à celui de la GBA. Ces affectations sont obligatoires; il est impossible de ne rien affecter à un certain bouton de la GBA. Par contre, vous pouvez affecter le même bouton sur votre dispositif à plusieurs boutons de la GBA.
> Boutons de tir rapide (Rapid-fire): Ces affectations sont facultatives; vous pouvez appuyer sur A, puis sur deux boutons à la fois pour les effacer. Les boutons de tir rapide pressent et relâchent un bouton à 30 Hz: le bouton est pressé pendant 1/60 de seconde, puis relâché pendant ce même temps.
> Analog sensitivity (GCW Zero seulement): Cette option contrôle la sensibilité du stick analogique, soit la quantité de mouvement requise dans une direction. Vous pouvez aussi utiliser le stick analogique pour naviguer dans le menu avec cette valeur de sensibilité.
> Analog in-game binding (GCW Zero seulement): "None" ne permet pas au stick analogique de contrôler le pavé directionnel de la GBA, seulement d'être utilisé pour des raccourcis. "GBA D-pad" permet au stick analogique de déclencher le pavé directionnel de la GBA ainsi que les raccourcis.
> Analogs sensitivity (GCW Zero seulement): Cette option contrôle la sensibilité du stick analogique, soit la quantité de mouvement requise dans une direction. Vous pouvez aussi utiliser le stick analogique pour naviguer dans le menu avec cette valeur de sensibilité.
> L-Analog in-game binding (GCW Zero seulement): "None" ne permet pas au stick analogique de contrôler le pavé directionnel de la GBA, seulement d'être utilisé pour des raccourcis. "GBA D-pad" permet au stick analogique de déclencher le pavé directionnel de la GBA ainsi que les raccourcis.

- Raccourcis (Hotkeys) -
Appuyez sur A sur une de ces options et vous pouvez affecter une nouvelle combinaison de boutons sur votre dispositif pour déclencher chaque fonction, ou bien B pour effacer l'affectation.
Expand Down
2 changes: 1 addition & 1 deletion source/opendingux/draw.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ static struct timespec LastProgressUpdate;

void init_video()
{
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO /*| SDL_INIT_JOYSTICK*/) < 0)
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK) < 0)
{
printf("Failed to initialize SDL !!\n");
return; // for debug
Expand Down
78 changes: 48 additions & 30 deletions source/opendingux/gui.c
Original file line number Diff line number Diff line change
Expand Up @@ -406,22 +406,31 @@ static void SavedStateMenuEnd(struct Menu* ActiveMenu)
// -- Custom display --

static char* OpenDinguxButtonText[OPENDINGUX_BUTTON_COUNT] = {
TOP_FACE_BUTTON_NAME, // (GCW Y, A320 or RG350 X)
"A",
"B",
LEFT_FACE_BUTTON_NAME, // (GCW X, A320 or RG350 Y)
"L",
"R",
"D-pad Down",
"L2",
"R2",
"Select",
"Start",
"L3",
"R3",
"D-pad Up",
"D-pad Left",
"D-pad Right",
"Start",
"Select",
"B",
"A",
LEFT_FACE_BUTTON_NAME,
TOP_FACE_BUTTON_NAME,
"Analog Down",
"Analog Up",
"Analog Left",
"Analog Right",
"D-pad Down",
"D-pad Left",
"POWER",
"L-Analog Down",
"L-Analog Up",
"L-Analog Left",
"L-Analog Right",
"R-Analog Down",
"R-Analog Up",
"R-Analog Left",
"R-Analog Right",
};

/*
Expand Down Expand Up @@ -573,22 +582,31 @@ static void SavedStateUpdatePreview(struct Menu* ActiveMenu)
// -- Custom saving --

static char OpenDinguxButtonSave[OPENDINGUX_BUTTON_COUNT] = {
'L',
'R',
'v', // D-pad directions.
'^',
'<',
'>', // (end)
'S',
's',
'B',
'X', // Using the SNES/DS/A320 mapping, this is the upper face button.
'A',
'B',
'Y', // Using the SNES/DS/A320 mapping, this is the left face button.
'X', // Using the SNES/DS/A320 mapping, this is the upper face button.
'd', // Analog nub directions (GCW Zero).
'u',
'l',
'r', // (end)
'L',
'R',
'+', // L2
'-', // R2
's', // Select
'S', // Start
'1', // L3
'2', // R3
'^', // D-pad directions.
'>',
'v',
'<', // (end)
'M', // Menu/Power
'd', // L-analog down
'u', // L-analog up
'l', // L-analog left
'r', // L-analog right
'3', // R-analog down
'4', // R-analog up
'5', // R-analog left
'6', // R-analog right
};

static void LoadMappingFunction(struct MenuEntry* ActiveMenuEntry, char* Value)
Expand Down Expand Up @@ -1302,20 +1320,20 @@ static struct MenuEntry InputMenu_RapidB = {

#ifdef GCW_ZERO
static struct MenuEntry PerGameInputMenu_AnalogSensitivity = {
ENTRY_OPTION("analog_sensitivity", "Analog sensitivity", &PerGameAnalogSensitivity),
ENTRY_OPTION("analog_sensitivity", "Analogs sensitivity", &PerGameAnalogSensitivity),
.ChoiceCount = 6, .Choices = { { "No override", "" }, { "Very low", "lowest" }, { "Low", "low" }, { "Medium", "medium" }, { "High", "high" }, { "Very high", "highest" } }
};
static struct MenuEntry InputMenu_AnalogSensitivity = {
ENTRY_OPTION("analog_sensitivity", "Analog sensitivity", &AnalogSensitivity),
ENTRY_OPTION("analog_sensitivity", "Analogs sensitivity", &AnalogSensitivity),
.ChoiceCount = 5, .Choices = { { "Very low", "lowest" }, { "Low", "low" }, { "Medium", "medium" }, { "High", "high" }, { "Very high", "highest" } }
};

static struct MenuEntry PerGameInputMenu_AnalogAction = {
ENTRY_OPTION("analog_action", "Analog in-game binding", &PerGameAnalogAction),
ENTRY_OPTION("analog_action", "L-Analog in-game binding", &PerGameAnalogAction),
.ChoiceCount = 3, .Choices = { { "No override", "" }, { "None", "none" }, { "GBA D-pad", "dpad" } }
};
static struct MenuEntry InputMenu_AnalogAction = {
ENTRY_OPTION("analog_action", "Analog in-game binding", &AnalogAction),
ENTRY_OPTION("analog_action", "L-Analog in-game binding", &AnalogAction),
.ChoiceCount = 2, .Choices = { { "None", "none" }, { "GBA D-pad", "dpad" } }
};
#endif
Expand Down
Loading