| ... | ... |
@@ -86,18 +86,20 @@ You can send events from Uxn to another application, or another instance of uxn, |
| 86 | 86 |
uxnemu orca.rom | shim |
| 87 | 87 |
``` |
| 88 | 88 |
|
| 89 |
-## Emulator Options |
|
| 89 |
+## GUI Emulator Options |
|
| 90 | 90 |
|
| 91 |
-- `-s 1`, `-s 2` or `-s 3` set zoom (default 1) |
|
| 91 |
+- `-1x` Force small scale |
|
| 92 |
+- `-2x` Force medium scale |
|
| 93 |
+- `-3x` Force large scale |
|
| 92 | 94 |
|
| 93 |
-## Emulator Controls |
|
| 95 |
+## GUI Emulator Controls |
|
| 94 | 96 |
|
| 95 | 97 |
- `F1` toggle zoom |
| 96 | 98 |
- `F2` toggle debug |
| 97 | 99 |
- `F3` capture screen |
| 98 | 100 |
- `F4` load launcher.rom |
| 99 | 101 |
|
| 100 |
-### Buttons |
|
| 102 |
+### GUI Buttons |
|
| 101 | 103 |
|
| 102 | 104 |
- `LCTRL` A |
| 103 | 105 |
- `LALT` B |
| ... | ... |
@@ -64,7 +64,7 @@ main(int argc, char **argv) |
| 64 | 64 |
for(i = 2; i < argc; i++) {
|
| 65 | 65 |
char *p = argv[i]; |
| 66 | 66 |
while(*p) console_input(&u, *p++, CONSOLE_ARG); |
| 67 |
- console_input(&u, '\n', i == argc-1 ? CONSOLE_END : CONSOLE_EOA); |
|
| 67 |
+ console_input(&u, '\n', i == argc - 1 ? CONSOLE_END : CONSOLE_EOA); |
|
| 68 | 68 |
} |
| 69 | 69 |
while(!u.dev[0x0f]) {
|
| 70 | 70 |
int c = fgetc(stdin); |
| ... | ... |
@@ -267,9 +267,9 @@ start(Uxn *u, char *rom) |
| 267 | 267 |
} |
| 268 | 268 |
|
| 269 | 269 |
static void |
| 270 |
-set_zoom(Uint8 scale) |
|
| 270 |
+set_zoom(Uint8 z) |
|
| 271 | 271 |
{
|
| 272 |
- zoom = zoom > 2 ? 1 : zoom + 1; |
|
| 272 |
+ zoom = z; |
|
| 273 | 273 |
set_window_size(gWindow, (uxn_screen.width + PAD * 2) * zoom, (uxn_screen.height + PAD * 2) * zoom); |
| 274 | 274 |
} |
| 275 | 275 |
|
| ... | ... |
@@ -351,7 +351,7 @@ static void |
| 351 | 351 |
do_shortcut(Uxn *u, SDL_Event *event) |
| 352 | 352 |
{
|
| 353 | 353 |
if(event->key.keysym.sym == SDLK_F1) |
| 354 |
- set_zoom(zoom); |
|
| 354 |
+ set_zoom(zoom == 3 ? 1 : zoom + 1); |
|
| 355 | 355 |
else if(event->key.keysym.sym == SDLK_F2) |
| 356 | 356 |
system_inspect(u); |
| 357 | 357 |
else if(event->key.keysym.sym == SDLK_F3) |
| ... | ... |
@@ -490,28 +490,24 @@ main(int argc, char **argv) |
| 490 | 490 |
{
|
| 491 | 491 |
SDL_DisplayMode DM; |
| 492 | 492 |
Uxn u = {0};
|
| 493 |
- int i, loaded = 0; |
|
| 493 |
+ int i = 1, loaded = 0; |
|
| 494 | 494 |
if(!init()) |
| 495 | 495 |
return error("Init", "Failed to initialize emulator.");
|
| 496 | 496 |
screen_resize(&uxn_screen, WIDTH, HEIGHT); |
| 497 | 497 |
/* set default zoom */ |
| 498 |
- if(SDL_GetCurrentDisplayMode(0, &DM) == 0) |
|
| 498 |
+ if(strcmp(argv[i], "-1x") == 0 || strcmp(argv[i], "-2x") == 0 || strcmp(argv[i], "-3x") == 0) |
|
| 499 |
+ set_zoom(argv[i++][1] - '0'); |
|
| 500 |
+ else if(SDL_GetCurrentDisplayMode(0, &DM) == 0) |
|
| 499 | 501 |
set_zoom(DM.w / 1280); |
| 500 |
- for(i = 1; i < argc; i++) {
|
|
| 501 |
- /* get default zoom from flags */ |
|
| 502 |
- if(strcmp(argv[i], "-s") == 0) {
|
|
| 503 |
- if(i < argc - 1) |
|
| 504 |
- set_zoom(atoi(argv[++i])); |
|
| 505 |
- else |
|
| 506 |
- return error("Opt", "-s No scale provided.");
|
|
| 507 |
- } else if(!loaded++) {
|
|
| 502 |
+ for(; i < argc; i++) {
|
|
| 503 |
+ if(!loaded++) {
|
|
| 508 | 504 |
if(!start(&u, argv[i])) |
| 509 | 505 |
return error("Boot", "Failed to boot.");
|
| 510 | 506 |
rom_path = argv[i]; |
| 511 | 507 |
} else {
|
| 512 | 508 |
char *p = argv[i]; |
| 513 | 509 |
while(*p) console_input(&u, *p++, CONSOLE_ARG); |
| 514 |
- console_input(&u, '\n', i == argc ? CONSOLE_END : CONSOLE_EOA); |
|
| 510 |
+ console_input(&u, '\n', i == argc - 1 ? CONSOLE_END : CONSOLE_EOA); |
|
| 515 | 511 |
} |
| 516 | 512 |
} |
| 517 | 513 |
if(!loaded && !start(&u, "launcher.rom")) |