aboutsummaryrefslogtreecommitdiff
path: root/games/sms_sdl
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2014-09-08 22:33:56 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2014-09-08 22:33:56 +0700
commit69d77d1d6fb0f443d9c0509db707b7449423e3b1 (patch)
tree692e1624b8cb0c21eaee4789bcca930c79587d77 /games/sms_sdl
parentcb9b3896f0cf73def6d51114473387926b504c46 (diff)
games/sms_sdl: Fix bad patch and desktop integration.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'games/sms_sdl')
-rw-r--r--games/sms_sdl/README8
-rw-r--r--games/sms_sdl/patches/cflags_and_libz.diff25
-rw-r--r--games/sms_sdl/patches/cflags_and_libz.diff.gzbin0 -> 426 bytes
-rw-r--r--games/sms_sdl/patches/fix_option_parsing.diff83
-rw-r--r--games/sms_sdl/patches/fix_option_parsing.diff.gzbin0 -> 974 bytes
-rw-r--r--games/sms_sdl/patches/japan_and_fm.diff29
-rw-r--r--games/sms_sdl/patches/japan_and_fm.diff.gzbin0 -> 455 bytes
-rw-r--r--games/sms_sdl/patches/x86_64.diff29
-rw-r--r--games/sms_sdl/patches/x86_64.diff.gzbin0 -> 416 bytes
-rw-r--r--games/sms_sdl/slack-desc2
-rw-r--r--games/sms_sdl/sms_sdl.6292
-rw-r--r--games/sms_sdl/sms_sdl.SlackBuild63
-rw-r--r--games/sms_sdl/sms_sdl.desktop8
-rw-r--r--games/sms_sdl/sms_sdl.pod205
14 files changed, 526 insertions, 218 deletions
diff --git a/games/sms_sdl/README b/games/sms_sdl/README
index 83595ad7a0d5..7e35d4bc6504 100644
--- a/games/sms_sdl/README
+++ b/games/sms_sdl/README
@@ -1,15 +1,9 @@
-sms_sdl (A Sega Master System and Game Gear Emulator)
+sms_sdl (Sega Master System and Game Gear emulator)
SMS Plus is Sega Master System and Game Gear emulator. Originally,
it was written to run under DOS. Since Charles Mac Donald released
his emulator under the GPL terms, this emulator has been ported to
different platforms.
-This package includes desktop integration for KDE4. IF you do not want
-this, specify MIME_TYPES=no in the environment before running the script.
-The desktop integration associates *.sms and *.gg files with the emulator,
-so they will be displayed with a Sega Master System icon, and can be
-launched from within KDE by clicking on them in the file manager.
-
The sms_sdl.png icon is by finite, from
http://www.pixeljoint.com/pixelart/2312.htm
diff --git a/games/sms_sdl/patches/cflags_and_libz.diff b/games/sms_sdl/patches/cflags_and_libz.diff
deleted file mode 100644
index cf74397198ce..000000000000
--- a/games/sms_sdl/patches/cflags_and_libz.diff
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -Naur sms_sdl-0.9.4a-r7.1/sdl/Makefile sms_sdl-0.9.4a-r7.1.patched/sdl/Makefile
---- sms_sdl-0.9.4a-r7.1/sdl/Makefile 2003-07-16 23:37:38.000000000 -0400
-+++ sms_sdl-0.9.4a-r7.1.patched/sdl/Makefile 2009-02-05 17:39:28.000000000 -0500
-@@ -12,7 +12,7 @@
- NAME = sms_sdl
-
- CC = gcc
--CFLAGS = `sdl-config --cflags` -O2
-+CFLAGS = `sdl-config --cflags` $(OPTFLAGS)
- DEFINES = -DLSB_FIRST -DX86_ASM
- INCLUDES = -I. -I.. -I../cpu -I../sound
- LIBS = `sdl-config --libs`
-@@ -22,9 +22,9 @@
- ../cpu/z80.o ../sound/emu2413.o ../sound/sn76496.o
-
- # (un)comment to enable ZIP support
--#DEFINES += -DUSE_ZLIB
--#LIBS += -Lz
--#OBJECTS += unzip.o
-+DEFINES += -DUSE_ZLIB
-+LIBS += -lz
-+OBJECTS += unzip.o
-
-
- all: $(NAME)
diff --git a/games/sms_sdl/patches/cflags_and_libz.diff.gz b/games/sms_sdl/patches/cflags_and_libz.diff.gz
new file mode 100644
index 000000000000..57f15592ceaf
--- /dev/null
+++ b/games/sms_sdl/patches/cflags_and_libz.diff.gz
Binary files differ
diff --git a/games/sms_sdl/patches/fix_option_parsing.diff b/games/sms_sdl/patches/fix_option_parsing.diff
deleted file mode 100644
index ee91ec487df5..000000000000
--- a/games/sms_sdl/patches/fix_option_parsing.diff
+++ /dev/null
@@ -1,83 +0,0 @@
-diff -x tags -Naur sms_sdl-0.9.4a-r7.1/sdl/main.c sms_sdl-0.9.4a-r7.1.patched/sdl/main.c
---- sms_sdl-0.9.4a-r7.1/sdl/main.c 2009-10-11 21:49:18.000000000 -0400
-+++ sms_sdl-0.9.4a-r7.1.patched/sdl/main.c 2009-10-12 01:41:24.000000000 -0400
-@@ -42,17 +42,20 @@
-
- static int parse_args(int argc, char **argv)
- {
-- int i;
-+ int i, name_set = 0;
-
- /* default virtual console emulation settings */
- cfg.fm = 0;
- cfg.japan = 0;
-
- cfg.filter = -1;
-- strcpy(cfg.game_name, argv[1]);
-
-- for(i = 2; i < argc; ++i) {
-- if(strcasecmp(argv[i], "--fm") == 0)
-+ for(i = 1; i < argc; ++i) {
-+ if(!name_set && argv[i][0] != '-') {
-+ strcpy(cfg.game_name, argv[i]);
-+ name_set++;
-+ }
-+ else if(strcasecmp(argv[i], "--fm") == 0)
- cfg.fm = 1;
- else if(strcasecmp(argv[i], "--japan") == 0)
- cfg.japan = 1;
-@@ -86,6 +89,11 @@
- else
- printf("WARNING: unknown option '%s'.\n", argv[i]);
- }
-+ if(!name_set) {
-+ printf("ERROR: no ROM filename given\n");
-+ return 0;
-+ }
-+
- return 1;
- }
-
-@@ -112,13 +120,13 @@
- printf(" --filter <mode>\t render using a filter: ");
- for(i = 0; i < sizeof(filters) / sizeof(filters[0]) - 1; ++i)
- printf("%s,", filters[i].name);
-- printf("%s.", filters[i].name);
-+ printf("%s.\n", filters[i].name);
- return 1;
- }
-
- memset(&cfg, 0, sizeof(cfg));
- if(!parse_args(argc, argv))
-- return 0;
-+ return 1;
-
- if(sdlsms_init(&cfg)) {
- sdlsms_emulate();
-diff -x tags -Naur sms_sdl-0.9.4a-r7.1/sdl/saves.c sms_sdl-0.9.4a-r7.1.patched/sdl/saves.c
---- sms_sdl-0.9.4a-r7.1/sdl/saves.c 2003-07-16 23:20:24.000000000 -0400
-+++ sms_sdl-0.9.4a-r7.1.patched/sdl/saves.c 2009-10-11 22:04:10.000000000 -0400
-@@ -88,6 +88,11 @@
- unzCloseCurrentFile(zf);
- unzClose(zf);
-
-+ /* 20091011 bkw: avoid segfaulting if filename contains no dot */
-+ if(!strrchr(romfile, '.')) {
-+ printf("Invalid filename '%s' (no extension), giving up\n", romfile);
-+ return 0;
-+ }
- if(strcasecmp(strrchr(romfile, '.'), ".gg") == 0)
- cart.type = TYPE_GG;
- else
-@@ -126,6 +131,11 @@
-
- fclose(fd);
-
-+ /* 20091011 bkw: avoid segfaulting if filename contains no dot */
-+ if(!strrchr(filename, '.')) {
-+ printf("Invalid filename '%s' (no extension), giving up\n", filename);
-+ return 0;
-+ }
- /* Figure out game image type */
- if(strcasecmp(strrchr(filename, '.'), ".gg") == 0)
- cart.type = TYPE_GG;
diff --git a/games/sms_sdl/patches/fix_option_parsing.diff.gz b/games/sms_sdl/patches/fix_option_parsing.diff.gz
new file mode 100644
index 000000000000..85bfa2791b63
--- /dev/null
+++ b/games/sms_sdl/patches/fix_option_parsing.diff.gz
Binary files differ
diff --git a/games/sms_sdl/patches/japan_and_fm.diff b/games/sms_sdl/patches/japan_and_fm.diff
deleted file mode 100644
index d33f405e6889..000000000000
--- a/games/sms_sdl/patches/japan_and_fm.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- sms_sdl-0.9.4a-r7.1/sdl/main.c 2003-07-21 12:40:56.000000000 -0300
-+++ sms_sdl-0.9.4a-r7.1.patched/sdl/main.c 2009-05-12 17:42:29.362768285 -0300
-@@ -45,21 +45,19 @@
- int i;
-
- /* default virtual console emulation settings */
-- sms.use_fm = 0;
-- sms.country = TYPE_OVERSEAS;
-+ cfg.fm = 0;
-+ cfg.japan = 0;
-
- cfg.filter = -1;
- strcpy(cfg.game_name, argv[1]);
-
- for(i = 2; i < argc; ++i) {
- if(strcasecmp(argv[i], "--fm") == 0)
-- sms.use_fm = 1;
-+ cfg.fm = 1;
- else if(strcasecmp(argv[i], "--japan") == 0)
-- sms.country = TYPE_DOMESTIC;
-- else if(strcasecmp(argv[i], "--usesram") == 0) {
-+ cfg.japan = 1;
-+ else if(strcasecmp(argv[i], "--usesram") == 0)
- cfg.usesram = 1;
-- sms.save = 1;
-- }
- else if(strcasecmp(argv[i], "--fskip") == 0) {
- if(++i<argc) {
- cfg.frameskip = atoi(argv[i]);
diff --git a/games/sms_sdl/patches/japan_and_fm.diff.gz b/games/sms_sdl/patches/japan_and_fm.diff.gz
new file mode 100644
index 000000000000..9218679f6658
--- /dev/null
+++ b/games/sms_sdl/patches/japan_and_fm.diff.gz
Binary files differ
diff --git a/games/sms_sdl/patches/x86_64.diff b/games/sms_sdl/patches/x86_64.diff
deleted file mode 100644
index d18a49910f5b..000000000000
--- a/games/sms_sdl/patches/x86_64.diff
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -Naur sms_sdl-0.9.4a-r7.1/sdl/Makefile sms_sdl-0.9.4a-r7.1.patched/sdl/Makefile
---- sms_sdl-0.9.4a-r7.1/sdl/Makefile 2009-09-30 18:39:29.000000000 -0400
-+++ sms_sdl-0.9.4a-r7.1.patched/sdl/Makefile 2009-09-30 18:40:10.000000000 -0400
-@@ -13,7 +13,7 @@
-
- CC = gcc
- CFLAGS = `sdl-config --cflags` $(OPTFLAGS)
--DEFINES = -DLSB_FIRST -DX86_ASM
-+DEFINES = -DLSB_FIRST
- INCLUDES = -I. -I.. -I../cpu -I../sound
- LIBS = `sdl-config --libs`
-
-diff -Naur sms_sdl-0.9.4a-r7.1/types.h sms_sdl-0.9.4a-r7.1.patched/types.h
---- sms_sdl-0.9.4a-r7.1/types.h 2003-01-07 12:37:58.000000000 -0500
-+++ sms_sdl-0.9.4a-r7.1.patched/types.h 2009-09-30 18:40:19.000000000 -0400
-@@ -4,11 +4,11 @@
-
- typedef unsigned char uint8;
- typedef unsigned short int uint16;
--typedef unsigned long int uint32;
-+typedef unsigned int uint32;
-
- typedef signed char int8;
- typedef signed short int int16;
--typedef signed long int int32;
-+typedef signed int int32;
-
- #endif /* _TYPES_H_ */
-
diff --git a/games/sms_sdl/patches/x86_64.diff.gz b/games/sms_sdl/patches/x86_64.diff.gz
new file mode 100644
index 000000000000..2a92e32e33ca
--- /dev/null
+++ b/games/sms_sdl/patches/x86_64.diff.gz
Binary files differ
diff --git a/games/sms_sdl/slack-desc b/games/sms_sdl/slack-desc
index 76f0e459ca7e..bf09de1dc117 100644
--- a/games/sms_sdl/slack-desc
+++ b/games/sms_sdl/slack-desc
@@ -6,7 +6,7 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-sms_sdl: sms_sdl (A Sega Master System and Game Gear Emulator)
+sms_sdl: sms_sdl (Sega Master System and Game Gear emulator)
sms_sdl:
sms_sdl: SMS Plus is Sega Master System and Game Gear emulator. Originally,
sms_sdl: it was written to run under DOS. Since Charles Mac Donald released
diff --git a/games/sms_sdl/sms_sdl.6 b/games/sms_sdl/sms_sdl.6
new file mode 100644
index 000000000000..83fbf179b229
--- /dev/null
+++ b/games/sms_sdl/sms_sdl.6
@@ -0,0 +1,292 @@
+.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "SMS_SDL 6"
+.TH SMS_SDL 6 "2014-09-07" "0.9.4a-r7.1" "SlackBuilds.org"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+sms_sdl \- Sega Master System and Game Gear emulator.
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+\&\fBsms_sdl\fR [\fI\-\-options\fR] \fI<filename.<SMS|GG\fR>>
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\s-1SMS\s0 Plus/SDL is an emulator for the Sega Master System and Sega Game
+Gear video game consoles.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+\&\fINote:\fR The filename may appear anywhere on the command line.
+.IP "\fB\-\-fm\fR" 4
+.IX Item "--fm"
+Enable \s-1YM2413\s0 sound.
+.IP "\fB\-\-japan\fR" 4
+.IX Item "--japan"
+Set the machine type as \s-1DOMESTIC\s0 instead of \s-1OVERSEAS.\s0
+.IP "\fB\-\-usesram\fR" 4
+.IX Item "--usesram"
+Load/save \s-1SRAM\s0 contents before starting/exiting.
+.IP "\fB\-\-fskip\fR <n>" 4
+.IX Item "--fskip <n>"
+Specify the number of frames to skip.
+.IP "\fB\-\-fullspeed\fR" 4
+.IX Item "--fullspeed"
+Do not limit to 60 frames per second.
+.IP "\fB\-\-fullscreen\fR" 4
+.IX Item "--fullscreen"
+Start in fullscreen mode.
+.IP "\fB\-\-joystick\fR" 4
+.IX Item "--joystick"
+Use joystick.
+.IP "\fB\-\-nosound\fR" 4
+.IX Item "--nosound"
+Disable sound.
+.IP "\fB\-\-filter\fR <mode>" 4
+.IX Item "--filter <mode>"
+Render using a filter. Available modes:
+.RS 4
+.IP "2xsai" 4
+.IX Item "2xsai"
+.PD 0
+.IP "super2xsai" 4
+.IX Item "super2xsai"
+.IP "supereagle" 4
+.IX Item "supereagle"
+.IP "advmame2x" 4
+.IX Item "advmame2x"
+.IP "tv2x" 4
+.IX Item "tv2x"
+.IP "2x" 4
+.IX Item "2x"
+.IP "bilinear" 4
+.IX Item "bilinear"
+.IP "dotmatrix" 4
+.IX Item "dotmatrix"
+.RE
+.RS 4
+.RE
+.PD
+.SH "KEYBOARD"
+.IX Header "KEYBOARD"
+.IP "\fBF1\fR" 4
+.IX Item "F1"
+Screenshot in \s-1BMP\s0 format
+.IP "\fBF2\fR" 4
+.IX Item "F2"
+Save state
+.IP "\fBF3\fR" 4
+.IX Item "F3"
+Load state
+.IP "\fBF4/F5\fR" 4
+.IX Item "F4/F5"
+Dec/inc frame skip value
+.IP "\fBF6/F7\fR" 4
+.IX Item "F6/F7"
+Dec/inc state slot
+.IP "\fB1..8\fR" 4
+.IX Item "1..8"
+Switch rendering filter
+.IP "\fBC\fR" 4
+.IX Item "C"
+Button 1
+.IP "\fBV\fR" 4
+.IX Item "V"
+Button 2
+.IP "\fB\s-1ENTER\s0\fR" 4
+.IX Item "ENTER"
+Start (\s-1GG\s0) / pause (\s-1SMS\s0)
+.IP "\fB\s-1ARROWS\s0\fR" 4
+.IX Item "ARROWS"
+Directional pad
+.IP "\fB\s-1TAB\s0\fR" 4
+.IX Item "TAB"
+Console hard reset
+.PP
+The key bindings may not be remapped.
+.SH "FILES"
+.IX Header "FILES"
+\&\s-1ROM\s0 image files may be in raw dump format, or may have a header
+(details are system-specific). Also, \s-1ROM\s0 images may be zipped (not
+gzipped), in which case the first file in the zip file's directory must
+be the \s-1ROM\s0 image (any other files are ignored).
+.PP
+\&\fBsms_sdl\fR looks at the filename to determine the type of \s-1ROM\s0 image
+in use. Any file whose name ends in \fI.gg\fR (case-insensitive match) is
+considered to be a Game Gear \s-1ROM.\s0 Any other file is treated as a Sega
+Master System \s-1ROM.\s0 In the case of a zipped image, this refers to the
+file inside the zip file; the zip file itself doesn't have any special
+naming requirements.
+.PP
+Screenshot filenames (F1 key) are generated by replacing the filename
+extension with \fI\-NNN.bmp\fR, where \s-1NNN\s0 is a 3\-digit number (000 for the
+first screenshot, 001 for the second, etc). The numbering starts at 000
+every time the emulator is started, and existing files will be overwritten
+without confirmation.
+.PP
+State save filenames (F2 key) are generated by replacing the filename
+extension with \fI.stN\fR, where N is the number of the save slot (one or
+more digits). Again, existing files are overwritten without confirmation.
+.PP
+Screenshots and savestates are stored in \fI~/.sms_sdl\fR.
+.SH "CONFIG FILE"
+.IX Header "CONFIG FILE"
+\&\fBsms_sdl\fR is launched by a shell script wrapper which reads the file
+\&\fI~/.sms_sdl/config\fR if it exists. Any of the options above may be placed
+in this file (one option per line, with or without the leading \fB\-\-\fR
+characters). These options will be passed as command-line arguments to
+the real \fBsms_sdl\fR binary every time it runs.
+.PP
+See \fB/usr/doc/sms_sdl\-VERSION/sample_config\fR for further information.
+.SH "PATCHES"
+.IX Header "PATCHES"
+This build of \fBsms_sdl\fR has been patched to add the following features and fixes:
+.IP "\-" 4
+The \fB\-\-fm\fR and \fB\-\-japan\fR options now work (patch by Ellington Santos).
+.IP "\-" 4
+\&\fBsms_sdl\fR can be built and will run on x86_64 systems (patch by B. Watson).
+.IP "\-" 4
+The emulator no longer segfaults when the \s-1ROM\s0 filename doesn't contain a dot (patch by B. Watson).
+.IP "\-" 4
+\&\s-1ROM\s0 filename can appear anywhere on the command line, before or after options (patch by B. Watson).
+.IP "\-" 4
+Wrapper script, supports config file and snapshots/savestates in ~/.sms_sdl (script by B. Watson).
+.SH "AUTHORS"
+.IX Header "AUTHORS"
+The original \s-1SMS\s0 is (C) Charles Mac Donald in 1998, 1999, 2000.
+.PP
+\&\s-1SDL\s0 Version by Gregory Montoir (cyx@frenchkiss.net).
+.PP
+This man page by B. Watson, for the SlackBuilds.org project.
diff --git a/games/sms_sdl/sms_sdl.SlackBuild b/games/sms_sdl/sms_sdl.SlackBuild
index 2b9dcbef557b..304124bd875e 100644
--- a/games/sms_sdl/sms_sdl.SlackBuild
+++ b/games/sms_sdl/sms_sdl.SlackBuild
@@ -1,11 +1,22 @@
#!/bin/sh
# Slackware build script for sms_sdl
+
# Written by B. Watson (yalhcru@gmail.com)
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# 20140907 bkw:
+# - use gzipped patches to avoid \r being stripped by SBo git
+# - update man page, convert to pod, move to section 6
+# - install exe in /usr/games instead of /usr/bin
+# - use the mime type x-sms-rom, predefined by freedesktop.org, instead
+# of including our own custom mime types. Since Slackware already has
+# this mime type, get rid of the option to disable mime.
+
PRGNAM=sms_sdl
VERSION=${VERSION:-0.9.4a_r7.1}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -23,10 +34,6 @@ OUTPUT=${OUTPUT:-/tmp}
SRCVER=$(echo $VERSION | sed 's/_/-/')
-# If $MIME_TYPES is set to `yes' it will include MIME types for KDE and
-# automagically associate *.sms and *.gg files with sms_sdl.
-MIME_TYPES=${MIME_TYPES:-"yes"}
-
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
@@ -58,22 +65,22 @@ find -L . \
# Sorry for all the patches, upstream has been unmaintained since 2001 or so.
-# Support OPTFLAGS in build process
-patch -p1 --verbose < $CWD/patches/cflags_and_libz.diff
+# Support OPTFLAGS in build process, enabled zipped rom support
+zcat $CWD/patches/cflags_and_libz.diff.gz | patch -p1
# Thanks to Ellington Santos (necropresto) for this patch that makes
# the --fm and --japan options actually work:
-patch -p1 --verbose < $CWD/patches/japan_and_fm.diff
+zcat $CWD/patches/japan_and_fm.diff.gz | patch -p1
# x86_64 needs this patch to disable x86 asm + fix the int32, uint32 typedefs
# (but x86 doesn't need this!)
if [ "$ARCH" = "x86_64" ]; then
- patch -p1 --verbose < $CWD/patches/x86_64.diff
+ zcat $CWD/patches/x86_64.diff.gz | patch -p1
fi
# Allow the ROM filename to appear anywhere on the command line, and
# avoid segfaulting on filenames that don't contain a dot.
-patch -p1 --verbose < $CWD/patches/fix_option_parsing.diff
+zcat $CWD/patches/fix_option_parsing.diff.gz | patch -p1
cd sdl
@@ -83,8 +90,8 @@ sed -i '/^LIBS/s,$, -lm,' Makefile
make OPTFLAGS="$SLKCFLAGS"
# There's no 'make install', plus we have this wrapper script...
-mkdir -p $PKG/usr/bin $PKG/usr/libexec
-install -m0755 $CWD/$PRGNAM.sh $PKG/usr/bin/$PRGNAM
+mkdir -p $PKG/usr/games $PKG/usr/libexec
+install -m0755 $CWD/$PRGNAM.sh $PKG/usr/games/$PRGNAM
install -s -m0755 $PRGNAM $PKG/usr/libexec/$PRGNAM
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
@@ -94,11 +101,11 @@ cat $CWD/sample_config > $PKG/usr/doc/$PRGNAM-$VERSION/sample_config
# man page is part of this SlackBuild. If you're packaging for
# some other distribution, feel free to snag it.
-mkdir -p $PKG/usr/man/man1
-sed "s/@VERSION@/$VERSION/g" < $CWD/$PRGNAM.1 | gzip -9c > $PKG/usr/man/man1/$PRGNAM.1.gz
+mkdir -p $PKG/usr/man/man6
+sed "s/\<VERSION\>/$VERSION/g" < $CWD/$PRGNAM.6 | \
+ gzip -9c > $PKG/usr/man/man6/$PRGNAM.6.gz
-# Desktop integration stuff: Icon and .desktop file always present,
-# regardless of $MIME_TYPES
+# icon by finite (see REAME), desktop written for this build.
mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png
@@ -107,29 +114,5 @@ mkdir -p $PKG/install
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc
-# MIME type and icon stuff updated for KDE 4.
-# For KDE4, we need the freedesktop XML file that defines the MIME types,
-# the icon(s) in /usr/share/icons/hicolor/<size>/mimetypes,
-# the MimeType= line in the app's .desktop file,
-# and the gtk-update-icon-cache lines in doinst.sh
-if [ "$MIME_TYPES" = "yes" ]; then
- mimedir=$PKG/usr/share/mime/packages/
- icondir=$PKG/usr/share/icons/hicolor/128x128/mimetypes
- desktop_types="MimeType="
-
- mkdir -p $mimedir $icondir
- cat $CWD/mime/$PRGNAM.xml > $mimedir/$PRGNAM.xml
-
- cd $icondir
- for type in $( cat $CWD/mime/mime_types ); do
- icon=$( echo $type | sed 's,/,-,g' ).png
- ln -s ../../../../pixmaps/$PRGNAM.png $icon
- desktop_types="$desktop_types$type;"
- done
-
- cat $CWD/mime/doinst.mime >> $PKG/install/doinst.sh
- echo "$desktop_types" >> $PKG/usr/share/applications/$PRGNAM.desktop
-fi
-
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/games/sms_sdl/sms_sdl.desktop b/games/sms_sdl/sms_sdl.desktop
index 7a09638c093b..47c50e67ed92 100644
--- a/games/sms_sdl/sms_sdl.desktop
+++ b/games/sms_sdl/sms_sdl.desktop
@@ -1,11 +1,11 @@
[Desktop Entry]
-Version=1.0
+Type=Application
Name=SMS Plus/SDL
GenericName=Sega Master System Emulator
-Type=Application
-Exec=sms_sdl
+Exec=sms_sdl %f
Icon=sms_sdl
Terminal=false
StartupNotify=false
-Hidden=true
+NoDisplay=true
Categories=Game;Emulator;
+MimeType=application/x-sms-rom;
diff --git a/games/sms_sdl/sms_sdl.pod b/games/sms_sdl/sms_sdl.pod
new file mode 100644
index 000000000000..f099cfa82109
--- /dev/null
+++ b/games/sms_sdl/sms_sdl.pod
@@ -0,0 +1,205 @@
+# pod source for sms_sdl man page. convert with:
+# pod2man --stderr -s6 -r0.9.4a-r7.1 -cSlackBuilds.org sms_sdl.pod > sms_sdl.6
+
+=pod
+
+=head1 NAME
+
+sms_sdl - Sega Master System and Game Gear emulator.
+
+=head1 SYNOPSIS
+
+B<sms_sdl> [I<--options>] I<<filename.<SMS|GG>>>
+
+=head1 DESCRIPTION
+
+SMS Plus/SDL is an emulator for the Sega Master System and Sega Game
+Gear video game consoles.
+
+=head1 OPTIONS
+
+I<Note:> The filename may appear anywhere on the command line.
+
+=over 4
+
+=item B<--fm>
+
+Enable YM2413 sound.
+
+=item B<--japan>
+
+Set the machine type as DOMESTIC instead of OVERSEAS.
+
+=item B<--usesram>
+
+Load/save SRAM contents before starting/exiting.
+
+=item B<--fskip> <n>
+
+Specify the number of frames to skip.
+
+=item B<--fullspeed>
+
+Do not limit to 60 frames per second.
+
+=item B<--fullscreen>
+
+Start in fullscreen mode.
+
+=item B<--joystick>
+
+Use joystick.
+
+=item B<--nosound>
+
+Disable sound.
+
+=item B<--filter> <mode>
+
+Render using a filter. Available modes:
+
+=over 4
+
+=item 2xsai
+
+=item super2xsai
+
+=item supereagle
+
+=item advmame2x
+
+=item tv2x
+
+=item 2x
+
+=item bilinear
+
+=item dotmatrix
+
+=back
+
+=back
+
+=head1 KEYBOARD
+
+=over 4
+
+=item B<F1>
+
+Screenshot in BMP format
+
+=item B<F2>
+
+Save state
+
+=item B<F3>
+
+Load state
+
+=item B<F4/F5>
+
+Dec/inc frame skip value
+
+=item B<F6/F7>
+
+Dec/inc state slot
+
+=item B<1..8>
+
+Switch rendering filter
+
+=item B<C>
+
+Button 1
+
+=item B<V>
+
+Button 2
+
+=item B<ENTER>
+
+Start (GG) / pause (SMS)
+
+=item B<ARROWS>
+
+Directional pad
+
+=item B<TAB>
+
+Console hard reset
+
+=back
+
+The key bindings may not be remapped.
+
+=head1 FILES
+
+ROM image files may be in raw dump format, or may have a header
+(details are system-specific). Also, ROM images may be zipped (not
+gzipped), in which case the first file in the zip file's directory must
+be the ROM image (any other files are ignored).
+
+B<sms_sdl> looks at the filename to determine the type of ROM image
+in use. Any file whose name ends in I<.gg> (case-insensitive match) is
+considered to be a Game Gear ROM. Any other file is treated as a Sega
+Master System ROM. In the case of a zipped image, this refers to the
+file inside the zip file; the zip file itself doesn't have any special
+naming requirements.
+
+Screenshot filenames (F1 key) are generated by replacing the filename
+extension with I<-NNN.bmp>, where NNN is a 3-digit number (000 for the
+first screenshot, 001 for the second, etc). The numbering starts at 000
+every time the emulator is started, and existing files will be overwritten
+without confirmation.
+
+State save filenames (F2 key) are generated by replacing the filename
+extension with I<.stN>, where N is the number of the save slot (one or
+more digits). Again, existing files are overwritten without confirmation.
+
+Screenshots and savestates are stored in I<~/.sms_sdl>.
+
+=head1 CONFIG FILE
+
+B<sms_sdl> is launched by a shell script wrapper which reads the file
+I<~/.sms_sdl/config> if it exists. Any of the options above may be placed
+in this file (one option per line, with or without the leading B<-->
+characters). These options will be passed as command-line arguments to
+the real B<sms_sdl> binary every time it runs.
+
+See B</usr/doc/sms_sdl-VERSION/sample_config> for further information.
+
+=head1 PATCHES
+
+This build of B<sms_sdl> has been patched to add the following features and fixes:
+
+=over 4
+
+=item -
+
+The B<--fm> and B<--japan> options now work (patch by Ellington Santos).
+
+=item -
+
+B<sms_sdl> can be built and will run on x86_64 systems (patch by B. Watson).
+
+=item -
+
+The emulator no longer segfaults when the ROM filename doesn't contain a dot (patch by B. Watson).
+
+=item -
+
+ROM filename can appear anywhere on the command line, before or after options (patch by B. Watson).
+
+=item -
+
+Wrapper script, supports config file and snapshots/savestates in ~/.sms_sdl (script by B. Watson).
+
+=back
+
+=head1 AUTHORS
+
+The original SMS is (C) Charles Mac Donald in 1998, 1999, 2000.
+
+SDL Version by Gregory Montoir (cyx@frenchkiss.net).
+
+This man page by B. Watson, for the SlackBuilds.org project.