6 #include <qikcommand.rh>
\r
7 #include "picodrive.hrh"
\r
10 RESOURCE RSS_SIGNATURE { }
\r
12 // Defines the name of the default file the application framework creates.
\r
13 // This resource must always be the second resource in the resource file.
\r
14 RESOURCE TBUF { buf = "PicoDrive"; }
\r
16 RESOURCE EIK_APP_INFO { }
\r
19 // A view shall use the QIK_VIEW_CONFIGURATIONS resource struct to define which
\r
20 // UI configurations it supports. Can also use QIK_VIEW_CONFIGURATIONS to setup
\r
21 // the view to switch layout and command list automatically when changes of UI
\r
22 // configuration occur. This is done with the view and command_list members of
\r
23 // the QIK_VIEW_CONFIGURATIONS.
\r
24 // The application supports the reference UI Configurations that are supported
\r
25 // in the UIQ 3 SDK. Use the UiqEnv tool, to change the UI Configuration in the
\r
26 // emulator in order to develop and test the application with varying phone styles.
\r
27 RESOURCE QIK_VIEW_CONFIGURATIONS r_app_ui_configurations
\r
31 QIK_VIEW_CONFIGURATION
\r
33 ui_config_mode = KQikPenStyleTouchPortrait;
\r
34 command_list = r_app_commands;
\r
35 view = r_app_layout;
\r
37 QIK_VIEW_CONFIGURATION
\r
39 ui_config_mode = KQikPenStyleTouchLandscape;
\r
40 command_list = r_app_commands;
\r
41 view = r_app_layout;
\r
43 QIK_VIEW_CONFIGURATION
\r
45 ui_config_mode = KQikSoftkeyStyleTouchPortrait;
\r
46 command_list = r_app_commands;
\r
47 view = r_app_layout;
\r
49 QIK_VIEW_CONFIGURATION
\r
51 ui_config_mode = KQikSoftkeyStylePortrait;
\r
52 command_list = r_app_commands;
\r
53 view = r_app_layout;
\r
55 QIK_VIEW_CONFIGURATION
\r
57 ui_config_mode = KQikSoftkeyStyleSmallPortrait;
\r
58 command_list = r_app_commands;
\r
59 view = r_app_layout;
\r
64 // Commands are defined with the QIK_COMMAND_LIST struct,
\r
65 // commands can also be created in code by instantiating CQikCommand.
\r
66 // The control command id for debug command is a reserved id from uikon.hrh.
\r
67 // The id for each command is defined in the .hrh file.
\r
68 RESOURCE QIK_COMMAND_LIST r_app_commands
\r
72 // QIK_COMMAND { id=EEikCmdPicoMain; text="Main"; type=EQikCommandTypeDone; namedGroupLinkId=EEikCmdPicoMain; },
\r
73 // QIK_COMMAND { id=EEikCmdPicoDebugInfo; text="Debug info"; type=EQikCommandTypeScreen; stateFlags=EQikCmdFlagDebugOnly; },
\r
74 QIK_COMMAND { id=EEikCmdPicoFrameskip; text="Frameskip"; type=EQikCommandTypeScreen; namedGroupLinkId=EEikCmdPicoFrameskip; },
\r
75 QIK_COMMAND { id=EEikCmdPicoFrameskipAuto; text="Auto"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;
\r
76 groupId=EEikCmdPicoFrameskip; stateFlags=EQikCmdFlagRadioStart; },
\r
77 QIK_COMMAND { id=EEikCmdPicoFrameskip0; text="0"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;
\r
78 groupId=EEikCmdPicoFrameskip0; stateFlags=EQikCmdFlagRadioMiddle; },
\r
79 QIK_COMMAND { id=EEikCmdPicoFrameskip1; text="1"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;
\r
80 groupId=EEikCmdPicoFrameskip0; stateFlags=EQikCmdFlagRadioMiddle; },
\r
81 QIK_COMMAND { id=EEikCmdPicoFrameskip2; text="2"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;
\r
82 groupId=EEikCmdPicoFrameskip0; stateFlags=EQikCmdFlagRadioMiddle; },
\r
83 QIK_COMMAND { id=EEikCmdPicoFrameskip4; text="4"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;
\r
84 groupId=EEikCmdPicoFrameskip0; stateFlags=EQikCmdFlagRadioMiddle; },
\r
85 QIK_COMMAND { id=EEikCmdPicoFrameskip8; text="8"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoFrameskip;
\r
86 groupId=EEikCmdPicoFrameskip0; stateFlags=EQikCmdFlagRadioEnd; },
\r
87 QIK_COMMAND { id=EEikCmdPicoConfig; text="Configure"; type=EQikCommandTypeScreen; namedGroupLinkId=EEikCmdPicoConfig; },
\r
88 QIK_COMMAND { id=EEikCmdPicoKeys; text="Keys"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoConfig; },
\r
89 QIK_COMMAND { id=EEikCmdPicoSettings; text="Settings"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoConfig; },
\r
90 QIK_COMMAND { id=EEikCmdHelpAbout; text="About"; type=EQikCommandTypeScreen; namedGroupId=EEikCmdPicoConfig; },
\r
92 QIK_COMMAND { id=EEikCmdPicoLoadROM; text="Load new ROM/ISO";type=EQikCommandTypeScreen; groupId=EEikCmdPicoResume; },
\r
93 QIK_COMMAND { id=EEikCmdPicoReset; text="Reset game"; type=EQikCommandTypeScreen; groupId=EEikCmdPicoResume; },
\r
94 QIK_COMMAND { id=EEikCmdPicoLoadState; text="Load state"; type=EQikCommandTypeScreen; groupId=EEikCmdPicoResume; },
\r
95 QIK_COMMAND { id=EEikCmdPicoSaveState; text="Save state"; type=EQikCommandTypeScreen; groupId=EEikCmdPicoResume; },
\r
96 QIK_COMMAND { id=EEikCmdPicoResume; text="Resume game"; type=EQikCommandTypeScreen; groupId=EEikCmdPicoResume; cpfFlags=EQikCpfFlagIsDefault; },
\r
98 QIK_COMMAND { id=EEikCmdExit; text="Exit"; type=EQikCommandTypeScreen; groupId=EEikCmdExit; }
\r
103 // Defines the view by linking to the pages.
\r
104 RESOURCE QIK_VIEW r_app_layout
\r
110 /**************************************
\r
114 **************************************/
\r
116 RESOURCE DIALOG r_pico_config
\r
118 title = "Settings";
\r
119 buttons = R_EIK_BUTTONS_CANCEL_OK;
\r
120 flags = EEikDialogFlagWait;
\r
121 pages = r_pico_config_pages;
\r
124 RESOURCE ARRAY r_pico_config_pages
\r
129 id = ECtlOptPageMain;
\r
131 lines = r_pico_config_page_main;
\r
135 id = ECtlOptPageSound;
\r
137 lines = r_pico_config_page_sound;
\r
141 id = ECtlOptPageMCD;
\r
143 lines = r_pico_config_page_mcd;
\r
147 id = ECtlOptPageMisc;
\r
149 lines = r_pico_config_page_misc;
\r
155 RESOURCE ARRAY r_pico_config_page_main
\r
160 id = ECtlOptRotationLabel;
\r
161 type = EEikCtLabel;
\r
162 prompt = "Screen Rotation";
\r
163 control = LABEL { horiz_align = EEikLabelAlignHLeft; };
\r
167 id = ECtlOptRotation;
\r
168 type = EEikCtHorOptionButList;
\r
171 array_id = r_pico_config_rotation_buttons;
\r
176 id = ECtlOptScreenModeLabel;
\r
177 type = EEikCtLabel;
\r
178 prompt = "Screen Mode";
\r
179 control = LABEL { horiz_align = EEikLabelAlignHLeft; };
\r
183 id = ECtlOptScreenMode;
\r
184 type = EEikCtHorOptionButList;
\r
187 array_id = r_pico_config_screenmode_buttons;
\r
192 id = ECtlOptUseAltRend;
\r
193 type = EEikCtCheckBox;
\r
194 prompt = "Fast renderer (inaccurate)";
\r
198 id = ECtlOptShowFPS;
\r
199 type = EEikCtCheckBox;
\r
200 prompt = "Show FPS";
\r
206 RESOURCE ARRAY r_pico_config_page_sound
\r
211 id = ECtlOptEnableSound;
\r
212 type = EEikCtCheckBox;
\r
213 prompt = "Enable sound";
\r
217 id = ECtlOptChipSelLabel;
\r
218 type = EEikCtLabel;
\r
219 prompt = "Emulate these sound chips:";
\r
220 control = LABEL { horiz_align = EEikLabelAlignHLeft; };
\r
224 id = ECtlOptEmulateZ80;
\r
225 type = EEikCtCheckBox;
\r
230 id = ECtlOptEmulateYM2612;
\r
231 type = EEikCtCheckBox;
\r
236 id = ECtlOptEmulateSN76496;
\r
237 type = EEikCtCheckBox;
\r
238 prompt = "SN76496 (PSG)";
\r
242 id = ECtlOptSndQLabel;
\r
243 type = EEikCtLabel;
\r
244 prompt = "Quality (lowest is fastest)";
\r
245 control = LABEL { horiz_align = EEikLabelAlignHLeft; };
\r
249 id = ECtlOptSndQuality;
\r
250 type = EEikCtChoiceList;
\r
252 control = CHOICELIST { array_id = r_pico_config_snd_quality; };
\r
253 itemflags = EEikDlgItemNonFocusing;
\r
259 RESOURCE ARRAY r_pico_config_page_mcd
\r
264 id = ECtlOptCDcdda;
\r
265 type = EEikCtCheckBox;
\r
266 prompt = "CDDA audio";
\r
271 type = EEikCtCheckBox;
\r
272 prompt = "PCM audio";
\r
276 id = ECtlOptCDramcart;
\r
277 type = EEikCtCheckBox;
\r
278 prompt = "SaveRAM cart";
\r
282 id = ECtlOptCDscalerot;
\r
283 type = EEikCtCheckBox;
\r
284 prompt = "Scale/Rot. fx (slow)";
\r
288 id = ECtlOptCDbettersync;
\r
289 type = EEikCtCheckBox;
\r
290 prompt = "Better sync (slow)";
\r
296 RESOURCE ARRAY r_pico_config_page_misc
\r
301 id = ECtlOpt6ButtonPad;
\r
302 type = EEikCtCheckBox;
\r
303 prompt = "6 button pad";
\r
307 id = ECtlOptGzipStates;
\r
308 type = EEikCtCheckBox;
\r
309 prompt = "gzip save states";
\r
313 id = ECtlOptUseSRAM;
\r
314 type = EEikCtCheckBox;
\r
315 prompt = "Use SRAM saves (.srm)";
\r
319 id = ECtlOptRegion;
\r
320 type = EEikCtChoiceList;
\r
321 prompt = "Region:";
\r
322 control = CHOICELIST { array_id = r_pico_config_region; };
\r
323 itemflags = EEikDlgItemNonFocusing;
\r
329 RESOURCE ARRAY r_pico_config_rotation_buttons
\r
332 OPBUT { id = ECtlOptRotation0; text = "0º"; },
\r
333 OPBUT { id = ECtlOptRotation90; text = "90º"; },
\r
334 OPBUT { id = ECtlOptRotation180; text = "180º"; },
\r
335 OPBUT { id = ECtlOptRotation270; text = "270º"; }
\r
340 RESOURCE ARRAY r_pico_config_screenmode_buttons
\r
343 OPBUT { id = ECtlOptScreenModeCenter; text = "Center"; },
\r
344 OPBUT { id = ECtlOptScreenModeFit; text = "Fit"; },
\r
345 OPBUT { id = ECtlOptScreenModeFit2; text = "Fit2"; }
\r
350 RESOURCE ARRAY r_pico_config_snd_quality
\r
353 LBUF { txt = "8000Hz mono"; },
\r
354 LBUF { txt = "11025Hz mono"; },
\r
355 LBUF { txt = "16000Hz mono"; },
\r
356 LBUF { txt = "22050Hz mono"; },
\r
357 LBUF { txt = "44100Hz mono"; },
\r
358 LBUF { txt = "8000Hz stereo"; },
\r
359 LBUF { txt = "11025Hz stereo"; },
\r
360 LBUF { txt = "16000Hz stereo"; },
\r
361 LBUF { txt = "22050Hz stereo"; },
\r
362 LBUF { txt = "44100Hz stereo"; }
\r
367 RESOURCE ARRAY r_pico_config_region
\r
370 LBUF { txt = "Auto"; },
\r
371 LBUF { txt = "Europe"; },
\r
372 LBUF { txt = "USA"; },
\r
373 LBUF { txt = "Japan PAL"; },
\r
374 LBUF { txt = "Japan NTSC"; }
\r
379 /**************************************
\r
383 **************************************/
\r
385 // A simple dialog shall use the QIK_DIALOG resource struct to
\r
386 // define which UI configurations it supports.
\r
387 RESOURCE QIK_DIALOG r_pico_about
\r
392 QIK_DIALOG_CONFIGURATION
\r
394 ui_config_mode = 0;
\r
395 container = r_pico_about_container;
\r
396 command_list = r_pico_about_commands;
\r
399 controls = r_pico_about_controls;
\r
402 RESOURCE QIK_COMMAND_LIST r_pico_about_commands
\r
408 id = EEikCmdPicoAboutDoneCmd;
\r
409 type = EQikCommandTypeDone;
\r
414 id = EEikCmdPicoAboutCreditsCmd;
\r
415 type = EQikCommandTypeItem;
\r
421 // A collection of controls that can be used throughout the various
\r
422 // view/container/building block structs by using the unique handle in
\r
423 // QIK_CONTROL. So you can specify how the control should be created here and
\r
424 // just reference to it from other places.
\r
425 RESOURCE QIK_CONTROL_COLLECTION r_pico_about_controls
\r
431 unique_handle = ECtlPicoAboutText;
\r
432 type = EEikCtRichTextEditor;
\r
433 control = r_pico_about_rtxted;
\r
434 itemflags = EQikCtrlFlagIsEditInPlace;
\r
439 // the controls themselves
\r
440 RESOURCE RTXTED r_pico_about_rtxted
\r
442 flags = EEikEdwinDisplayOnly|EEikEdwinReadOnly|EEikEdwinNoHorizScrolling;
\r
444 displayMode = 1; // EDisplayModeView;
\r
447 // Defines the content of the simple dialog and how they are laid out.
\r
448 // Default layout manager is used for laying out the controls, which is a row
\r
450 RESOURCE QIK_CONTAINER_SETTINGS r_pico_about_container
\r
454 QIK_CONTAINER_ITEM_CI_LI
\r
456 type = EQikCtOnelineBuildingBlock;
\r
457 control = r_pico_about_bb1;
\r
462 // Building block that contains the label.
\r
463 RESOURCE QIK_SYSTEM_BUILDING_BLOCK r_pico_about_bb1
\r
469 slot_id = EQikItemSlot1;
\r
470 unique_handle = ECtlPicoAboutText;
\r
475 RESOURCE TBUF r_pico_text_about
\r
478 "<f=Polo><s=26><a=center><fg=RgbDarkBlue>PicoDrive"\
\r
479 "<p><f=Polo><s=10><a=center>for UIQ3"\
\r
480 "<p><s=6> <p><f=Corinna><s=12>Version %S, by notaz."\
\r
481 "<p><s=5> <p><s=10>Port based on UIQ2 version, which is based on PicoDrive 0.030 for Pocket PC by Dave"\
\r
482 "<p><s=5> <p><f=Corinna><s=11><u>Email</u>: notasas@gmail.com"\
\r
483 "<p><f=Corinna><s=10><u>Web</u>: http://notaz.gp2x.de"\
\r
484 "<p><f=Corinna><s=10><u>Dave's Web</u>: http://www.finalburn.com";
\r
487 /**************************************
\r
491 **************************************/
\r
493 // A simple dialog shall use the QIK_DIALOG resource struct to
\r
494 // define which UI configurations it supports.
\r
495 RESOURCE QIK_DIALOG r_pico_credits
\r
497 title = "Credits and thanks";
\r
500 QIK_DIALOG_CONFIGURATION
\r
502 ui_config_mode = 0;
\r
503 container = r_pico_credits_container;
\r
504 command_list = r_pico_credits_commands;
\r
507 controls = r_pico_credits_controls;
\r
510 RESOURCE QIK_COMMAND_LIST r_pico_credits_commands
\r
516 id = EEikCmdPicoAboutDoneCmd;
\r
517 type = EQikCommandTypeDone;
\r
523 // A collection of controls that can be used throughout the various
\r
524 // view/container/building block structs by using the unique handle in
\r
525 // QIK_CONTROL. So you can specify how the control should be created here and
\r
526 // just reference to it from other places.
\r
527 RESOURCE QIK_CONTROL_COLLECTION r_pico_credits_controls
\r
533 unique_handle = ECtlPicoCreditsText;
\r
534 type = EEikCtEdwin;
\r
535 control = r_pico_credits_edwin;
\r
536 itemflags = EQikCtrlFlagIsEditInPlace;
\r
541 // the controls themselves
\r
542 RESOURCE EDWIN r_pico_credits_edwin
\r
544 flags = EEikEdwinDisplayOnly|EEikEdwinReadOnly|EEikEdwinNoHorizScrolling|EEikEdwinDisableAutoCurEnd;
\r
548 // Defines the content of the simple dialog and how they are laid out.
\r
549 // Default layout manager is used for laying out the controls, which is a row
\r
551 RESOURCE QIK_CONTAINER_SETTINGS r_pico_credits_container
\r
555 QIK_CONTAINER_ITEM_CI_LI
\r
557 type = EQikCtOnelineBuildingBlock;
\r
558 control = r_pico_credits_bb1;
\r
563 // Building block that contains the label.
\r
564 RESOURCE QIK_SYSTEM_BUILDING_BLOCK r_pico_credits_bb1
\r
570 slot_id = EQikItemSlot1;
\r
571 unique_handle = ECtlPicoCreditsText;
\r
577 RESOURCE ARRAY r_pico_tbuf_credits
\r
581 LBUF{txt="This emulator uses code from these people / projects:";},
\r
584 LBUF{txt="- Cyclone 68000 core, Pico emulation library";},
\r
585 LBUF{txt="Homepage: http://www.finalburn.com/";},
\r
587 LBUF{txt="Reesy & FluBBa";},
\r
588 LBUF{txt="- DrZ80, the Z80 emulator written in ARM assembly.";},
\r
589 LBUF{txt="Homepage: http://reesy.gp32x.de/";},
\r
591 LBUF{txt="MultiArcadeMachineEmulator (MAME) development";},
\r
592 LBUF{txt="- software implementation of Yamaha FM sound generator and";},
\r
593 LBUF{txt="Texas Instruments SN76489 / SN76496 programmable tone / noise generator";},
\r
594 LBUF{txt="Homepage: http://www.mame.net/";},
\r
596 LBUF{txt="Helix community";},
\r
597 LBUF{txt="Helix mp3 decoder";},
\r
599 LBUF{txt="Additional thanks:";},
\r
600 LBUF{txt="- Charles MacDonald (http://cgfm2.emuviews.com/) for old but still very useful info about genesis hardware.";},
\r
601 LBUF{txt="- Stéphane Dallongeville for creating Gens and making it open-source.";},
\r
602 LBUF{txt="- Steve Snake for all that he has done for Genesis emulation scene.";},
\r
603 LBUF{txt="- Tasco Deluxe for his reverse engineering work on SVP and some mappers.";},
\r
604 LBUF{txt="- Bart Trzynadlowski for his SSFII and 68000 docs.";},
\r
605 LBUF{txt="- Haze for his research (http://haze.mameworld.info).";},
\r
606 LBUF{txt="- Lordus, Exophase and Rokas for various ideas.";},
\r
607 LBUF{txt="- Mark and Jean-loup for zlib library.";},
\r
608 LBUF{txt="- Peter van Sebille for his various open-source Symbian projects to learn from.";},
\r
609 LBUF{txt="- Steve Fischer for his open-source Motorola projects.";},
\r
610 LBUF{txt="- AnotherGuest for all his Symbian stuff and support.";},
\r
611 LBUF{txt="- Inder for the icons.";},
\r
612 LBUF{txt="- Anyone else I forgot. You know who you are.";}
\r
617 /**************************************
\r
621 **************************************/
\r
623 RESOURCE QIK_DIALOG r_pico_debug
\r
628 QIK_DIALOG_CONFIGURATION
\r
630 ui_config_mode = 0;
\r
631 container = r_pico_credits_container; // stuff from credits should fit
\r
632 command_list = r_pico_credits_commands;
\r
635 controls = r_pico_credits_controls;
\r