merge
This commit is contained in:
commit
04c4a9ca8b
6 changed files with 62 additions and 11 deletions
|
@ -16,9 +16,23 @@ is an emulator for the Atari 2600.
|
|||
It exectues the romfile given as an argument,
|
||||
and controls as if using a regular 4-direction 1-button joystick,
|
||||
using \fBspace\fR button and directional keys.
|
||||
The \fBq\fR, \fBw\fR, \fBe\fR, \fBr\fR keys correspond respectively to the reset, select, player 1 difficulty and color mode switches.
|
||||
The \fBq\fR, \fBw\fR, \fBe\fR and \fBr\fR keys correspond respectively to the reset, select, player 1 difficulty and color mode switches.
|
||||
Other keys:
|
||||
.TP
|
||||
F1
|
||||
Pause the emulator. If already paused it will step one video frame.
|
||||
.TP
|
||||
F12
|
||||
Toggle the emulator's speedometer. It shows in the upper left,
|
||||
off-viewport corner, the ratio between the expected and observed time it
|
||||
took to draw 60 frames.
|
||||
.TP
|
||||
t
|
||||
Toggle tracing of the emulator.
|
||||
.TP
|
||||
`
|
||||
It uncaps the 60fps frame rate and lets emulation go as fast as possible.
|
||||
.TP
|
||||
Esc
|
||||
Pause the emulator.
|
||||
.TP
|
||||
|
|
|
@ -4,7 +4,7 @@ gb, gba, nes, snes \- emulators
|
|||
.SH SYNOPSIS
|
||||
.B games/gb
|
||||
[
|
||||
.B -acdT
|
||||
.B -acd
|
||||
]
|
||||
[
|
||||
.B -C
|
||||
|
@ -17,7 +17,7 @@ gb, gba, nes, snes \- emulators
|
|||
.br
|
||||
.B games/gba
|
||||
[
|
||||
.B -aT
|
||||
.B -a
|
||||
] [
|
||||
.B -b
|
||||
.I biosfile
|
||||
|
@ -41,7 +41,7 @@ gb, gba, nes, snes \- emulators
|
|||
.br
|
||||
.B games/snes
|
||||
[
|
||||
.B -ahmsT
|
||||
.B -ahms
|
||||
] [
|
||||
.B -x
|
||||
.I scale
|
||||
|
@ -55,15 +55,29 @@ and
|
|||
.I snes
|
||||
are emulators for the Nintendo Game Boy and Game Boy Color (GB and GBC), Nintendo Game Boy Advance (GBA), Nintendo Entertainment System (NES), and Super Nintendo Entertainment System (SNES).
|
||||
They execute the romfile given as an argument.
|
||||
The \fBz\fR, \fBx\fR, \fBa\fR, \fBs\fR, \fBq\fR, \fBw\fRreturn and shift keys correspond to B, A, Y, X, L1, L2, Start and Select, respectively.
|
||||
The \fBz\fR, \fBx\fR, \fBa\fR, \fBs\fR, \fBq\fR, \fBw, \fRreturn and shift keys correspond to B, A, Y, X, L1, L2, Start and Select, respectively.
|
||||
Other keys:
|
||||
.TP
|
||||
F1
|
||||
Pause the emulator. If already paused it will step one video frame.
|
||||
.TP
|
||||
F5
|
||||
Save the current state in \fBgb.save\fR / \fBgba.save\fR / \fBnes.save\fR / \fBsnes.save\fR.
|
||||
.TP
|
||||
F6
|
||||
Load the current state from \fBgb.save\fR / \fBgba.save\fR / \fBnes.save\fR / \fBsnes.save\fR.
|
||||
.TP
|
||||
F12
|
||||
Toggle the emulator's speedometer. It shows in the upper left,
|
||||
off-viewport corner, the ratio between the expected and observed time it
|
||||
took to draw 60 frames.
|
||||
.TP
|
||||
t
|
||||
Toggle tracing of the emulator.
|
||||
.TP
|
||||
`
|
||||
It uncaps the 60fps frame rate and lets emulation go as fast as possible.
|
||||
.TP
|
||||
Esc
|
||||
Pause the emulator.
|
||||
.TP
|
||||
|
|
|
@ -17,6 +17,20 @@ It executes the romfile given as an argument.
|
|||
The \fBz\fR, \fBx\fR, \fBa\fR, return and shift keys correspond to A, B, C, Start and Select, respectively.
|
||||
Other keys:
|
||||
.TP
|
||||
F1
|
||||
Pause the emulator. If already paused it will step one video frame.
|
||||
.TP
|
||||
F12
|
||||
Toggle the emulator's speedometer. It shows in the upper left,
|
||||
off-viewport corner, the ratio between the expected and observed time it
|
||||
took to draw 60 frames.
|
||||
.TP
|
||||
t
|
||||
Toggle tracing of the emulator.
|
||||
.TP
|
||||
`
|
||||
It uncaps the 60fps frame rate and lets emulation go as fast as possible.
|
||||
.TP
|
||||
Esc
|
||||
Pause the emulator.
|
||||
.TP
|
||||
|
|
|
@ -10,7 +10,7 @@ walk \- walk a path
|
|||
.I mind,maxd
|
||||
] [
|
||||
.B -e
|
||||
.I ststr
|
||||
.I statfmt
|
||||
] [
|
||||
.I name ...
|
||||
]
|
||||
|
@ -18,7 +18,7 @@ walk \- walk a path
|
|||
.I Walk
|
||||
recursively descends any directory arguments,
|
||||
printing the name of each file on a separate line.
|
||||
When no arguments are given, the current directory
|
||||
When no arguments are given, the working directory
|
||||
is assumed.
|
||||
Non-directory arguments are checked for existence,
|
||||
then printed, if so.
|
||||
|
@ -50,7 +50,7 @@ are optional.
|
|||
.TP
|
||||
.B -e statfmt
|
||||
Setting the statfmt string allows specifying the data
|
||||
.B walk
|
||||
.I walk
|
||||
should print.
|
||||
It takes a string of characters, each corresponding
|
||||
to some piece of information about the file being
|
||||
|
@ -89,6 +89,12 @@ size in bytes
|
|||
.TP
|
||||
.B x
|
||||
permissions
|
||||
.TP
|
||||
.B D
|
||||
server device
|
||||
.TP
|
||||
.B T
|
||||
server type (kernel device rune)
|
||||
.PD
|
||||
.PP
|
||||
The default statfmt is simply,
|
||||
|
|
|
@ -316,7 +316,6 @@ acmeerrorproc(void *)
|
|||
buf[n] = '\0';
|
||||
s = estrdup(buf);
|
||||
sendp(cerr, s);
|
||||
free(s);
|
||||
}
|
||||
free(buf);
|
||||
}
|
||||
|
|
|
@ -71,6 +71,10 @@ dofile(char *path, Dir *f, int pathonly)
|
|||
case 'q': Bprint(bout, "%ullx.%uld.%.2uhhx", f->qid.path, f->qid.vers, f->qid.type); break;
|
||||
case 's': Bprint(bout, "%lld", f->length); break;
|
||||
case 'x': Bprint(bout, "%ulo", f->mode); break;
|
||||
|
||||
/* These two are slightly different, as they tell us about the fileserver instead of the file */
|
||||
case 'D': Bprint(bout, "%ud", f->dev); break;
|
||||
case 'T': Bprint(bout, "%C", f->type); break;
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
|
@ -238,9 +242,9 @@ main(int argc, char **argv)
|
|||
if((stfmt = s_reset(stfmt)) == nil)
|
||||
sysfatal("s_reset: %r");
|
||||
s_append(stfmt, EARGF(usage()));
|
||||
i = strspn(s_to_c(stfmt), "UGMamnpqsx");
|
||||
i = strspn(s_to_c(stfmt), "UGMamnpqsxDT");
|
||||
if(i != s_len(stfmt))
|
||||
sysfatal("bad stfmt: %s\n", s_to_c(stfmt));
|
||||
sysfatal("bad stfmt: %s", s_to_c(stfmt));
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
|
|
Loading…
Reference in a new issue