forked from KolibriOS/kolibrios
DGen-SDL:
- The home directory is now taken from system.env; - The original documentation was restored and converted into html; - File path hints now work in command mode. git-svn-id: svn://kolibrios.org@9970 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
e1bea992de
commit
ef78b78d1c
@ -777,8 +777,8 @@ if tup.getconfig('NO_NASM') ~= 'full' then
|
|||||||
{"kolibrios/games/wolf3d/", "../contrib/games/wolf3d/wolf3d"},
|
{"kolibrios/games/wolf3d/", "../contrib/games/wolf3d/wolf3d"},
|
||||||
{"kolibrios/games/wolf3d/", "common/games/wolf3d/*"},
|
{"kolibrios/games/wolf3d/", "common/games/wolf3d/*"},
|
||||||
{"kolibrios/emul/dgen/dgen", PROGS .. "/emulator/dgen-sdl-1.33/dgen"},
|
{"kolibrios/emul/dgen/dgen", PROGS .. "/emulator/dgen-sdl-1.33/dgen"},
|
||||||
{"kolibrios/emul/dgen/dgen.man", PROGS .. "/emulator/dgen-sdl-1.33/dgen.man"},
|
{"kolibrios/emul/dgen/dgen.html", PROGS .. "/emulator/dgen-sdl-1.33/dgen.html"},
|
||||||
{"kolibrios/emul/dgen/dgenrc.man", PROGS .. "/emulator/dgen-sdl-1.33/dgenrc.man"},
|
{"kolibrios/emul/dgen/dgenrc.html", PROGS .. "/emulator/dgen-sdl-1.33/dgenrc.html"},
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
-- For russian build, add russian-only programs.
|
-- For russian build, add russian-only programs.
|
||||||
|
@ -100,7 +100,7 @@ To specify more than one code, separate them with commas (do
|
|||||||
.Ar not
|
.Ar not
|
||||||
use spaces).
|
use spaces).
|
||||||
.It Fl r Ar RCFILE
|
.It Fl r Ar RCFILE
|
||||||
Parse another rc file after /tmp0/1/.dgen/dgenrc. Values in the specified file
|
Parse another rc file after $HOME/.dgen/dgenrc. Values in the specified file
|
||||||
override those in the preceding files.
|
override those in the preceding files.
|
||||||
.It Fl X Ar XFACT
|
.It Fl X Ar XFACT
|
||||||
Scale the window XFACT times in the X direction. XFACT must be a positive
|
Scale the window XFACT times in the X direction. XFACT must be a positive
|
||||||
@ -177,22 +177,27 @@ Display current value for variable
|
|||||||
.Ar name .
|
.Ar name .
|
||||||
.El
|
.El
|
||||||
.Sh FILES
|
.Sh FILES
|
||||||
.Bl -tag -width /tmp0/1/.dgen/dgen/saves/* -compact
|
.Bl -tag -width $HOME/.dgen/dgen/saves/* -compact
|
||||||
.It Pa /tmp0/1/.dgen/dgenrc
|
.It Pa $HOME/.dgen/dgenrc
|
||||||
Contains user settings for the emulator.
|
Contains user settings for the emulator.
|
||||||
.It Pa /tmp0/1/.dgen/dgenrc.auto
|
.It Pa $HOME/.dgen/dgenrc.auto
|
||||||
Generated file containing saved user settings.
|
Generated file containing saved user settings.
|
||||||
.It Pa /tmp0/1/.dgen/saves/*
|
.It Pa $HOME/.dgen/saves/*
|
||||||
Save states generated by the emulator.
|
Save states generated by the emulator.
|
||||||
.It Pa /tmp0/1/.dgen/ram/*
|
.It Pa $HOME/.dgen/ram/*
|
||||||
Battery-backup RAM images, generated by the emulator for ROMs with save RAM.
|
Battery-backup RAM images, generated by the emulator for ROMs with save RAM.
|
||||||
.It Pa /tmp0/1/.dgen/screenshots/*
|
.It Pa $HOME/.dgen/screenshots/*
|
||||||
Screenshots are generated there.
|
Screenshots are generated there.
|
||||||
.It Pa /tmp0/1/.dgen/roms/*
|
.It Pa $HOME/.dgen/roms/*
|
||||||
ROMs default search path.
|
ROMs default search path.
|
||||||
.It Pa /tmp0/1/.dgen/demos/*
|
.It Pa $HOME/.dgen/demos/*
|
||||||
Demos default search path.
|
Demos default search path.
|
||||||
.El
|
.El
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr gzip 1 ,
|
||||||
|
.Xr bzip2 1 ,
|
||||||
|
.Xr zip 1 ,
|
||||||
|
.Xr dgenrc 5
|
||||||
.Sh AUTHORS
|
.Sh AUTHORS
|
||||||
This manual page was written by
|
This manual page was written by
|
||||||
.An Joe Groff Aq joe@pknet.com .
|
.An Joe Groff Aq joe@pknet.com .
|
265
programs/emulator/dgen-sdl-1.33/dgen.html
Normal file
265
programs/emulator/dgen-sdl-1.33/dgen.html
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||||
|
<style>
|
||||||
|
table.head, table.foot { width: 100%; }
|
||||||
|
td.head-rtitle, td.foot-os { text-align: right; }
|
||||||
|
td.head-vol { text-align: center; }
|
||||||
|
.Nd, .Bf, .Op { display: inline; }
|
||||||
|
.Pa, .Ad { font-style: italic; }
|
||||||
|
.Ms { font-weight: bold; }
|
||||||
|
.Bl-diag > dt { font-weight: bold; }
|
||||||
|
code.Nm, .Fl, .Cm, .Ic, code.In, .Fd, .Fn, .Cd { font-weight: bold;
|
||||||
|
font-family: inherit; }
|
||||||
|
</style>
|
||||||
|
<title>DGEN(1)</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table class="head">
|
||||||
|
<tr>
|
||||||
|
<td class="head-ltitle">DGEN(1)</td>
|
||||||
|
<td class="head-vol">General Commands Manual</td>
|
||||||
|
<td class="head-rtitle">DGEN(1)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="manual-text">
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
|
||||||
|
<p class="Pp"><code class="Nm">dgen</code> — <span class="Nd">Sega
|
||||||
|
Genesis/Mega Drive emulator</span></p>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
|
||||||
|
<table class="Nm">
|
||||||
|
<tr>
|
||||||
|
<td><code class="Nm">dgen</code></td>
|
||||||
|
<td>[<code class="Fl">-Pfhmv</code>] [<code class="Fl">-R</code>
|
||||||
|
<var class="Ar">(J|U|E)</var>] [<code class="Fl">-H</code>
|
||||||
|
<var class="Ar">HZ</var>] [<code class="Fl">-D</code>
|
||||||
|
<var class="Ar">DEMONAME</var>] [<code class="Fl">-d</code>
|
||||||
|
<var class="Ar">DEMONAME</var>] [<code class="Fl">-n</code>
|
||||||
|
<var class="Ar">USEC</var>] [<code class="Fl">-p</code>
|
||||||
|
<var class="Ar">CODE,CODE...</var>] [<code class="Fl">-r</code>
|
||||||
|
<var class="Ar">RCFILE</var>] [<code class="Fl">-X</code>
|
||||||
|
<var class="Ar">XFACT</var>] [<code class="Fl">-Y</code>
|
||||||
|
<var class="Ar">YFACT</var>] [<code class="Fl">-S</code>
|
||||||
|
<var class="Ar">FACT</var>] [<code class="Fl">-g</code>
|
||||||
|
<var class="Ar">(0|1)</var>] [<code class="Fl">-G</code>
|
||||||
|
<var class="Ar">XxY</var>] [<code class="Fl">-s</code>
|
||||||
|
<var class="Ar">SLOT</var>] <var class="Ar">[romname [...]]</var></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
|
||||||
|
<p class="Pp">The ROM image in the file <var class="Ar">romname</var> is
|
||||||
|
executed, as emulated on a Sega Genesis or Mega Drive running in 60Hz NTSC
|
||||||
|
mode (unless the <code class="Fl">-P</code> option is specified, in which
|
||||||
|
case 50Hz PAL mode is used). <var class="Ar">romname</var> should be in raw
|
||||||
|
binary or SMD format, and may be compressed with <a class="Xr">gzip(1)</a>,
|
||||||
|
<a class="Xr">zip(1)</a>, or <a class="Xr">bzip2(1)</a>.</p>
|
||||||
|
<p class="Pp">When <var class="Ar">romname</var> isn't specified, DGen starts
|
||||||
|
without a ROM. It can be loaded later from the prompt. When more than a
|
||||||
|
single <var class="Ar">romname</var> is specified, they are executed
|
||||||
|
sequentially.</p>
|
||||||
|
<p class="Pp">The options are as follows:</p>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt id="H"><a class="permalink" href="#H"><code class="Fl">-H</code></a>
|
||||||
|
<var class="Ar">HZ</var></dt>
|
||||||
|
<dd>Use a custom frame rate, can be used to accelerate or slow down
|
||||||
|
emulation.</dd>
|
||||||
|
<dt id="P"><a class="permalink" href="#P"><code class="Fl">-P</code></a></dt>
|
||||||
|
<dd>Emulate 50Hz PAL mode (as used in European models of the Mega Drive).</dd>
|
||||||
|
<dt id="R"><a class="permalink" href="#R"><code class="Fl">-R</code></a>
|
||||||
|
<var class="Ar">(J|U|E)</var></dt>
|
||||||
|
<dd>Emulator region. Without this option, DGen uses the first region mentioned
|
||||||
|
in the ROM header. It should be combined with <code class="Fl">-P</code>
|
||||||
|
for PAL mode. See below.
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>(none)</dt>
|
||||||
|
<dd>Autodetect (NTSC, 60Hz)</dd>
|
||||||
|
<dt id="P~2"><a class="permalink" href="#P~2"><code class="Fl">-P</code></a></dt>
|
||||||
|
<dd>Autodetect (PAL, 50Hz)</dd>
|
||||||
|
<dt id="R~2"><a class="permalink" href="#R~2"><code class="Fl">-R</code></a>
|
||||||
|
<var class="Ar">J</var></dt>
|
||||||
|
<dd>Japan (NTSC, 60Hz)</dd>
|
||||||
|
<dt id="R~3"><a class="permalink" href="#R~3"><code class="Fl">-R</code></a>
|
||||||
|
<var class="Ar">J</var> <code class="Fl">-P</code></dt>
|
||||||
|
<dd>Japan (PAL, 50Hz)</dd>
|
||||||
|
<dt id="R~4"><a class="permalink" href="#R~4"><code class="Fl">-R</code></a>
|
||||||
|
<var class="Ar">E</var></dt>
|
||||||
|
<dd>Europe (NTSC, 60Hz, music will certainly play too fast)</dd>
|
||||||
|
<dt id="R~5"><a class="permalink" href="#R~5"><code class="Fl">-R</code></a>
|
||||||
|
<var class="Ar">E</var> <code class="Fl">-P</code></dt>
|
||||||
|
<dd>Europe (PAL, 50Hz)</dd>
|
||||||
|
<dt id="R~6"><a class="permalink" href="#R~6"><code class="Fl">-R</code></a>
|
||||||
|
<var class="Ar">U</var></dt>
|
||||||
|
<dd>America (NTSC, 60Hz)</dd>
|
||||||
|
<dt id="R~7"><a class="permalink" href="#R~7"><code class="Fl">-R</code></a>
|
||||||
|
<var class="Ar">U</var> <code class="Fl">-P</code></dt>
|
||||||
|
<dd>Same as <code class="Fl">-R</code> <var class="Ar">E</var>
|
||||||
|
<code class="Fl">-P</code></dd>
|
||||||
|
</dl>
|
||||||
|
</dd>
|
||||||
|
<dt id="f"><a class="permalink" href="#f"><code class="Fl">-f</code></a></dt>
|
||||||
|
<dd>Run fullscreen, if possible.</dd>
|
||||||
|
<dt id="h"><a class="permalink" href="#h"><code class="Fl">-h</code></a></dt>
|
||||||
|
<dd>Show a brief synopsis of all options.</dd>
|
||||||
|
<dt id="m"><a class="permalink" href="#m"><code class="Fl">-m</code></a></dt>
|
||||||
|
<dd>MinGW only. This option prevents DGen from detaching from its control
|
||||||
|
console.</dd>
|
||||||
|
<dt id="v"><a class="permalink" href="#v"><code class="Fl">-v</code></a></dt>
|
||||||
|
<dd>Show the version number, and exit.</dd>
|
||||||
|
<dt id="D"><a class="permalink" href="#D"><code class="Fl">-D</code></a>
|
||||||
|
<var class="Ar">DEMONAME</var></dt>
|
||||||
|
<dd>Play back a demo recorded with the <code class="Fl">-d</code> option.</dd>
|
||||||
|
<dt id="d"><a class="permalink" href="#d"><code class="Fl">-d</code></a>
|
||||||
|
<var class="Ar">DEMONAME</var></dt>
|
||||||
|
<dd>Record a demo of the program running, which can be later replayed with the
|
||||||
|
<code class="Fl">-D</code> switch.</dd>
|
||||||
|
<dt id="n"><a class="permalink" href="#n"><code class="Fl">-n</code></a>
|
||||||
|
<var class="Ar">USEC</var></dt>
|
||||||
|
<dd>Sleep for a number of microseconds after every frame, to give time to
|
||||||
|
other processes.</dd>
|
||||||
|
<dt id="p"><a class="permalink" href="#p"><code class="Fl">-p</code></a>
|
||||||
|
<var class="Ar">CODE,CODE...</var></dt>
|
||||||
|
<dd>Modify the ROM image in memory, using Game Genie or Hex style codes. Game
|
||||||
|
Genie codes are of the form <var class="Ar">ABCD-EFGH</var> and Hex codes
|
||||||
|
are in the form <var class="Ar">123456:ABCD</var>. To specify more than
|
||||||
|
one code, separate them with commas (do <var class="Ar">not</var> use
|
||||||
|
spaces).</dd>
|
||||||
|
<dt id="r"><a class="permalink" href="#r"><code class="Fl">-r</code></a>
|
||||||
|
<var class="Ar">RCFILE</var></dt>
|
||||||
|
<dd>Parse another rc file after $HOME/.dgen/dgenrc. Values in the specified
|
||||||
|
file override those in the preceding files.</dd>
|
||||||
|
<dt id="X"><a class="permalink" href="#X"><code class="Fl">-X</code></a>
|
||||||
|
<var class="Ar">XFACT</var></dt>
|
||||||
|
<dd>Scale the window XFACT times in the X direction. XFACT must be a positive
|
||||||
|
integer.</dd>
|
||||||
|
<dt id="Y"><a class="permalink" href="#Y"><code class="Fl">-Y</code></a>
|
||||||
|
<var class="Ar">YFACT</var></dt>
|
||||||
|
<dd>Scale the window YFACT times in the Y direction. YFACT must be a positive
|
||||||
|
integer.</dd>
|
||||||
|
<dt id="S"><a class="permalink" href="#S"><code class="Fl">-S</code></a>
|
||||||
|
<var class="Ar">FACT</var></dt>
|
||||||
|
<dd>Scale the window FACT times in both directions. FACT must be a positive
|
||||||
|
integer.</dd>
|
||||||
|
<dt id="g"><a class="permalink" href="#g"><code class="Fl">-g</code></a>
|
||||||
|
<var class="Ar">(0|1)</var></dt>
|
||||||
|
<dd>Enable/disable OpenGL (if compiled-in).</dd>
|
||||||
|
<dt id="G"><a class="permalink" href="#G"><code class="Fl">-G</code></a>
|
||||||
|
<var class="Ar">XxY</var></dt>
|
||||||
|
<dd>Desired window size (e.g. 640x480, 800x600, etc.)</dd>
|
||||||
|
<dt id="s"><a class="permalink" href="#s"><code class="Fl">-s</code></a>
|
||||||
|
<var class="Ar">SLOT</var></dt>
|
||||||
|
<dd>Load the saved state from the given slot at startup (0-9)</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="INTERACTIVE_PROMPT"><a class="permalink" href="#INTERACTIVE_PROMPT">INTERACTIVE
|
||||||
|
PROMPT</a></h1>
|
||||||
|
<p class="Pp">A minimalist interactive prompt inspired from
|
||||||
|
<a class="Xr">vi(1)</a> can be used to perform various operations described
|
||||||
|
below. It is triggered by pressing colon (:), the default key. Command-line
|
||||||
|
editing, history and completion are supported.</p>
|
||||||
|
<section class="Ss">
|
||||||
|
<h2 class="Ss" id="Commands"><a class="permalink" href="#Commands">Commands</a></h2>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>{quit, exit, q}</dt>
|
||||||
|
<dd>Quit, or load the next <var class="Ar">romname</var> from command-line, if
|
||||||
|
any.</dd>
|
||||||
|
<dt>{load, open, plug, o} <var class="Ar">filename</var></dt>
|
||||||
|
<dd>Load a given ROM <var class="Ar">filename</var>.</dd>
|
||||||
|
<dt>{unload, close, unplug}</dt>
|
||||||
|
<dd>Unload the current ROM.</dd>
|
||||||
|
<dt>config_load <var class="Ar">filename</var></dt>
|
||||||
|
<dd>Load configuration from file <var class="Ar">filename</var>.</dd>
|
||||||
|
<dt>config_save <var class="Ar">filename</var></dt>
|
||||||
|
<dd>Save current configuration to file <var class="Ar">filename</var>.</dd>
|
||||||
|
<dt>reset</dt>
|
||||||
|
<dd>Genesis reset.</dd>
|
||||||
|
<dt>{ctv_push, ctv_pop, ctv_none}</dt>
|
||||||
|
<dd>Manage the stack of Crap TV filters (if compiled-in).</dd>
|
||||||
|
<dt>calibrate <var class="Ar">number</var></dt>
|
||||||
|
<dd>Interactive calibration of the specified gamepad (1 or 2). If
|
||||||
|
<var class="Ar">number</var> isn't specified, default to 1.</dd>
|
||||||
|
<dt>unbind <var class="Ar">binding [...]</var></dt>
|
||||||
|
<dd>Remove specified bindings (variables prefixed with "bind_"). See
|
||||||
|
<a class="Xr">dgenrc(5)</a> for more information about them.</dd>
|
||||||
|
<dt>vgmdump start <var class="Ar">filename</var></dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>vgmdump stop</dt>
|
||||||
|
<dd>Manages VGM dumping/logging. If the second argument is
|
||||||
|
<var class="Ar">start</var> VGM dumping will be started at the path
|
||||||
|
specified by the third argument. If the second argument is
|
||||||
|
<var class="Ar">stop</var> VGM dumping will be stopped and the dump
|
||||||
|
finalized.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Ss">
|
||||||
|
<h2 class="Ss" id="Variables"><a class="permalink" href="#Variables">Variables</a></h2>
|
||||||
|
<p class="Pp">All configuration variables from <a class="Xr">dgenrc(5)</a> can
|
||||||
|
be displayed and modified interactively, with immediate effect.</p>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>{int_name, bool_name, key_name, joy_name, ...} {value}</dt>
|
||||||
|
<dd>Affect <var class="Ar">value</var> to variable
|
||||||
|
<var class="Ar">name</var>.</dd>
|
||||||
|
<dt>{int_name, bool_name, key_name, joy_name, ...}</dt>
|
||||||
|
<dd>Display current value for variable <var class="Ar">name</var>.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
|
||||||
|
<dl class="Bl-tag Bl-compact">
|
||||||
|
<dt><span class="Pa">$HOME/.dgen/dgenrc</span></dt>
|
||||||
|
<dd>Contains user settings for the emulator.</dd>
|
||||||
|
<dt><span class="Pa">$HOME/.dgen/dgenrc.auto</span></dt>
|
||||||
|
<dd>Generated file containing saved user settings.</dd>
|
||||||
|
<dt><span class="Pa">$HOME/.dgen/saves/*</span></dt>
|
||||||
|
<dd>Save states generated by the emulator.</dd>
|
||||||
|
<dt><span class="Pa">$HOME/.dgen/ram/*</span></dt>
|
||||||
|
<dd>Battery-backup RAM images, generated by the emulator for ROMs with save
|
||||||
|
RAM.</dd>
|
||||||
|
<dt><span class="Pa">$HOME/.dgen/screenshots/*</span></dt>
|
||||||
|
<dd>Screenshots are generated there.</dd>
|
||||||
|
<dt><span class="Pa">$HOME/.dgen/roms/*</span></dt>
|
||||||
|
<dd>ROMs default search path.</dd>
|
||||||
|
<dt><span class="Pa">$HOME/.dgen/demos/*</span></dt>
|
||||||
|
<dd>Demos default search path.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
|
||||||
|
ALSO</a></h1>
|
||||||
|
<p class="Pp"><a class="Xr">gzip(1)</a>, <a class="Xr">bzip2(1)</a>,
|
||||||
|
<a class="Xr">zip(1)</a>, <a class="Xr">dgenrc(5)</a></p>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
|
||||||
|
<p class="Pp">This manual page was written by <span class="An">Joe Groff</span>
|
||||||
|
⟨joe@pknet.com⟩.
|
||||||
|
<br/>
|
||||||
|
<span class="An">Updated by zamaz</span>
|
||||||
|
⟨zamaz@users.sourceforge.net⟩.</p>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
|
||||||
|
<p class="Pp">There are known emulation bugs, see BUGS in DGen source
|
||||||
|
package.</p>
|
||||||
|
<p class="Pp">
|
||||||
|
<br/>
|
||||||
|
<span class="An">Report bugs to</span>
|
||||||
|
⟨http://sourceforge.net/projects/dgen/⟩.</p>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
<table class="foot">
|
||||||
|
<tr>
|
||||||
|
<td class="foot-date">July 26, 2014</td>
|
||||||
|
<td class="foot-os">Linux 6.6.9-arch1-1</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
25
programs/emulator/dgen-sdl-1.33/dgen_tobin.1
Normal file
25
programs/emulator/dgen-sdl-1.33/dgen_tobin.1
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
.Dd October 28, 2011
|
||||||
|
.Dt DGEN 1
|
||||||
|
.Sh NAME
|
||||||
|
.Nm dgen_tobin
|
||||||
|
.Nd Convert SMD-format Genesis/Mega Drive image to raw (BIN) format
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.Nm dgen_tobin
|
||||||
|
.Ar FROMSMD
|
||||||
|
.Ar TOBIN
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The ROM image
|
||||||
|
.Ar FROMSMD
|
||||||
|
is converted into a raw image, as seen by the Genesis/Mega Drive console
|
||||||
|
itself. The raw image is written into
|
||||||
|
.Ar TOBIN .
|
||||||
|
If compiled with libarchive support and
|
||||||
|
.Ar FROMSMD
|
||||||
|
is compressed in a known format, it will also be transparently decompressed.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr dgen 1 ,
|
||||||
|
.Xr libarchive 3
|
||||||
|
.Sh AUTHORS
|
||||||
|
This manual page was written by
|
||||||
|
.An Joe Groff Aq joe@pknet.com .
|
||||||
|
.An Updated by zamaz Aq zamaz@users.sourceforge.net .
|
@ -6,10 +6,10 @@
|
|||||||
.Nd file containing settings for
|
.Nd file containing settings for
|
||||||
.Xr dgen 1
|
.Xr dgen 1
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
/tmp0/1/.dgen/dgenrc
|
$HOME/.dgen/dgenrc
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
The file
|
The file
|
||||||
.Pa /tmp0/1/.dgen/dgenrc
|
.Pa $HOME/.dgen/dgenrc
|
||||||
is parsed by
|
is parsed by
|
||||||
.Xr dgen 1
|
.Xr dgen 1
|
||||||
when the emuator is started. It is used to set controller keys, as well as other
|
when the emuator is started. It is used to set controller keys, as well as other
|
615
programs/emulator/dgen-sdl-1.33/dgenrc.html
Normal file
615
programs/emulator/dgen-sdl-1.33/dgenrc.html
Normal file
@ -0,0 +1,615 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||||
|
<style>
|
||||||
|
table.head, table.foot { width: 100%; }
|
||||||
|
td.head-rtitle, td.foot-os { text-align: right; }
|
||||||
|
td.head-vol { text-align: center; }
|
||||||
|
.Nd, .Bf, .Op { display: inline; }
|
||||||
|
.Pa, .Ad { font-style: italic; }
|
||||||
|
.Ms { font-weight: bold; }
|
||||||
|
.Bl-diag > dt { font-weight: bold; }
|
||||||
|
code.Nm, .Fl, .Cm, .Ic, code.In, .Fd, .Fn, .Cd { font-weight: bold;
|
||||||
|
font-family: inherit; }
|
||||||
|
</style>
|
||||||
|
<title>DGENRC(5)</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table class="head">
|
||||||
|
<tr>
|
||||||
|
<td class="head-ltitle">DGENRC(5)</td>
|
||||||
|
<td class="head-vol">File Formats Manual</td>
|
||||||
|
<td class="head-rtitle">DGENRC(5)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="manual-text">
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
|
||||||
|
<p class="Pp"><code class="Nm">dgenrc</code> — <span class="Nd">file
|
||||||
|
containing settings for <a class="Xr">dgen(1)</a></span></p>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
|
||||||
|
<p class="Pp">$HOME/.dgen/dgenrc</p>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
|
||||||
|
<p class="Pp">The file <span class="Pa">$HOME/.dgen/dgenrc</span> is parsed by
|
||||||
|
<a class="Xr">dgen(1)</a> when the emuator is started. It is used to set
|
||||||
|
controller keys, as well as other characteristics of the emulation. The
|
||||||
|
contents of this file may be overriden with the contents of another
|
||||||
|
similarly-formatted file, via the <code class="Fl">-r</code> commandline
|
||||||
|
switch.</p>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="FILE_FORMAT"><a class="permalink" href="#FILE_FORMAT">FILE
|
||||||
|
FORMAT</a></h1>
|
||||||
|
<p class="Pp">Each rc file consists of an unlimited number of lines, which each
|
||||||
|
have the format 'fieldname = value'. A line may also be a comment, if it
|
||||||
|
begins with the hash mark (#) character.</p>
|
||||||
|
<p class="Pp">Each <var class="Ar">fieldname</var> is prepended by a name, which
|
||||||
|
identifies the type of this field:</p>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt><var class="Ar">key_*</var></dt>
|
||||||
|
<dd>A key value. May be set to a key identifier listed in the
|
||||||
|
<a class="Sx" href="#KEY_IDENTIFIERS">KEY IDENTIFIERS</a> section
|
||||||
|
below.</dd>
|
||||||
|
<dt><var class="Ar">joy_*</var></dt>
|
||||||
|
<dd>A joystick/joypad value. May be set to a joystick identifier listed in the
|
||||||
|
<a class="Sx" href="#JOYSTICK_IDENTIFIERS">JOYSTICK IDENTIFIERS</a>
|
||||||
|
section below.</dd>
|
||||||
|
<dt><var class="Ar">mou_*</var></dt>
|
||||||
|
<dd>A mouse action. May be set to a mouse identifier listed in the
|
||||||
|
<a class="Sx" href="#MOUSE_IDENTIFIERS">MOUSE IDENTIFIERS</a> section
|
||||||
|
below.</dd>
|
||||||
|
<dt><var class="Ar">bool_*</var></dt>
|
||||||
|
<dd>A boolean value. "false", "no", and "0"
|
||||||
|
values are taken as false, while "true", "yes", and
|
||||||
|
any number except 0 are taken as true.</dd>
|
||||||
|
<dt><var class="Ar">int_*</var></dt>
|
||||||
|
<dd>An integer value, greater than or equal to 0.</dd>
|
||||||
|
<dt><var class="Ar">str_*</var></dt>
|
||||||
|
<dd>A string value, can be empty.</dd>
|
||||||
|
</dl>
|
||||||
|
<p class="Pp">Some fields take special value sets, which are addressed in their
|
||||||
|
respective sections. None of the field names or values are
|
||||||
|
case-sensitive.</p>
|
||||||
|
<p class="Pp">The fields fall under a few basic groups. They are listed below,
|
||||||
|
with their default values in brackets ([]):</p>
|
||||||
|
<p class="Pp">All of them can be modified interactively from the prompt, as
|
||||||
|
described in <a class="Xr">dgen(1)</a>.</p>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="CONTROLLERS"><a class="permalink" href="#CONTROLLERS">CONTROLLERS</a></h1>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>key_pad1_up [up]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_down [down]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_left [left]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_right [right]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_a [a]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_b [s]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_c [d]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_x [q]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_y [w]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_z [e]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_mode [backspace]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_pad1_start [return]</dt>
|
||||||
|
<dd>Map keys to the first Genesis controller. Each of these fields has a
|
||||||
|
corresponding "key_pad2" field, to map to the second
|
||||||
|
controller.</dd>
|
||||||
|
<dt>joy_pad1_up [joystick0-axis1-min]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_down [joystick0-axis1-max]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_left [joystick0-axis0-min]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_right [joystick0-axis0-max]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_a [joystick0-button0]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_b [joystick0-button3]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_c [joystick0-button1]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_x [joystick0-button6]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_y [joystick0-button4]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_z [joystick0-button5]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_mode [joystick0-button9]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_pad1_start [joystick0-button8]</dt>
|
||||||
|
<dd>Map joystick/joypad buttons to the first Genesis controller. Each of these
|
||||||
|
fields has a corresponding "joy_pad2" field, to map to the
|
||||||
|
second controller.</dd>
|
||||||
|
<dt>bool_joystick [true]</dt>
|
||||||
|
<dd>Use joysticks to emulate the controllers. Note that the keyboard keys will
|
||||||
|
still work if this value is set. This field is only available if you have
|
||||||
|
joystick support enabled.</dd>
|
||||||
|
<dt>int_mouse_delay [50]</dt>
|
||||||
|
<dd>Number of milliseconds to wait after the last mouse motion event to
|
||||||
|
release buttons bound to such events.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="USER-DEFINED_BINDINGS"><a class="permalink" href="#USER-DEFINED_BINDINGS">USER-DEFINED
|
||||||
|
BINDINGS</a></h1>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>bind_{keysym} <var class="Ar">action</var></dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>bind_{joypad} <var class="Ar">action</var></dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>bind_{mouse} <var class="Ar">action</var></dt>
|
||||||
|
<dd>Defines a new keyboard, joystick/joypad or mouse binding to an arbitrary
|
||||||
|
action. These variables use the <var class="Ar">keysym</var> format as
|
||||||
|
defined in <a class="Sx" href="#KEY_IDENTIFIERS">KEY IDENTIFIERS</a>, the
|
||||||
|
<var class="Ar">joypad</var> format as defined in
|
||||||
|
<a class="Sx" href="#JOYSTICK_IDENTIFIERS">JOYSTICK IDENTIFIERS</a>, or
|
||||||
|
the <var class="Ar">mouse</var> format as defined in
|
||||||
|
<a class="Sx" href="#MOUSE_IDENTIFIERS">MOUSE IDENTIFIERS</a>. When
|
||||||
|
<var class="Ar">action</var> is prefixed with "key_",
|
||||||
|
"joy_" or "mou_", it becomes an alias to the
|
||||||
|
corresponding variable in
|
||||||
|
<a class="Sx" href="#CONTROLLERS">CONTROLLERS</a>. Otherwise, it is
|
||||||
|
interpreted as if entered at the prompt, and can be used to modify
|
||||||
|
variables or execute commands (see <a class="Xr">dgenrc(5)</a> for more
|
||||||
|
information). No bindings are defined by default.</dd>
|
||||||
|
<dt>bind_"{keysym|joypad|mouse} [{keysym|joypad|mouse} [...]]"
|
||||||
|
<var class="Ar">action</var></dt>
|
||||||
|
<dd>Alternate syntax that supports combining several identifiers to perform
|
||||||
|
<var class="Ar">action</var>. Controller types can be mixed. Identifiers
|
||||||
|
are separated by spaces. To avoid syntax errors, spaces must be properly
|
||||||
|
escaped or quoted.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="AUDIO"><a class="permalink" href="#AUDIO">AUDIO</a></h1>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>bool_sound [true]</dt>
|
||||||
|
<dd>Enable the sound subsystem.</dd>
|
||||||
|
<dt>int_soundrate [44100]</dt>
|
||||||
|
<dd>Sound frequency to play at, in hertz (Hz).</dd>
|
||||||
|
<dt>int_soundsegs [8]</dt>
|
||||||
|
<dd>Number of sound segments to use for sound buffering. Lower values
|
||||||
|
guarantee low latency. Increment this only if the sound becomes
|
||||||
|
choppy.</dd>
|
||||||
|
<dt>int_soundsamples [0]</dt>
|
||||||
|
<dd>Size of the system sound buffer, in samples (samples are the sound unit,
|
||||||
|
sound rate is how many of them are played every second). Specifying 0
|
||||||
|
automatically choses the safest value. If you experience sound issues
|
||||||
|
int_soundsegs is unable to solve, try to change this. Increasing it will
|
||||||
|
cause noticeable audio lag (it is unfortunately often required on slower
|
||||||
|
machines).</dd>
|
||||||
|
<dt>int_volume [100]</dt>
|
||||||
|
<dd>Volume level, in percent. Values above 100 cause distorsion.</dd>
|
||||||
|
<dt>key_volume_inc [=]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>key_volume_dec [-]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_volume_inc []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_volume_dec []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_volume_inc []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_volume_dec []</dt>
|
||||||
|
<dd>Bindings for volume control.</dd>
|
||||||
|
<dt>bool_mjazz [false]</dt>
|
||||||
|
<dd>MJazz option - puts 2 more FM chips in the Megadrive for a sort of 22
|
||||||
|
channel sound boost. Can sound good. Slows things down a lot.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="VIDEO"><a class="permalink" href="#VIDEO">VIDEO</a></h1>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>int_depth [0]</dt>
|
||||||
|
<dd>Color depth (bits per pixel). Allowed values are 0 (automatic), 8, 15, 16,
|
||||||
|
24 and 32. Ignored in OpenGL mode.</dd>
|
||||||
|
<dt>int_width [-1]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>int_height [-1]</dt>
|
||||||
|
<dd>Desired window width and height.</dd>
|
||||||
|
<dt>bool_opengl [true]</dt>
|
||||||
|
<dd>Use the OpenGL renderer, if it is available.</dd>
|
||||||
|
<dt>bool_opengl_stretch [true]</dt>
|
||||||
|
<dd>Let OpenGL stretch the screen.</dd>
|
||||||
|
<dt>bool_opengl_linear [true]</dt>
|
||||||
|
<dd>Use GL_LINEAR for textures filtering instead of GL_NEAREST.</dd>
|
||||||
|
<dt>bool_opengl_32bit [true]</dt>
|
||||||
|
<dd>Use 32 bit textures. They require more memory but are usually faster than
|
||||||
|
16 bit textures.</dd>
|
||||||
|
<dt>bool_opengl_square [false]</dt>
|
||||||
|
<dd>Use square textures. Wastes a lot of memory but may solve OpenGL
|
||||||
|
initialization failures.</dd>
|
||||||
|
<dt>bool_fullscreen [false]</dt>
|
||||||
|
<dd>Try to run fullscreen, if possible.</dd>
|
||||||
|
<dt>int_scale [-1]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>int_scale_x [-1]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>int_scale_y [-1]</dt>
|
||||||
|
<dd>Amount by which to scale the rendered screen from the default resolution.
|
||||||
|
See scaling filters.</dd>
|
||||||
|
<dt>bool_aspect [true]</dt>
|
||||||
|
<dd>Retain original aspect ratio when resizing window.</dd>
|
||||||
|
<dt>key_fullscreen_toggle [alt-enter]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_fullscreen_toggle []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_fullscreen_toggle []</dt>
|
||||||
|
<dd>Button to toggle fullscreen mode (this may do nothing if SDL doesn't
|
||||||
|
support fullscreen toggling on your platform.)</dd>
|
||||||
|
<dt>int_info_height [-1]</dt>
|
||||||
|
<dd>Height of the text area at the bottom of the screen, in pixels. This also
|
||||||
|
affects the font size. Values smaller than the minimum font size make DGen
|
||||||
|
redirect text to stdout instead. The default value of -1 makes DGen choose
|
||||||
|
the proper height.</dd>
|
||||||
|
<dt>bool_fps [false]</dt>
|
||||||
|
<dd>Display the current number of frames per second.</dd>
|
||||||
|
<dt>bool_buttons [false]</dt>
|
||||||
|
<dd>Display pressed buttons. Can be used to help configuring them.</dd>
|
||||||
|
<dt>bool_swab [false]</dt>
|
||||||
|
<dd>Swap bytes in the video output. Sometimes useful when video output is
|
||||||
|
located on a different system. This is implemented as a CTV filter which
|
||||||
|
must be compiled-in to work.</dd>
|
||||||
|
<dt>bool_doublebuffer [true]</dt>
|
||||||
|
<dd>Toggle double buffering. Enabling this should prevent screen tearing from
|
||||||
|
happening. Disabling this may improve the number of displayed frames per
|
||||||
|
second on some systems.</dd>
|
||||||
|
<dt>bool_screen_thread [false]</dt>
|
||||||
|
<dd>When enabled, a separate thread is created to offload the displaying of
|
||||||
|
frames. This is only useful on slower machines where flipping video
|
||||||
|
buffers takes time, especially when V-sync is enabled and doing so blocks
|
||||||
|
until the next frame without consuming CPU time (sometimes the case when
|
||||||
|
bool_doublebuffer is enabled). This currently has no effect when OpenGL is
|
||||||
|
enabled and only works if multi-threading support is compiled-in.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="SAVE_STATES"><a class="permalink" href="#SAVE_STATES">SAVE
|
||||||
|
STATES</a></h1>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>key_slot_X [X]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_slot_X []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_slot_X []</dt>
|
||||||
|
<dd>Sets the current save-state slot to number X.</dd>
|
||||||
|
<dt>key_slot_next [f8]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_slot_next []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_slot_next []</dt>
|
||||||
|
<dd>Switch to the next save-slot.</dd>
|
||||||
|
<dt>key_slot_prev [f7]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_slot_prev []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_slot_prev []</dt>
|
||||||
|
<dd>Switch to the previous save-slot.</dd>
|
||||||
|
<dt>key_save [f2]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_save []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_save []</dt>
|
||||||
|
<dd>Saves state to the current slot.</dd>
|
||||||
|
<dt>key_load [f3]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_load []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_load []</dt>
|
||||||
|
<dd>Loads state from the current slot.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="MISCELLANEOUS_KEYS"><a class="permalink" href="#MISCELLANEOUS_KEYS">MISCELLANEOUS
|
||||||
|
KEYS</a></h1>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>key_fix_checksum [f1]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_fix_checksum []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_fix_checksum []</dt>
|
||||||
|
<dd>Fixes the checksum value. Some older games will freeze with a red screen
|
||||||
|
if the ROM has been hacked or modified with Game Genie codes. If it does,
|
||||||
|
pressing this, and resetting should fix the problem.</dd>
|
||||||
|
<dt>key_quit [escape]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_quit []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_quit []</dt>
|
||||||
|
<dd>Exit DGen or switch to the next ROM on the command-line.</dd>
|
||||||
|
<dt>key_craptv_toggle [f5]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_craptv_toggle []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_craptv_toggle []</dt>
|
||||||
|
<dd>Toggles Crap-TV image filters. These filters aren't available in 8 bpp
|
||||||
|
mode.</dd>
|
||||||
|
<dt>key_scaling_toggle [f6]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_scaling_toggle []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_scaling_toggle []</dt>
|
||||||
|
<dd>Toggles scaling algorithms. See scaling_startup below.</dd>
|
||||||
|
<dt>key_reset [tab]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_reset []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_reset []</dt>
|
||||||
|
<dd>Restart the Genesis emulation.</dd>
|
||||||
|
<dt>key_cpu_toggle [f11]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_cpu_toggle []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_cpu_toggle []</dt>
|
||||||
|
<dd>Switch CPU emulators. The x86 assembly CPU emulator StarScream is fast,
|
||||||
|
but has glitches which affect a few games. Switching to the slower Musashi
|
||||||
|
core will fix these problems, at a speed penalty.</dd>
|
||||||
|
<dt>key_z80_toggle [f10]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_z80_toggle []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_z80_toggle []</dt>
|
||||||
|
<dd>Switch Z80 emulators. MZ80 is a bit faster than CZ80, particularly in its
|
||||||
|
assembly version (only available for x86), but CZ80 works with more games.
|
||||||
|
This key can also disable Z80 emulation.</dd>
|
||||||
|
<dt>key_stop [z]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_stop []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_stop []</dt>
|
||||||
|
<dd>Pause emulation, so you can concentrate on real life for a few seconds.
|
||||||
|
:)</dd>
|
||||||
|
<dt>key_game_genie [f9]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_game_genie []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_game_genie []</dt>
|
||||||
|
<dd>Enter a Game Genie or Hex code. This key also works in stopped mode.</dd>
|
||||||
|
<dt>key_screenshot [f12]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_screenshot []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_screenshot []</dt>
|
||||||
|
<dd>Take a screenshot. Not available in 8 bpp mode.</dd>
|
||||||
|
<dt>key_prompt [:]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_prompt []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_prompt []</dt>
|
||||||
|
<dd>Pause emulation and display interactive prompt. Also works in stopped
|
||||||
|
mode.</dd>
|
||||||
|
<dt>key_debug_enter [`]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>joy_debug_enter []</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>mou_debug_enter []</dt>
|
||||||
|
<dd>Break into the debugger. Only meaningful if debugger support is
|
||||||
|
compiled-in.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="PREFERENCES"><a class="permalink" href="#PREFERENCES">PREFERENCES</a></h1>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>int_hz [60]</dt>
|
||||||
|
<dd>Video refresh rate. The default is 60 as in NTSC consoles.</dd>
|
||||||
|
<dt>bool_pal [false]</dt>
|
||||||
|
<dd>When true, a PAL console is emulated. This should be used in combination
|
||||||
|
with int_hz above for 50Hz emulation.</dd>
|
||||||
|
<dt>region [' ']</dt>
|
||||||
|
<dd>U for America (NTSC), E for Europe (PAL), J for Japan (NTSC), X for Japan
|
||||||
|
(PAL), or empty space for autodetection (the default). Overrides bool_pal
|
||||||
|
and int_hz.</dd>
|
||||||
|
<dt>str_region_order [JUEX]</dt>
|
||||||
|
<dd>Regions DGen is allowed to emulate when autodetection is enabled, ordered
|
||||||
|
by preference.</dd>
|
||||||
|
<dt>emu_m68k_startup [musa]</dt>
|
||||||
|
<dd>Useful when both Musashi and StarScream are compiled-in. This option
|
||||||
|
selects the default emulator to use ("musa" for Musashi,
|
||||||
|
"star" for StarScream, "none" for neither). See
|
||||||
|
key_cpu_toggle.</dd>
|
||||||
|
<dt>emu_z80_startup [cz80]</dt>
|
||||||
|
<dd>Useful when both CZ80 and MZ80 are compiled-in. This option selects the
|
||||||
|
default emulator to use ("cz80", "mz80" or
|
||||||
|
"none", if you want to disable it altogether). See
|
||||||
|
key_z80_toggle.</dd>
|
||||||
|
<dt>bool_autoload [false]</dt>
|
||||||
|
<dd>Automatically load the saved state from slot 0 when DGen starts.</dd>
|
||||||
|
<dt>bool_autosave [false]</dt>
|
||||||
|
<dd>Automatically save the saved state to slot 0 upon exit. Setting both of
|
||||||
|
these fields true, you can exit DGen, and automatically start a game where
|
||||||
|
you left off when you start it again.</dd>
|
||||||
|
<dt>bool_autoconf [true]</dt>
|
||||||
|
<dd>Automatically dump the current configuration to dgenrc.auto before
|
||||||
|
exiting. This file is always loaded before dgenrc at startup.</dd>
|
||||||
|
<dt>bool_frameskip [true]</dt>
|
||||||
|
<dd>Automatically skip frames, when it is necessary to maintain proper
|
||||||
|
emulation speed. You may want to disable sound or set int_nice to a
|
||||||
|
nonzero value when setting this to false.</dd>
|
||||||
|
<dt>int_nice [0]</dt>
|
||||||
|
<dd>If set to a non-zero value, DGen will call <a class="Xr">usleep(3)</a>
|
||||||
|
with the specified parameter after rendering each frame. This will slow
|
||||||
|
the program down (if it is running too fast on your computer), and allow
|
||||||
|
the operating system to reclaim some CPU time.</dd>
|
||||||
|
<dt>ctv_craptv_startup [off]</dt>
|
||||||
|
<dd>CTV filter to use by default. Available filters are "blur",
|
||||||
|
"scanline", "interlace" and "swab".</dd>
|
||||||
|
<dt>scaling_startup [stretch]</dt>
|
||||||
|
<dd>Scaler to use when display resolution is larger than original screen.
|
||||||
|
Available filters are "stretch", "scale",
|
||||||
|
"hqx", "hqx stretch", "scale2x",
|
||||||
|
"scale2x stretch" and "none".</dd>
|
||||||
|
<dt>bool_show_carthead [false]</dt>
|
||||||
|
<dd>Show cartridge header info at startup.</dd>
|
||||||
|
<dt>bool_raw_screenshots [false]</dt>
|
||||||
|
<dd>Generate unfiltered screenshots.</dd>
|
||||||
|
<dt>str_rom_path ["roms"]</dt>
|
||||||
|
<dd>Directory where DGen should look for ROMs by default. It's relative to
|
||||||
|
DGen's home directory, unless an absolute path is provided.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="DEBUGGING"><a class="permalink" href="#DEBUGGING">DEBUGGING</a></h1>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>bool_vdp_hide_plane_a [false]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>bool_vdp_hide_plane_b [false]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>bool_vdp_hide_plane_w [false]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>bool_vdp_hide_sprites [false]</dt>
|
||||||
|
<dd>Hide various planes during frame rendering. Require VDP debugging to be
|
||||||
|
compiled-in.</dd>
|
||||||
|
<dt>bool_vdp_sprites_boxing [false]</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>int_vdp_sprites_boxing_fg [0xffff00] (yellow)</dt>
|
||||||
|
<dd style="width: auto;"> </dd>
|
||||||
|
<dt>int_vdp_sprites_boxing_bg [0x00ff00] (green)</dt>
|
||||||
|
<dd>Toggle sprites boxing and configure its colors. Require VDP debugging to
|
||||||
|
be compiled-in. "fg" is for sprites with the high priority bit
|
||||||
|
set, "bg" is for the others. Color format is 0xRRGGBB.</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
|
||||||
|
<p class="Pp">See the file "sample.dgenrc" in the DGen/SDL
|
||||||
|
distribution.</p>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="KEY_IDENTIFIERS"><a class="permalink" href="#KEY_IDENTIFIERS">KEY
|
||||||
|
IDENTIFIERS</a></h1>
|
||||||
|
<p class="Pp">A key identifier can have the prefixes "shift-",
|
||||||
|
"ctrl-", "alt-" and "meta-", or any
|
||||||
|
combination thereof, to require that the specified modifier be pressed in
|
||||||
|
combination with the key. For example, the identifier "alt-enter"
|
||||||
|
would correspond to holding down the Alt key while pressing Enter.</p>
|
||||||
|
<p class="Pp">The "shift-" modifier only works with keys that don't
|
||||||
|
generate symbols (such as arrow keys). Otherwise their UTF-8 representation
|
||||||
|
must be used directly.</p>
|
||||||
|
<p class="Pp">The numbers "0" through "9" ("kp_0"
|
||||||
|
through "kp_9" for the numeric keypad), letters "A"
|
||||||
|
through "Z", and function keys "F1" through
|
||||||
|
"F12" map to their key equivalents. In addition, the following
|
||||||
|
identifiers map to their similarly-labeled key counterparts. Identifiers on
|
||||||
|
the same line map to the same key:</p>
|
||||||
|
<div class="Bd Pp Bd-indent Li">
|
||||||
|
<pre>escape
|
||||||
|
backspace
|
||||||
|
tab
|
||||||
|
capslock caps_lock
|
||||||
|
lshift shift_l
|
||||||
|
rshift shift_r
|
||||||
|
lctrl ctrl_l
|
||||||
|
lmeta meta_l
|
||||||
|
lalt alt_l
|
||||||
|
ralt alt_r
|
||||||
|
rmeta meta_r
|
||||||
|
rctrl ctrl_r
|
||||||
|
return enter
|
||||||
|
space
|
||||||
|
|
||||||
|
scrollock scroll_lock
|
||||||
|
numlock num_lock
|
||||||
|
|
||||||
|
insert
|
||||||
|
home
|
||||||
|
page_up pageup
|
||||||
|
delete
|
||||||
|
end
|
||||||
|
page_down pagedown
|
||||||
|
left
|
||||||
|
right
|
||||||
|
up
|
||||||
|
down
|
||||||
|
|
||||||
|
kp_home
|
||||||
|
kp_up
|
||||||
|
kp_pageup kp_page_up
|
||||||
|
kp_left
|
||||||
|
kp_right
|
||||||
|
kp_end
|
||||||
|
kp_down
|
||||||
|
kp_pagedown kp_page_down
|
||||||
|
kp_insert
|
||||||
|
kp_delete kp_period
|
||||||
|
|
||||||
|
kp_enter
|
||||||
|
kp_divide
|
||||||
|
kp_minus
|
||||||
|
kp_multiply
|
||||||
|
kp_plus</pre>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="JOYSTICK_IDENTIFIERS"><a class="permalink" href="#JOYSTICK_IDENTIFIERS">JOYSTICK
|
||||||
|
IDENTIFIERS</a></h1>
|
||||||
|
<p class="Pp">Like key identifiers, joystick (or joypad) identifiers describe a
|
||||||
|
joystick event. Each detected joystick is numbered starting from 0. Three
|
||||||
|
different event types are supported.</p>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>Buttons: joystickX-buttonY</dt>
|
||||||
|
<dd>For joystick/joypad number X, button number Y. "button" can be
|
||||||
|
abbreviated as "b".</dd>
|
||||||
|
<dt>Axes: joystickX-axisY-min, joystickX-axisY-max</dt>
|
||||||
|
<dd>For joystick/joypad number X, axis number Y, and its position, which is
|
||||||
|
either "min" (also "n", "negative") or
|
||||||
|
"max" (also "p", "positive").
|
||||||
|
"axis" can be abbreviated as "a".</dd>
|
||||||
|
<dt>Hats: joystickX-hatY-{direction}</dt>
|
||||||
|
<dd>For joystick/joypad number X, hat number Y and direction. "hat"
|
||||||
|
can be abbreviated as "h". Possible directions are
|
||||||
|
"up", "right", "down",
|
||||||
|
"left".</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="MOUSE_IDENTIFIERS"><a class="permalink" href="#MOUSE_IDENTIFIERS">MOUSE
|
||||||
|
IDENTIFIERS</a></h1>
|
||||||
|
<p class="Pp">These identifiers describe a mouse event. Each detected mouse is
|
||||||
|
numbered starting from 0. Two different event types are supported.</p>
|
||||||
|
<dl class="Bl-tag">
|
||||||
|
<dt>Buttons: mouseX-buttonY</dt>
|
||||||
|
<dd>For mouse number X, button number Y. "button" can be abbreviated
|
||||||
|
as "b".</dd>
|
||||||
|
<dt>Motions: mouseX-{direction}</dt>
|
||||||
|
<dd>For mouse number X and direction. Possible directions are "up",
|
||||||
|
"right", "down", "left".</dd>
|
||||||
|
</dl>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
|
||||||
|
ALSO</a></h1>
|
||||||
|
<p class="Pp"><a class="Xr">dgen(1)</a></p>
|
||||||
|
</section>
|
||||||
|
<section class="Sh">
|
||||||
|
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
|
||||||
|
<p class="Pp">This manual page was written by <span class="An">Joe Groff</span>
|
||||||
|
⟨joe@pknet.com⟩.
|
||||||
|
<br/>
|
||||||
|
<span class="An">Updated by zamaz</span>
|
||||||
|
⟨zamaz@users.sourceforge.net⟩.</p>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
<table class="foot">
|
||||||
|
<tr>
|
||||||
|
<td class="foot-date">July 26, 2014</td>
|
||||||
|
<td class="foot-os">Linux 6.6.9-arch1-1</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -179,12 +179,6 @@ static char *my_index(const char *str, int chr);
|
|||||||
extern char *getenv();
|
extern char *getenv();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _KOLIBRI
|
|
||||||
char* getenv(const char *name) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int my_strlen(const char *str)
|
static int my_strlen(const char *str)
|
||||||
{
|
{
|
||||||
int n = 0;
|
int n = 0;
|
||||||
|
@ -54,9 +54,7 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _KOLIBRI
|
#ifdef _KOLIBRI
|
||||||
extern "C" {
|
|
||||||
#include <sys/ksys.h>
|
#include <sys/ksys.h>
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Number of microseconds to sustain messages
|
/// Number of microseconds to sustain messages
|
||||||
|
@ -6,9 +6,7 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifndef _KOLIBRI
|
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#endif
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#ifndef __MINGW32__
|
#ifndef __MINGW32__
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -41,11 +39,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _KOLIBRI
|
|
||||||
char* kos_dgen_userdir = "/tmp0/1";
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static const char *fopen_mode(unsigned int mode)
|
static const char *fopen_mode(unsigned int mode)
|
||||||
{
|
{
|
||||||
static const char *modes[4][2] = {
|
static const char *modes[4][2] = {
|
||||||
@ -161,6 +154,11 @@ char *dgen_userdir(char *buf, size_t *size)
|
|||||||
if ((pwd == NULL) || (pwd->pw_dir == NULL))
|
if ((pwd == NULL) || (pwd->pw_dir == NULL))
|
||||||
return NULL;
|
return NULL;
|
||||||
sz_dir = strlen(pwd->pw_dir);
|
sz_dir = strlen(pwd->pw_dir);
|
||||||
|
#elif defined _KOLIBRI
|
||||||
|
char *kos_home = getenv("HOME");
|
||||||
|
if (!kos_home)
|
||||||
|
return NULL;
|
||||||
|
sz_dir = strlen(kos_home);
|
||||||
#endif
|
#endif
|
||||||
if (buf != NULL) {
|
if (buf != NULL) {
|
||||||
sz = *size;
|
sz = *size;
|
||||||
@ -184,7 +182,7 @@ char *dgen_userdir(char *buf, size_t *size)
|
|||||||
}
|
}
|
||||||
#ifndef __MINGW32__
|
#ifndef __MINGW32__
|
||||||
#ifdef _KOLIBRI
|
#ifdef _KOLIBRI
|
||||||
strncpy(path, kos_dgen_userdir, sz_dir);
|
strncpy(path, kos_home, sz_dir);
|
||||||
#else
|
#else
|
||||||
strncpy(path, pwd->pw_dir, sz_dir);
|
strncpy(path, pwd->pw_dir, sz_dir);
|
||||||
#endif
|
#endif
|
||||||
@ -234,7 +232,10 @@ char *dgen_dir(char *buf, size_t *size, const char *sub)
|
|||||||
return NULL;
|
return NULL;
|
||||||
sz_dir = strlen(pwd->pw_dir);
|
sz_dir = strlen(pwd->pw_dir);
|
||||||
#else
|
#else
|
||||||
sz_dir = strlen(kos_dgen_userdir);
|
char *kos_home = getenv("HOME");
|
||||||
|
if (!kos_home)
|
||||||
|
return NULL;
|
||||||
|
sz_dir = strlen(kos_home);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -266,7 +267,7 @@ char *dgen_dir(char *buf, size_t *size, const char *sub)
|
|||||||
#ifndef _KOLIBRI
|
#ifndef _KOLIBRI
|
||||||
strncpy(path, pwd->pw_dir, sz_dir);
|
strncpy(path, pwd->pw_dir, sz_dir);
|
||||||
#else
|
#else
|
||||||
strncpy(path, kos_dgen_userdir, sz_dir);
|
strncpy(path, kos_home, sz_dir);
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
if (SHGetFolderPath(NULL, (CSIDL_APPDATA | CSIDL_FLAG_CREATE),
|
if (SHGetFolderPath(NULL, (CSIDL_APPDATA | CSIDL_FLAG_CREATE),
|
||||||
@ -355,12 +356,10 @@ FILE *dgen_freopen(const char *relative, const char *file, unsigned int mode,
|
|||||||
goto error;
|
goto error;
|
||||||
size = strlen(path);
|
size = strlen(path);
|
||||||
}
|
}
|
||||||
#ifndef KOLIBRI
|
|
||||||
if ((mode & (DGEN_WRITE | DGEN_APPEND)) && (path != NULL))
|
if ((mode & (DGEN_WRITE | DGEN_APPEND)) && (path != NULL))
|
||||||
mkdir(path, 0777); /* XXX make that recursive */
|
mkdir(path, 0777); /* XXX make that recursive */
|
||||||
#else
|
|
||||||
mkdir(path, 0777);
|
|
||||||
#endif
|
|
||||||
file_size = strlen(file);
|
file_size = strlen(file);
|
||||||
if ((tmp = realloc(path, (size + !!size + file_size + 1))) == NULL)
|
if ((tmp = realloc(path, (size + !!size + file_size + 1))) == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
@ -660,7 +659,6 @@ static void free_pppc(char ***pppc, size_t skip)
|
|||||||
*/
|
*/
|
||||||
static char **complete_path_simple(const char *path, size_t len)
|
static char **complete_path_simple(const char *path, size_t len)
|
||||||
{
|
{
|
||||||
#ifndef _KOLIBRI
|
|
||||||
size_t rlen;
|
size_t rlen;
|
||||||
const char *cpl;
|
const char *cpl;
|
||||||
char *root;
|
char *root;
|
||||||
@ -745,7 +743,7 @@ error:
|
|||||||
free(*(ret++));
|
free(*(ret++));
|
||||||
free(ret);
|
free(ret);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user