diff options
Diffstat (limited to 'apps/plugins/rockboy/rockboy.c')
-rw-r--r-- | apps/plugins/rockboy/rockboy.c | 54 |
1 files changed, 46 insertions, 8 deletions
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c index a72a3a9e32..1cf4b7134b 100644 --- a/apps/plugins/rockboy/rockboy.c +++ b/apps/plugins/rockboy/rockboy.c | |||
@@ -19,6 +19,10 @@ | |||
19 | #include "plugin.h" | 19 | #include "plugin.h" |
20 | #include "loader.h" | 20 | #include "loader.h" |
21 | #include "rockmacros.h" | 21 | #include "rockmacros.h" |
22 | #include "input.h" | ||
23 | #include "emu.h" | ||
24 | #include "hw.h" | ||
25 | #include "pcm.h" | ||
22 | 26 | ||
23 | PLUGIN_HEADER | 27 | PLUGIN_HEADER |
24 | PLUGIN_IRAM_DECLARE | 28 | PLUGIN_IRAM_DECLARE |
@@ -29,8 +33,6 @@ PLUGIN_IRAM_DECLARE | |||
29 | struct plugin_api* rb; | 33 | struct plugin_api* rb; |
30 | int shut,cleanshut; | 34 | int shut,cleanshut; |
31 | char *errormsg; | 35 | char *errormsg; |
32 | int gnuboy_main(char *rom); | ||
33 | void pcm_close(void); | ||
34 | 36 | ||
35 | #define optionname "options" | 37 | #define optionname "options" |
36 | 38 | ||
@@ -65,7 +67,7 @@ void* memcpy(void* dst, const void* src, size_t size) | |||
65 | return rb->memcpy(dst, src, size); | 67 | return rb->memcpy(dst, src, size); |
66 | } | 68 | } |
67 | 69 | ||
68 | void setoptions (void) | 70 | static void setoptions (void) |
69 | { | 71 | { |
70 | int fd; | 72 | int fd; |
71 | DIR* dir; | 73 | DIR* dir; |
@@ -85,7 +87,7 @@ void setoptions (void) | |||
85 | options.LEFT=BUTTON_LEFT; | 87 | options.LEFT=BUTTON_LEFT; |
86 | options.RIGHT=BUTTON_RIGHT; | 88 | options.RIGHT=BUTTON_RIGHT; |
87 | 89 | ||
88 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) | 90 | #if CONFIG_KEYPAD == IRIVER_H100_PAD |
89 | options.UP=BUTTON_UP; | 91 | options.UP=BUTTON_UP; |
90 | options.DOWN=BUTTON_DOWN; | 92 | options.DOWN=BUTTON_DOWN; |
91 | 93 | ||
@@ -95,7 +97,7 @@ void setoptions (void) | |||
95 | options.SELECT=BUTTON_SELECT; | 97 | options.SELECT=BUTTON_SELECT; |
96 | options.MENU=BUTTON_MODE; | 98 | options.MENU=BUTTON_MODE; |
97 | 99 | ||
98 | #elif (CONFIG_KEYPAD == IRIVER_H300_PAD) | 100 | #elif CONFIG_KEYPAD == IRIVER_H300_PAD |
99 | options.UP=BUTTON_UP; | 101 | options.UP=BUTTON_UP; |
100 | options.DOWN=BUTTON_DOWN; | 102 | options.DOWN=BUTTON_DOWN; |
101 | 103 | ||
@@ -190,9 +192,9 @@ void setoptions (void) | |||
190 | options.fps=0; | 192 | options.fps=0; |
191 | options.showstats=0; | 193 | options.showstats=0; |
192 | #if (LCD_WIDTH>=160) && (LCD_HEIGHT>=144) | 194 | #if (LCD_WIDTH>=160) && (LCD_HEIGHT>=144) |
193 | options.fullscreen=0; | 195 | options.scaling=0; |
194 | #else | 196 | #else |
195 | options.fullscreen=1; | 197 | options.scaling=1; |
196 | #endif | 198 | #endif |
197 | options.sound=1; | 199 | options.sound=1; |
198 | options.pal=0; | 200 | options.pal=0; |
@@ -203,7 +205,7 @@ void setoptions (void) | |||
203 | close(fd); | 205 | close(fd); |
204 | } | 206 | } |
205 | 207 | ||
206 | void savesettings(void) | 208 | static void savesettings(void) |
207 | { | 209 | { |
208 | int fd; | 210 | int fd; |
209 | char optionsave[sizeof(savedir)+sizeof(optionname)]; | 211 | char optionsave[sizeof(savedir)+sizeof(optionname)]; |
@@ -218,6 +220,42 @@ void savesettings(void) | |||
218 | } | 220 | } |
219 | } | 221 | } |
220 | 222 | ||
223 | void doevents(void) | ||
224 | { | ||
225 | event_t ev; | ||
226 | int st; | ||
227 | |||
228 | ev_poll(); | ||
229 | while (ev_getevent(&ev)) | ||
230 | { | ||
231 | if (ev.type != EV_PRESS && ev.type != EV_RELEASE) | ||
232 | continue; | ||
233 | st = (ev.type != EV_RELEASE); | ||
234 | pad_set(ev.code, st); | ||
235 | } | ||
236 | } | ||
237 | |||
238 | static int gnuboy_main(char *rom) | ||
239 | { | ||
240 | rb->lcd_puts(0,0,"Init video"); | ||
241 | vid_init(); | ||
242 | rb->lcd_puts(0,1,"Init sound"); | ||
243 | pcm_init(); | ||
244 | rb->lcd_puts(0,2,"Loading rom"); | ||
245 | loader_init(rom); | ||
246 | if(shut) | ||
247 | return PLUGIN_ERROR; | ||
248 | rb->lcd_puts(0,3,"Emu reset"); | ||
249 | emu_reset(); | ||
250 | rb->lcd_puts(0,4,"Emu run"); | ||
251 | rb->lcd_clear_display(); | ||
252 | rb->lcd_update(); | ||
253 | emu_run(); | ||
254 | |||
255 | /* never reached */ | ||
256 | return PLUGIN_OK; | ||
257 | } | ||
258 | |||
221 | /* this is the plugin entry point */ | 259 | /* this is the plugin entry point */ |
222 | enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | 260 | enum plugin_status plugin_start(struct plugin_api* api, void* parameter) |
223 | { | 261 | { |