diff --git a/frontend/frontend_ios.c b/frontend/frontend_ios.c
index f05353774a..d351c1d428 100644
--- a/frontend/frontend_ios.c
+++ b/frontend/frontend_ios.c
@@ -133,15 +133,26 @@ void* rarch_main_ios(void* args)
else if (g_extern.lifecycle_mode_state & (1ULL << MODE_GAME))
{
while ((g_extern.is_paused && !g_extern.is_oneshot) ? rarch_main_idle_iterate() : rarch_main_iterate())
+ {
process_events();
+ if (!(g_extern.lifecycle_mode_state & (1ULL << MODE_GAME)))
+ break;
+ }
+
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_GAME);
}
else if (g_extern.lifecycle_mode_state & (1ULL << MODE_MENU))
{
g_extern.lifecycle_mode_state |= 1ULL << MODE_MENU_PREINIT;
while (!g_extern.system.shutdown && menu_iterate())
+ {
process_events();
+
+ if (!(g_extern.lifecycle_mode_state & (1ULL << MODE_MENU)))
+ break;
+ }
+
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_MENU);
}
else
diff --git a/ios/Assets/PauseView.xib b/ios/Assets/PauseView.xib
index b9fdd78b01..e56c6f0d1c 100644
--- a/ios/Assets/PauseView.xib
+++ b/ios/Assets/PauseView.xib
@@ -75,7 +75,30 @@
+
+
+ 292
+ {{160, 20}, {120, 44}}
@@ -85,7 +108,7 @@
0
0
1
- Resume Game
+ Toggle RGUI
1
@@ -382,6 +405,15 @@
154
+
+
+ showRGUI:
+
+
+ 7
+
+ 179
+
@@ -395,6 +427,15 @@
1
+
+
+
+
+
+
+
+
+
5
@@ -411,22 +452,6 @@
24
2
-
-
- 4
- 0
-
- 4
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
6
@@ -443,7 +468,23 @@
29
3
-
+
+
+ 4
+ 0
+
+ 4
+ 1
+
+ 20
+
+ 1000
+
+ 8
+ 29
+ 3
+
+
6
0
@@ -459,6 +500,22 @@
29
3
+
+
+ 3
+ 0
+
+ 4
+ 1
+
+ 8
+
+ 1000
+
+ 6
+ 24
+ 3
+
11
@@ -475,37 +532,37 @@
24
2
-
-
- 4
+
+
+ 5
0
-
- 4
+
+ 5
1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 3
- 0
-
- 4
- 1
-
- 8
+
+ 0.0
1000
6
24
- 3
+ 2
+
+
+
+ 11
+ 0
+
+ 11
+ 1
+
+ 0.0
+
+ 1000
+
+ 6
+ 24
+ 2
@@ -523,23 +580,39 @@
29
3
-
-
- 6
+
+
+ 4
0
-
- 6
+
+ 4
1
-
- 0.0
+
+ 20
+
+ 1000
+
+ 8
+ 29
+ 3
+
+
+
+ 3
+ 0
+
+ 4
+ 1
+
+ 8
1000
6
24
- 2
+ 3
-
+
3
0
@@ -555,7 +628,7 @@
24
3
-
+
6
0
@@ -571,7 +644,7 @@
24
2
-
+
5
0
@@ -587,23 +660,7 @@
29
3
-
-
- 11
- 0
-
- 11
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
+
6
0
@@ -619,11 +676,27 @@
29
3
-
+
+
+ 3
+ 0
+
+ 4
+ 1
+
+ 8
+
+ 1000
+
+ 6
+ 24
+ 3
+
+
5
0
-
+
5
1
@@ -635,11 +708,11 @@
24
2
-
+
6
0
-
+
6
1
@@ -651,7 +724,39 @@
29
3
-
+
+
+ 3
+ 0
+
+ 3
+ 1
+
+ 20
+
+ 1000
+
+ 8
+ 29
+ 3
+
+
+
+ 11
+ 0
+
+ 11
+ 1
+
+ 0.0
+
+ 1000
+
+ 6
+ 24
+ 2
+
+
5
0
@@ -667,7 +772,23 @@
29
3
-
+
+
+ 6
+ 0
+
+ 6
+ 1
+
+ 20
+
+ 1000
+
+ 8
+ 29
+ 3
+
+
5
0
@@ -683,7 +804,39 @@
29
3
-
+
+
+ 6
+ 0
+
+ 6
+ 1
+
+ 0.0
+
+ 1000
+
+ 6
+ 24
+ 2
+
+
+
+ 11
+ 0
+
+ 11
+ 1
+
+ 0.0
+
+ 1000
+
+ 6
+ 24
+ 2
+
+
3
0
@@ -699,39 +852,23 @@
24
3
-
-
+
+
6
0
-
+
6
1
-
- 20
+
+ 0.0
1000
- 8
- 29
- 3
+ 6
+ 24
+ 2
-
-
- 5
- 0
-
- 5
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
+
3
0
@@ -747,14 +884,22 @@
29
3
-
-
-
-
-
-
-
-
+
+
+ 5
+ 0
+
+ 5
+ 1
+
+ 20
+
+ 1000
+
+ 8
+ 29
+ 3
+
@@ -778,7 +923,24 @@
17
-
+
+
+
+ 7
+ 0
+
+ 0
+ 1
+
+ 120
+
+ 1000
+
+ 3
+ 9
+ 1
+
+
@@ -793,136 +955,35 @@
-
- 88
-
-
-
-
- 89
-
-
-
-
- 94
-
-
-
-
- 97
-
-
-
-
- 98
-
-
-
-
- 113
-
-
-
-
- 118
-
-
-
-
- 121
-
-
-
122
-
- 125
-
-
-
-
- 127
-
-
-
-
- 129
-
-
-
131
-
- 132
-
-
-
-
- 133
-
-
-
-
- 135
-
-
-
140
-
-
-
- 7
- 0
-
- 0
- 1
-
- 120
-
- 1000
-
- 3
- 9
- 1
-
-
+
-
- 142
-
-
-
-
- 146
-
-
-
-
- 149
-
-
-
-
- 151
-
-
-
152
+
+
+
+
+ 170
+
-
-
+
+
7
0
@@ -932,7 +993,7 @@
120
1000
-
+
3
9
1
@@ -941,35 +1002,160 @@
- 153
-
-
-
-
- 157
-
+ 180
+
- 158
-
+ 181
+
- 160
-
+ 182
+
- 115
+ 183
+
+
+
+
+ 184
+
+
+
+
+ 185
+
+
+
+
+ 186
+
+
+
+
+ 187
+
+
+
+
+ 188
+
+
+
+
+ 189
+
+
+
+
+ 190
+
+
+
+
+ 191
+
+
+
+
+ 192
+
+
+
+
+ 193
+
+
+
+
+ 194
+
+
+
+
+ 195
+
+
+
+
+ 196
+
+
+
+
+ 197
+
+
+
+
+ 198
+
+
+
+
+ 199
+
+
+
+
+ 200
+
+
+
+
+ 201
+
+
+
+
+ 202
- 116
-
+ 203
+
+
+ 204
+
+
+
+
+ 205
+
+
+
+
+ 206
+
+
+
+
+ 207
+
+
+
+
+ 208
+
+
+
+
+ 209
+
+
+
+
+ 210
+
+
+
@@ -978,83 +1164,99 @@
UIResponder
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 166
+ 210
@@ -1077,7 +1279,9 @@
id
id
id
- id
+ id
+ id
+ id
@@ -1108,8 +1312,16 @@
showPauseMenu:
id
-
- showSettings
+
+ showRGUI:
+ id
+
+
+ startBluetooth
+ id
+
+
+ stopBluetooth
id
diff --git a/ios/RetroArch/main.m b/ios/RetroArch/main.m
index 5c592fdfea..42d4606280 100644
--- a/ios/RetroArch/main.m
+++ b/ios/RetroArch/main.m
@@ -182,6 +182,20 @@ static void event_set_state_slot(void* userdata)
g_extern.state_slot = (uint32_t)userdata;
}
+static void event_show_rgui(void* userdata)
+{
+ if (g_extern.lifecycle_mode_state & (1ULL << MODE_MENU))
+ {
+ g_extern.lifecycle_mode_state &= ~(1ULL << MODE_MENU);
+ g_extern.lifecycle_mode_state |= (1ULL << MODE_GAME);
+ }
+ else
+ {
+ g_extern.lifecycle_mode_state &= ~(1ULL << MODE_GAME);
+ g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU);
+ }
+}
+
static void event_quit(void* userdata)
{
g_extern.system.shutdown = true;
@@ -424,6 +438,14 @@ static void event_reload_config(void* userdata)
ios_frontend_post_event(event_set_state_slot, (void*)((UISegmentedControl*)sender).selectedSegmentIndex);
}
+- (IBAction)showRGUI:(id)sender
+{
+ if (_isRunning)
+ ios_frontend_post_event(event_show_rgui, 0);
+
+ [self closePauseMenu:sender];
+}
+
- (IBAction)closePauseMenu:(id)sender
{
[[RAGameView get] closePauseMenu];