mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-05-09 11:51:09 +08:00
Merge pull request #2212 from Wengier/master
Support for Direct3D output on Windows SDL2 builds
This commit is contained in:
commit
a66ce7c758
37
CHANGELOG
37
CHANGELOG
@ -1,7 +1,26 @@
|
|||||||
0.83.10
|
0.83.10
|
||||||
- dynamic_x86 now handles pagefaults non-recursively,
|
- Enhanced the printer function on Windows platforms
|
||||||
which allows to use dynamic core with Windows 9x/ME
|
to allow printer names to be specified in [printer]
|
||||||
without crashes. (koolkdev)
|
section via the "device" option for direct printing
|
||||||
|
to the selected device. If it is left empty, then
|
||||||
|
Windows Print dialog will be shown, or specifying
|
||||||
|
"-" will only cause it to show once (unless the user
|
||||||
|
clicks "Cancel"). Under "Help" menu there is now a
|
||||||
|
menu option "List Printer Devices" to list printer
|
||||||
|
devices on Windows, and the parallel port LPT1 now
|
||||||
|
defaults to the printer on all platforms. (Wengier)
|
||||||
|
- The dynamic_x86 CPU core can now handle page faults
|
||||||
|
non-recursively, so you can now run the dynamic_x86
|
||||||
|
core with Windows 9x/ME without crashes, although
|
||||||
|
this may slightly decrease the performance, and it
|
||||||
|
may be disabled by setting the config option "use
|
||||||
|
dynamic core with paging on" in [cpu] section to
|
||||||
|
"false". Also fixed incorrect behavior for handling
|
||||||
|
trap flags in the dynamic core and updated the MMX
|
||||||
|
code for improved performance. (koolkdev)
|
||||||
|
- Added support for Direct3D output on Windows SDL2
|
||||||
|
builds just like Windows SDL1 builds to become the
|
||||||
|
default output in all Windows builds. (Wengier)
|
||||||
- DOSBox-X now natively supports the pixel-perfect
|
- DOSBox-X now natively supports the pixel-perfect
|
||||||
scaling! Set the option "output=openglpp" in [sdl]
|
scaling! Set the option "output=openglpp" in [sdl]
|
||||||
section of the config file to enable this output.
|
section of the config file to enable this output.
|
||||||
@ -10,11 +29,11 @@
|
|||||||
run-time. This feature was implemented by ant_222
|
run-time. This feature was implemented by ant_222
|
||||||
with some code cleanups by Wengier.
|
with some code cleanups by Wengier.
|
||||||
- Updated the Windows installer to add a page for
|
- Updated the Windows installer to add a page for
|
||||||
new users to select a video system output - the
|
new users to select a video system output to use -
|
||||||
default output (Direct3D on SDL1 builds / standard
|
the default output (Direct3D), OpenGL with pixel-
|
||||||
OpenGL on x86/x64 SDL2 builds), OpenGL output with
|
perfect scaling (openglpp or "OpenGL perfect") for
|
||||||
pixel-perfect scaling for improved image quality,
|
improved image quality, and the TrueType font (TTF)
|
||||||
and the TrueType font (TTF) output. (Wengier)
|
output for text-mode DOS applications. (Wengier)
|
||||||
- You can now supply a ZIP/7Z file as a parameter to
|
- You can now supply a ZIP/7Z file as a parameter to
|
||||||
DOSBox-X directly so that it will be mounted as C:
|
DOSBox-X directly so that it will be mounted as C:
|
||||||
drive when DOSBox-X starts. (Wengier)
|
drive when DOSBox-X starts. (Wengier)
|
||||||
@ -103,8 +122,6 @@
|
|||||||
- Fixed an issue that the DOSBox-X window size may be
|
- Fixed an issue that the DOSBox-X window size may be
|
||||||
incorrect when restoring from a maximized window in
|
incorrect when restoring from a maximized window in
|
||||||
the SDL2 builds. (Wengier)
|
the SDL2 builds. (Wengier)
|
||||||
- Fixed incorrect behavior for handling trap flags
|
|
||||||
in the dynamic core. (koolkdev)
|
|
||||||
- Fixed that the menu option "Select OpenGL (GLSL)
|
- Fixed that the menu option "Select OpenGL (GLSL)
|
||||||
shader.." not working properly sometimes. (Wengier)
|
shader.." not working properly sometimes. (Wengier)
|
||||||
- Fixed Ctrl+C not working in GNU ed. (Wengier)
|
- Fixed Ctrl+C not working in GNU ed. (Wengier)
|
||||||
|
@ -50,6 +50,6 @@ export CXXFLAGS="$new$CXXFLAGS"
|
|||||||
echo Compiling DOSBox-X
|
echo Compiling DOSBox-X
|
||||||
chmod +x configure
|
chmod +x configure
|
||||||
# FIXME: I would like MinGW builds to enable the debugger, eventually
|
# FIXME: I would like MinGW builds to enable the debugger, eventually
|
||||||
./configure --enable-core-inline --prefix=/usr --enable-sdl2 "$@" || exit 1
|
./configure --enable-core-inline --enable-d3d9 --enable-d3d-shaders --prefix=/usr --enable-sdl2 "$@" || exit 1
|
||||||
make -j3 || exit 1
|
make -j3 || exit 1
|
||||||
|
|
||||||
|
@ -441,7 +441,7 @@ case "$host" in
|
|||||||
CXXFLAGS="$CXXFLAGS -mno-ms-bitfields"
|
CXXFLAGS="$CXXFLAGS -mno-ms-bitfields"
|
||||||
if test x$have_sdl_net_h = xyes ; then
|
if test x$have_sdl_net_h = xyes ; then
|
||||||
dnl HACK: We have to put SDL_net THEN winsock libraries or else the linker can't resolve things properly
|
dnl HACK: We have to put SDL_net THEN winsock libraries or else the linker can't resolve things properly
|
||||||
LIBS="$LIBS -lSDL_net -lwsock32 -lws2_32 -liphlpapi"
|
LIBS="$LIBS -lSDL_net -lwsock32 -lws2_32 -lwinspool -liphlpapi"
|
||||||
fi
|
fi
|
||||||
dnl FEATURE: Whether to support direct parallel port passthrough
|
dnl FEATURE: Whether to support direct parallel port passthrough
|
||||||
AC_DEFINE(C_DIRECTLPT, 1, [ Define to 1 if you want parallel passthrough support (Win32, Linux).])
|
AC_DEFINE(C_DIRECTLPT, 1, [ Define to 1 if you want parallel passthrough support (Win32, Linux).])
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<category>Emulation</category>
|
<category>Emulation</category>
|
||||||
</categories>
|
</categories>
|
||||||
<releases>
|
<releases>
|
||||||
<release version="@PACKAGE_VERSION@" date="2021-1-20"/>
|
<release version="@PACKAGE_VERSION@" date="2021-1-24"/>
|
||||||
</releases>
|
</releases>
|
||||||
<screenshots>
|
<screenshots>
|
||||||
<screenshot type="default">
|
<screenshot type="default">
|
||||||
|
@ -241,10 +241,10 @@ begin
|
|||||||
else
|
else
|
||||||
PageBuild.Values[4] := True;
|
PageBuild.Values[4] := True;
|
||||||
CreateHelpButton(ScaleX(20), WizardForm.CancelButton.Top, WizardForm.CancelButton.Width, WizardForm.CancelButton.Height);
|
CreateHelpButton(ScaleX(20), WizardForm.CancelButton.Top, WizardForm.CancelButton.Width, WizardForm.CancelButton.Height);
|
||||||
msg:='DOSBox-X supports different video output systems for different purposes.' #13#13 'By default it uses the Direct3D output on the SDL1 version and the standard OpenGL output on the SDL2 version. But you may want to select the OpenGL output with pixel-perfect scaling for improved image quality (not available if you had selected an ARM build). Also, if you use text-mode DOS applications you probably want to select the TrueType font (TTF) output to make the text screen look much better.' #13#13 'This setting can be later modified in the DOSBox-X''s configuration file (dosbox-x.conf), or from DOSBox-X''s Video menu.';
|
msg:='DOSBox-X supports different video output systems for different purposes.' #13#13 'By default it uses the Direct3D output, but you may want to select the OpenGL pixel-perfect scaling output for improved image quality (not available if you had selected an ARM build). Also, if you use text-mode DOS applications you probably want to select the TrueType font (TTF) output to make the text screen look much better.' #13#13 'This setting can be later modified in the DOSBox-X''s configuration file (dosbox-x.conf), or from DOSBox-X''s Video menu.';
|
||||||
PageOutput:=CreateInputOptionPage(100, 'Video output for DOSBox-X', 'Specify the DOSBox-X video output system', msg, True, False);
|
PageOutput:=CreateInputOptionPage(100, 'Video output for DOSBox-X', 'Specify the DOSBox-X video output system', msg, True, False);
|
||||||
PageOutput.Add('Default output (SDL1: Direct3D / SDL2: OpenGL)');
|
PageOutput.Add('Default output (Direct3D)');
|
||||||
PageOutput.Add('OpenGL perfect: pixel-perfect scaling mode');
|
PageOutput.Add('OpenGL with pixel-perfect scaling');
|
||||||
PageOutput.Add('TrueType font output for text-mode applications');
|
PageOutput.Add('TrueType font output for text-mode applications');
|
||||||
PageOutput.Values[0] := True;
|
PageOutput.Values[0] := True;
|
||||||
msg:='You can specify a default DOS version for DOSBox-X to report to itself and DOS programs. This can sometimes change the feature sets of DOSBox-X. For example, selecting 7.10 as the reported DOS version will enable support for Windows-style long filenames (LFN) and FAT32 disk images (>2GB disk images) by default.' #13#13 'If you are not sure about which DOS version to report, you can also leave this unselected, then a preset DOS version will be reported (usually 5.00).' #13#13 'This setting can be later modified in the DOSBox-X''s configuration file (dosbox-x.conf).';
|
msg:='You can specify a default DOS version for DOSBox-X to report to itself and DOS programs. This can sometimes change the feature sets of DOSBox-X. For example, selecting 7.10 as the reported DOS version will enable support for Windows-style long filenames (LFN) and FAT32 disk images (>2GB disk images) by default.' #13#13 'If you are not sure about which DOS version to report, you can also leave this unselected, then a preset DOS version will be reported (usually 5.00).' #13#13 'This setting can be later modified in the DOSBox-X''s configuration file (dosbox-x.conf).';
|
||||||
@ -252,7 +252,7 @@ begin
|
|||||||
PageVer.Add('DOS version 3.30');
|
PageVer.Add('DOS version 3.30');
|
||||||
PageVer.Add('DOS version 5.00');
|
PageVer.Add('DOS version 5.00');
|
||||||
PageVer.Add('DOS version 6.22');
|
PageVer.Add('DOS version 6.22');
|
||||||
PageVer.Add('DOS version 7.10');
|
PageVer.Add('DOS version 7.10 (for LFN and FAT32 support)');
|
||||||
end;
|
end;
|
||||||
function NextButtonClick(CurPageID: Integer): Boolean;
|
function NextButtonClick(CurPageID: Integer): Boolean;
|
||||||
begin
|
begin
|
||||||
@ -321,9 +321,9 @@ begin
|
|||||||
begin
|
begin
|
||||||
Wizardform.ReadyMemo.Lines.Add('');
|
Wizardform.ReadyMemo.Lines.Add('');
|
||||||
Wizardform.ReadyMemo.Lines.Add('Video output for DOSBox-X:');
|
Wizardform.ReadyMemo.Lines.Add('Video output for DOSBox-X:');
|
||||||
msg:='Default output (SDL1: Direct3D / SDL2: OpenGL)';
|
msg:='Default output (Direct3D)';
|
||||||
if (PageOutput.Values[1]) then
|
if (PageOutput.Values[1]) then
|
||||||
msg:='OpenGL perfect: pixel-perfect scaling mode';
|
msg:='OpenGL with pixel-perfect scaling';
|
||||||
if (PageOutput.Values[2]) then
|
if (PageOutput.Values[2]) then
|
||||||
msg:='TrueType font output for text-mode applications';
|
msg:='TrueType font output for text-mode applications';
|
||||||
Wizardform.ReadyMemo.Lines.Add(' '+msg);
|
Wizardform.ReadyMemo.Lines.Add(' '+msg);
|
||||||
@ -376,6 +376,29 @@ begin
|
|||||||
if not FileExists(ExpandConstant('{app}\dosbox-x.conf')) then
|
if not FileExists(ExpandConstant('{app}\dosbox-x.conf')) then
|
||||||
begin
|
begin
|
||||||
FileCopy(ExpandConstant(refname), ExpandConstant('{app}\dosbox-x.conf'), false);
|
FileCopy(ExpandConstant(refname), ExpandConstant('{app}\dosbox-x.conf'), false);
|
||||||
|
if FileExists(ExpandConstant('{app}\dosbox-x.conf')) then
|
||||||
|
begin
|
||||||
|
FileLines := TStringList.Create;
|
||||||
|
FileLines.LoadFromFile(ExpandConstant('{app}\dosbox-x.conf'));
|
||||||
|
section := '';
|
||||||
|
for i := 0 to FileLines.Count - 1 do
|
||||||
|
begin
|
||||||
|
line := Trim(FileLines[i]);
|
||||||
|
if (Length(line)>2) and (Copy(line, 1, 1) = '[') and (Copy(line, Length(line), 1) = ']') then
|
||||||
|
section := Copy(line, 2, Length(line)-2);
|
||||||
|
if (Length(line)>0) and (Copy(line, 1, 1) <> '#') and (Copy(line, 1, 1) <> '[') and (Pos('=', line) > 1) then
|
||||||
|
begin
|
||||||
|
linetmp := Trim(Copy(line, 1, Pos('=', line) - 1));
|
||||||
|
if (CompareText(linetmp, 'printoutput') = 0) and (CompareText(section, 'printer') = 0) then
|
||||||
|
begin
|
||||||
|
linetmp := Trim(Copy(line, 1, Pos('=', line)));
|
||||||
|
FileLines[i] := linetmp+' printer';
|
||||||
|
break;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
FileLines.SaveToFile(ExpandConstant('{app}\dosbox-x.conf'));
|
||||||
|
end
|
||||||
if FileExists(ExpandConstant('{app}\dosbox-x.conf')) and (PageOutput.Values[1] or PageOutput.Values[2]) then
|
if FileExists(ExpandConstant('{app}\dosbox-x.conf')) and (PageOutput.Values[1] or PageOutput.Values[2]) then
|
||||||
begin
|
begin
|
||||||
FileLines := TStringList.Create;
|
FileLines := TStringList.Create;
|
||||||
|
@ -1452,12 +1452,12 @@ ps1audio = off
|
|||||||
ps1audiorate = 22050
|
ps1audiorate = 22050
|
||||||
|
|
||||||
[joystick]
|
[joystick]
|
||||||
# joysticktype: Type of joystick to emulate: auto (default), none,
|
# joysticktype: Type of joystick to emulate: auto (default),
|
||||||
|
# none (disables joystick emulation),
|
||||||
# 2axis (supports two joysticks),
|
# 2axis (supports two joysticks),
|
||||||
# 4axis (supports one joystick, first joystick used),
|
# 4axis (supports one joystick, first joystick used),
|
||||||
# 4axis_2 (supports one joystick, second joystick used),
|
# 4axis_2 (supports one joystick, second joystick used),
|
||||||
# fcs (Thrustmaster), ch (CH Flightstick).
|
# fcs (Thrustmaster), ch (CH Flightstick).
|
||||||
# none disables joystick emulation.
|
|
||||||
# auto chooses emulation depending on real joystick(s).
|
# auto chooses emulation depending on real joystick(s).
|
||||||
# (Remember to reset DOSBox-X's mapperfile if you saved it earlier)
|
# (Remember to reset DOSBox-X's mapperfile if you saved it earlier)
|
||||||
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
|
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
|
||||||
@ -1590,7 +1590,7 @@ joy2deadzone7+ = 0.60
|
|||||||
# Additional parameters:
|
# Additional parameters:
|
||||||
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0),
|
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0),
|
||||||
# squote to use single quotes instad of double quotes for quoted program commands.
|
# squote to use single quotes instad of double quotes for quoted program commands.
|
||||||
# shellhide to hide the command window when opening programs on the Windows system.
|
# shellhide to hide the command window when opening programs on the Windows platform.
|
||||||
# openwith:<program>: start a program to open the output file.
|
# openwith:<program>: start a program to open the output file.
|
||||||
# openerror:<program>: start a program to open the output file if an error had occurred.
|
# openerror:<program>: start a program to open the output file if an error had occurred.
|
||||||
# for directserial: realport (required), rxdelay (optional).
|
# for directserial: realport (required), rxdelay (optional).
|
||||||
@ -1609,26 +1609,26 @@ joy2deadzone7+ = 0.60
|
|||||||
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
# serial4: see serial1
|
# serial4: see serial1
|
||||||
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
#DOSBOX-X-ADV:# serial5: see serial1
|
# serial5: see serial1
|
||||||
#DOSBOX-X-ADV:# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
#DOSBOX-X-ADV:# serial6: see serial1
|
# serial6: see serial1
|
||||||
#DOSBOX-X-ADV:# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
#DOSBOX-X-ADV:# serial7: see serial1
|
# serial7: see serial1
|
||||||
#DOSBOX-X-ADV:# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
#DOSBOX-X-ADV:# serial8: see serial1
|
# serial8: see serial1
|
||||||
#DOSBOX-X-ADV:# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
#DOSBOX-X-ADV:# serial9: see serial1
|
# serial9: see serial1
|
||||||
#DOSBOX-X-ADV:# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
# phonebookfile: File used to map fake phone numbers to addresses.
|
# phonebookfile: File used to map fake phone numbers to addresses.
|
||||||
serial1 = dummy
|
serial1 = dummy
|
||||||
serial2 = dummy
|
serial2 = dummy
|
||||||
serial3 = disabled
|
serial3 = disabled
|
||||||
serial4 = disabled
|
serial4 = disabled
|
||||||
#DOSBOX-X-ADV:serial5 = disabled
|
serial5 = disabled
|
||||||
#DOSBOX-X-ADV:serial6 = disabled
|
serial6 = disabled
|
||||||
#DOSBOX-X-ADV:serial7 = disabled
|
serial7 = disabled
|
||||||
#DOSBOX-X-ADV:serial8 = disabled
|
serial8 = disabled
|
||||||
#DOSBOX-X-ADV:serial9 = disabled
|
serial9 = disabled
|
||||||
phonebookfile = phonebook-dosbox-x.txt
|
phonebookfile = phonebook-dosbox-x.txt
|
||||||
|
|
||||||
[parallel]
|
[parallel]
|
||||||
@ -1653,7 +1653,7 @@ phonebookfile = phonebook-dosbox-x.txt
|
|||||||
# Additional parameters:
|
# Additional parameters:
|
||||||
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0 or 500),
|
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0 or 500),
|
||||||
# squote to use single quotes instad of double quotes for quoted program commands.
|
# squote to use single quotes instad of double quotes for quoted program commands.
|
||||||
# shellhide to hide the command window when opening programs on the Windows system.
|
# shellhide to hide the command window when opening programs on the Windows platform.
|
||||||
# addFF to add a formfeed when closing, addLF to add a linefeed if the app doesn't.
|
# addFF to add a formfeed when closing, addLF to add a linefeed if the app doesn't.
|
||||||
# cp:<codepage number> to perform codepage translation, i.e. cp:437
|
# cp:<codepage number> to perform codepage translation, i.e. cp:437
|
||||||
# openps:<program>: start a program to open the file if the print output is detected to be PostScript.
|
# openps:<program>: start a program to open the file if the print output is detected to be PostScript.
|
||||||
@ -1666,22 +1666,22 @@ phonebookfile = phonebook-dosbox-x.txt
|
|||||||
# You can optionally specify base addresses and IRQs for them with base: and irq: options.
|
# You can optionally specify base addresses and IRQs for them with base: and irq: options.
|
||||||
# parallel2: see parallel1
|
# parallel2: see parallel1
|
||||||
# parallel3: see parallel1
|
# parallel3: see parallel1
|
||||||
#DOSBOX-X-ADV:# parallel4: see parallel1
|
# parallel4: see parallel1
|
||||||
#DOSBOX-X-ADV:# parallel5: see parallel1
|
# parallel5: see parallel1
|
||||||
#DOSBOX-X-ADV:# parallel6: see parallel1
|
# parallel6: see parallel1
|
||||||
#DOSBOX-X-ADV:# parallel7: see parallel1
|
# parallel7: see parallel1
|
||||||
#DOSBOX-X-ADV:# parallel8: see parallel1
|
# parallel8: see parallel1
|
||||||
#DOSBOX-X-ADV:# parallel9: see parallel1
|
# parallel9: see parallel1
|
||||||
# dongle: Enable dongle
|
# dongle: Enable dongle
|
||||||
parallel1 = disabled
|
parallel1 = printer
|
||||||
parallel2 = disabled
|
parallel2 = disabled
|
||||||
parallel3 = disabled
|
parallel3 = disabled
|
||||||
#DOSBOX-X-ADV:parallel4 = disabled
|
parallel4 = disabled
|
||||||
#DOSBOX-X-ADV:parallel5 = disabled
|
parallel5 = disabled
|
||||||
#DOSBOX-X-ADV:parallel6 = disabled
|
parallel6 = disabled
|
||||||
#DOSBOX-X-ADV:parallel7 = disabled
|
parallel7 = disabled
|
||||||
#DOSBOX-X-ADV:parallel8 = disabled
|
parallel8 = disabled
|
||||||
#DOSBOX-X-ADV:parallel9 = disabled
|
parallel9 = disabled
|
||||||
dongle = false
|
dongle = false
|
||||||
|
|
||||||
[printer]
|
[printer]
|
||||||
@ -1693,20 +1693,26 @@ dongle = false
|
|||||||
# png : Creates PNG images (default)
|
# png : Creates PNG images (default)
|
||||||
# ps : Creates PostScript
|
# ps : Creates PostScript
|
||||||
# bmp : Creates BMP images (very huge files, not recommended)
|
# bmp : Creates BMP images (very huge files, not recommended)
|
||||||
# printer : Send to an actual printer in Windows (Print dialog will appear)
|
# printer : Send to an actual printer in Windows (specify a printer, or Print dialog will appear)
|
||||||
# multipage: Adds all pages to one PostScript file or printer job until CTRL-F2 is pressed.
|
# multipage: Adds all pages to one PostScript file or printer job until CTRL-F2 is pressed.
|
||||||
|
# device: Specify the Windows printer device to use. You can see the list of devices from the
|
||||||
|
# menu ('List printer devices') or the Status Window. Then make your choice and put either
|
||||||
|
# the printer device number (e.g. 2) or your printer name (e.g. Microsoft Print to PDF).
|
||||||
|
# Leaving it empty will show the Windows Print dialog (or '-' for showing once).
|
||||||
# docpath: The path where the output files are stored.
|
# docpath: The path where the output files are stored.
|
||||||
# fontpath: The path where the printer fonts (courier.ttf, ocra.ttf, roman.ttf, sansserif.ttf, script.ttf) are located.
|
# fontpath: The path where the printer fonts (courier.ttf, ocra.ttf, roman.ttf, sansserif.ttf, script.ttf) are located.
|
||||||
# openwith: Start the specified program to open the output file.
|
# openwith: Start the specified program to open the output file.
|
||||||
# openerror: Start the specified program to open the output file if an error had occurred.
|
# openerror: Start the specified program to open the output file if an error had occurred.
|
||||||
# shellhide: If set, the command window will be hidden for openwith/openerror options on the Windows system.
|
# shellhide: If set, the command window will be hidden for openwith/openerror options on the Windows platform.
|
||||||
# timeout: (in milliseconds) if nonzero: the time the page will be ejected automatically after when no more data arrives at the printer.
|
# timeout: (in milliseconds) if nonzero: the time the page will be ejected automatically after when no more data arrives at the printer.
|
||||||
printer = true
|
printer = true
|
||||||
dpi = 360
|
dpi = 360
|
||||||
width = 85
|
width = 85
|
||||||
height = 110
|
height = 110
|
||||||
|
#DOSBOX-X-ADV:printoutput = printer
|
||||||
printoutput = png
|
printoutput = png
|
||||||
multipage = false
|
multipage = false
|
||||||
|
device = -
|
||||||
docpath = .
|
docpath = .
|
||||||
fontpath = FONTS
|
fontpath = FONTS
|
||||||
openwith =
|
openwith =
|
||||||
@ -1752,7 +1758,7 @@ timeout = 0
|
|||||||
#DOSBOX-X-ADV:# direct Non-standard behavior, encode the CALL FAR directly to the entry point rather than indirectly
|
#DOSBOX-X-ADV:# direct Non-standard behavior, encode the CALL FAR directly to the entry point rather than indirectly
|
||||||
#DOSBOX-X-ADV:# Possible values: auto, off, msdos2, msdos5, direct.
|
#DOSBOX-X-ADV:# Possible values: auto, off, msdos2, msdos5, direct.
|
||||||
# share: Report SHARE.EXE as resident. This will allow file locking to be performed, although not all SHARE functions are emulated.
|
# share: Report SHARE.EXE as resident. This will allow file locking to be performed, although not all SHARE functions are emulated.
|
||||||
# file access tries: If a positive integer is set, DOSBox-X will try to read/write/lock files directly on mounted local drives for the specified number of times before failing on the Windows system.
|
# file access tries: If a positive integer is set, DOSBox-X will try to read/write/lock files directly on mounted local drives for the specified number of times before failing on Windows systems.
|
||||||
# network redirector: Report DOS network redirector as resident. This will allow the host name to be returned unless the secure mode is enabled.
|
# network redirector: Report DOS network redirector as resident. This will allow the host name to be returned unless the secure mode is enabled.
|
||||||
# Set either "ipx=true" in [ipx] section or "ne2000=true" in [ne2000] section for a full network redirector environment.
|
# Set either "ipx=true" in [ipx] section or "ne2000=true" in [ne2000] section for a full network redirector environment.
|
||||||
#DOSBOX-X-ADV:# minimum dos initial private segment: In non-mainline mapping mode, where DOS structures are allocated from base memory, this sets the
|
#DOSBOX-X-ADV:# minimum dos initial private segment: In non-mainline mapping mode, where DOS structures are allocated from base memory, this sets the
|
||||||
|
@ -16,7 +16,7 @@ At the beginning you have got a Z:\> instead of a C:\> at the DOSBox-X prompt. S
|
|||||||
|
|
||||||
To change to the drive mounted like above, type "C:". If everything went fine, DOSBox-X will display the prompt "C:\>". You do not have to manually mount drives after DOSBox-X starts. Click the "Main" menu, and select "Configuration tool". Then select the "AUTOEXEC.BAT" setting group, where you can change its contents. The commands present here are run when DOSBox-X starts, so you can use this section for the mounting and other purposes, such as launching a specific program you want to use, or a game you want to play. You can also quickly launch a DOS program or game in DOSBox-X by clicking "Quick launch program..." under "DOS" menu.
|
To change to the drive mounted like above, type "C:". If everything went fine, DOSBox-X will display the prompt "C:\>". You do not have to manually mount drives after DOSBox-X starts. Click the "Main" menu, and select "Configuration tool". Then select the "AUTOEXEC.BAT" setting group, where you can change its contents. The commands present here are run when DOSBox-X starts, so you can use this section for the mounting and other purposes, such as launching a specific program you want to use, or a game you want to play. You can also quickly launch a DOS program or game in DOSBox-X by clicking "Quick launch program..." under "DOS" menu.
|
||||||
|
|
||||||
Hint: DOSBox-X supports different video output systems for different purposes. By default it uses the Direct3D output on the SDL1 version and the standard OpenGL output on the SDL2 version. But if you desire the pixel-perfect scaling feature for improved image quality you may want to select the openglpp output. Also, if you use text-mode DOS applications you probably want to select the TrueType font (TTF) output to make the text screen look much better.
|
Hint: DOSBox-X supports different video output systems for different purposes. By default it uses the Direct3D output, but if you desire the pixel-perfect scaling feature for improved image quality you may want to select the openglpp output ("OpenGL perfect"). Also, if you use text-mode DOS applications and/or the DOS shell a lot you probably want to select the TrueType font (TTF) output to make the text screen look much better.
|
||||||
|
|
||||||
Further Information
|
Further Information
|
||||||
===================
|
===================
|
||||||
|
@ -478,12 +478,12 @@ ps1audio = off
|
|||||||
ps1audiorate = 22050
|
ps1audiorate = 22050
|
||||||
|
|
||||||
[joystick]
|
[joystick]
|
||||||
# joysticktype: Type of joystick to emulate: auto (default), none,
|
# joysticktype: Type of joystick to emulate: auto (default),
|
||||||
|
# none (disables joystick emulation),
|
||||||
# 2axis (supports two joysticks),
|
# 2axis (supports two joysticks),
|
||||||
# 4axis (supports one joystick, first joystick used),
|
# 4axis (supports one joystick, first joystick used),
|
||||||
# 4axis_2 (supports one joystick, second joystick used),
|
# 4axis_2 (supports one joystick, second joystick used),
|
||||||
# fcs (Thrustmaster), ch (CH Flightstick).
|
# fcs (Thrustmaster), ch (CH Flightstick).
|
||||||
# none disables joystick emulation.
|
|
||||||
# auto chooses emulation depending on real joystick(s).
|
# auto chooses emulation depending on real joystick(s).
|
||||||
# (Remember to reset DOSBox-X's mapperfile if you saved it earlier)
|
# (Remember to reset DOSBox-X's mapperfile if you saved it earlier)
|
||||||
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
|
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
|
||||||
@ -572,7 +572,7 @@ joy2deadzone7+ = 0.60
|
|||||||
# Additional parameters:
|
# Additional parameters:
|
||||||
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0),
|
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0),
|
||||||
# squote to use single quotes instad of double quotes for quoted program commands.
|
# squote to use single quotes instad of double quotes for quoted program commands.
|
||||||
# shellhide to hide the command window when opening programs on the Windows system.
|
# shellhide to hide the command window when opening programs on the Windows platform.
|
||||||
# openwith:<program>: start a program to open the output file.
|
# openwith:<program>: start a program to open the output file.
|
||||||
# openerror:<program>: start a program to open the output file if an error had occurred.
|
# openerror:<program>: start a program to open the output file if an error had occurred.
|
||||||
# for directserial: realport (required), rxdelay (optional).
|
# for directserial: realport (required), rxdelay (optional).
|
||||||
@ -591,11 +591,26 @@ joy2deadzone7+ = 0.60
|
|||||||
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
# serial4: see serial1
|
# serial4: see serial1
|
||||||
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
|
# serial5: see serial1
|
||||||
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
|
# serial6: see serial1
|
||||||
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
|
# serial7: see serial1
|
||||||
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
|
# serial8: see serial1
|
||||||
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
|
# serial9: see serial1
|
||||||
|
# Possible values: dummy, disabled, modem, nullmodem, serialmouse, directserial, log, file.
|
||||||
# phonebookfile: File used to map fake phone numbers to addresses.
|
# phonebookfile: File used to map fake phone numbers to addresses.
|
||||||
serial1 = dummy
|
serial1 = dummy
|
||||||
serial2 = dummy
|
serial2 = dummy
|
||||||
serial3 = disabled
|
serial3 = disabled
|
||||||
serial4 = disabled
|
serial4 = disabled
|
||||||
|
serial5 = disabled
|
||||||
|
serial6 = disabled
|
||||||
|
serial7 = disabled
|
||||||
|
serial8 = disabled
|
||||||
|
serial9 = disabled
|
||||||
phonebookfile = phonebook-dosbox-x.txt
|
phonebookfile = phonebook-dosbox-x.txt
|
||||||
|
|
||||||
[parallel]
|
[parallel]
|
||||||
@ -620,7 +635,7 @@ phonebookfile = phonebook-dosbox-x.txt
|
|||||||
# Additional parameters:
|
# Additional parameters:
|
||||||
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0 or 500),
|
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0 or 500),
|
||||||
# squote to use single quotes instad of double quotes for quoted program commands.
|
# squote to use single quotes instad of double quotes for quoted program commands.
|
||||||
# shellhide to hide the command window when opening programs on the Windows system.
|
# shellhide to hide the command window when opening programs on the Windows platform.
|
||||||
# addFF to add a formfeed when closing, addLF to add a linefeed if the app doesn't.
|
# addFF to add a formfeed when closing, addLF to add a linefeed if the app doesn't.
|
||||||
# cp:<codepage number> to perform codepage translation, i.e. cp:437
|
# cp:<codepage number> to perform codepage translation, i.e. cp:437
|
||||||
# openps:<program>: start a program to open the file if the print output is detected to be PostScript.
|
# openps:<program>: start a program to open the file if the print output is detected to be PostScript.
|
||||||
@ -633,10 +648,22 @@ phonebookfile = phonebook-dosbox-x.txt
|
|||||||
# You can optionally specify base addresses and IRQs for them with base: and irq: options.
|
# You can optionally specify base addresses and IRQs for them with base: and irq: options.
|
||||||
# parallel2: see parallel1
|
# parallel2: see parallel1
|
||||||
# parallel3: see parallel1
|
# parallel3: see parallel1
|
||||||
|
# parallel4: see parallel1
|
||||||
|
# parallel5: see parallel1
|
||||||
|
# parallel6: see parallel1
|
||||||
|
# parallel7: see parallel1
|
||||||
|
# parallel8: see parallel1
|
||||||
|
# parallel9: see parallel1
|
||||||
# dongle: Enable dongle
|
# dongle: Enable dongle
|
||||||
parallel1 = disabled
|
parallel1 = printer
|
||||||
parallel2 = disabled
|
parallel2 = disabled
|
||||||
parallel3 = disabled
|
parallel3 = disabled
|
||||||
|
parallel4 = disabled
|
||||||
|
parallel5 = disabled
|
||||||
|
parallel6 = disabled
|
||||||
|
parallel7 = disabled
|
||||||
|
parallel8 = disabled
|
||||||
|
parallel9 = disabled
|
||||||
dongle = false
|
dongle = false
|
||||||
|
|
||||||
[printer]
|
[printer]
|
||||||
@ -648,13 +675,17 @@ dongle = false
|
|||||||
# png : Creates PNG images (default)
|
# png : Creates PNG images (default)
|
||||||
# ps : Creates PostScript
|
# ps : Creates PostScript
|
||||||
# bmp : Creates BMP images (very huge files, not recommended)
|
# bmp : Creates BMP images (very huge files, not recommended)
|
||||||
# printer : Send to an actual printer in Windows (Print dialog will appear)
|
# printer : Send to an actual printer in Windows (specify a printer, or Print dialog will appear)
|
||||||
# multipage: Adds all pages to one PostScript file or printer job until CTRL-F2 is pressed.
|
# multipage: Adds all pages to one PostScript file or printer job until CTRL-F2 is pressed.
|
||||||
|
# device: Specify the Windows printer device to use. You can see the list of devices from the
|
||||||
|
# menu ('List printer devices') or the Status Window. Then make your choice and put either
|
||||||
|
# the printer device number (e.g. 2) or your printer name (e.g. Microsoft Print to PDF).
|
||||||
|
# Leaving it empty will show the Windows Print dialog (or '-' for showing once).
|
||||||
# docpath: The path where the output files are stored.
|
# docpath: The path where the output files are stored.
|
||||||
# fontpath: The path where the printer fonts (courier.ttf, ocra.ttf, roman.ttf, sansserif.ttf, script.ttf) are located.
|
# fontpath: The path where the printer fonts (courier.ttf, ocra.ttf, roman.ttf, sansserif.ttf, script.ttf) are located.
|
||||||
# openwith: Start the specified program to open the output file.
|
# openwith: Start the specified program to open the output file.
|
||||||
# openerror: Start the specified program to open the output file if an error had occurred.
|
# openerror: Start the specified program to open the output file if an error had occurred.
|
||||||
# shellhide: If set, the command window will be hidden for openwith/openerror options on the Windows system.
|
# shellhide: If set, the command window will be hidden for openwith/openerror options on the Windows platform.
|
||||||
# timeout: (in milliseconds) if nonzero: the time the page will be ejected automatically after when no more data arrives at the printer.
|
# timeout: (in milliseconds) if nonzero: the time the page will be ejected automatically after when no more data arrives at the printer.
|
||||||
printer = true
|
printer = true
|
||||||
dpi = 360
|
dpi = 360
|
||||||
@ -662,6 +693,7 @@ width = 85
|
|||||||
height = 110
|
height = 110
|
||||||
printoutput = png
|
printoutput = png
|
||||||
multipage = false
|
multipage = false
|
||||||
|
device = -
|
||||||
docpath = .
|
docpath = .
|
||||||
fontpath = FONTS
|
fontpath = FONTS
|
||||||
openwith =
|
openwith =
|
||||||
@ -680,7 +712,7 @@ timeout = 0
|
|||||||
# ansi.sys: If set (by default), ANSI.SYS emulation is on. If clear, ANSI.SYS is not emulated and will not appear to be installed.
|
# ansi.sys: If set (by default), ANSI.SYS emulation is on. If clear, ANSI.SYS is not emulated and will not appear to be installed.
|
||||||
# NOTE: This option has no effect in PC-98 mode where MS-DOS systems integrate ANSI.SYS into the DOS kernel.
|
# NOTE: This option has no effect in PC-98 mode where MS-DOS systems integrate ANSI.SYS into the DOS kernel.
|
||||||
# share: Report SHARE.EXE as resident. This will allow file locking to be performed, although not all SHARE functions are emulated.
|
# share: Report SHARE.EXE as resident. This will allow file locking to be performed, although not all SHARE functions are emulated.
|
||||||
# file access tries: If a positive integer is set, DOSBox-X will try to read/write/lock files directly on mounted local drives for the specified number of times before failing on the Windows system.
|
# file access tries: If a positive integer is set, DOSBox-X will try to read/write/lock files directly on mounted local drives for the specified number of times before failing on Windows systems.
|
||||||
# network redirector: Report DOS network redirector as resident. This will allow the host name to be returned unless the secure mode is enabled.
|
# network redirector: Report DOS network redirector as resident. This will allow the host name to be returned unless the secure mode is enabled.
|
||||||
# Set either "ipx=true" in [ipx] section or "ne2000=true" in [ne2000] section for a full network redirector environment.
|
# Set either "ipx=true" in [ipx] section or "ne2000=true" in [ne2000] section for a full network redirector environment.
|
||||||
# minimum mcb free: Minimum free segment value to leave free. At startup, the DOS kernel will allocate memory
|
# minimum mcb free: Minimum free segment value to leave free. At startup, the DOS kernel will allocate memory
|
||||||
|
@ -1452,12 +1452,12 @@ ps1audio = off
|
|||||||
ps1audiorate = 22050
|
ps1audiorate = 22050
|
||||||
|
|
||||||
[joystick]
|
[joystick]
|
||||||
# joysticktype: Type of joystick to emulate: auto (default), none,
|
# joysticktype: Type of joystick to emulate: auto (default),
|
||||||
|
# none (disables joystick emulation),
|
||||||
# 2axis (supports two joysticks),
|
# 2axis (supports two joysticks),
|
||||||
# 4axis (supports one joystick, first joystick used),
|
# 4axis (supports one joystick, first joystick used),
|
||||||
# 4axis_2 (supports one joystick, second joystick used),
|
# 4axis_2 (supports one joystick, second joystick used),
|
||||||
# fcs (Thrustmaster), ch (CH Flightstick).
|
# fcs (Thrustmaster), ch (CH Flightstick).
|
||||||
# none disables joystick emulation.
|
|
||||||
# auto chooses emulation depending on real joystick(s).
|
# auto chooses emulation depending on real joystick(s).
|
||||||
# (Remember to reset DOSBox-X's mapperfile if you saved it earlier)
|
# (Remember to reset DOSBox-X's mapperfile if you saved it earlier)
|
||||||
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
|
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
|
||||||
@ -1590,7 +1590,7 @@ joy2deadzone7+ = 0.60
|
|||||||
# Additional parameters:
|
# Additional parameters:
|
||||||
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0),
|
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0),
|
||||||
# squote to use single quotes instad of double quotes for quoted program commands.
|
# squote to use single quotes instad of double quotes for quoted program commands.
|
||||||
# shellhide to hide the command window when opening programs on the Windows system.
|
# shellhide to hide the command window when opening programs on the Windows platform.
|
||||||
# openwith:<program>: start a program to open the output file.
|
# openwith:<program>: start a program to open the output file.
|
||||||
# openerror:<program>: start a program to open the output file if an error had occurred.
|
# openerror:<program>: start a program to open the output file if an error had occurred.
|
||||||
# for directserial: realport (required), rxdelay (optional).
|
# for directserial: realport (required), rxdelay (optional).
|
||||||
@ -1653,7 +1653,7 @@ phonebookfile = phonebook-dosbox-x.txt
|
|||||||
# Additional parameters:
|
# Additional parameters:
|
||||||
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0 or 500),
|
# timeout:<milliseconds> = how long to wait before closing the file on inactivity (default:0 or 500),
|
||||||
# squote to use single quotes instad of double quotes for quoted program commands.
|
# squote to use single quotes instad of double quotes for quoted program commands.
|
||||||
# shellhide to hide the command window when opening programs on the Windows system.
|
# shellhide to hide the command window when opening programs on the Windows platform.
|
||||||
# addFF to add a formfeed when closing, addLF to add a linefeed if the app doesn't.
|
# addFF to add a formfeed when closing, addLF to add a linefeed if the app doesn't.
|
||||||
# cp:<codepage number> to perform codepage translation, i.e. cp:437
|
# cp:<codepage number> to perform codepage translation, i.e. cp:437
|
||||||
# openps:<program>: start a program to open the file if the print output is detected to be PostScript.
|
# openps:<program>: start a program to open the file if the print output is detected to be PostScript.
|
||||||
@ -1673,7 +1673,7 @@ phonebookfile = phonebook-dosbox-x.txt
|
|||||||
# parallel8: see parallel1
|
# parallel8: see parallel1
|
||||||
# parallel9: see parallel1
|
# parallel9: see parallel1
|
||||||
# dongle: Enable dongle
|
# dongle: Enable dongle
|
||||||
parallel1 = disabled
|
parallel1 = printer
|
||||||
parallel2 = disabled
|
parallel2 = disabled
|
||||||
parallel3 = disabled
|
parallel3 = disabled
|
||||||
parallel4 = disabled
|
parallel4 = disabled
|
||||||
@ -1693,20 +1693,26 @@ dongle = false
|
|||||||
# png : Creates PNG images (default)
|
# png : Creates PNG images (default)
|
||||||
# ps : Creates PostScript
|
# ps : Creates PostScript
|
||||||
# bmp : Creates BMP images (very huge files, not recommended)
|
# bmp : Creates BMP images (very huge files, not recommended)
|
||||||
# printer : Send to an actual printer in Windows (Print dialog will appear)
|
# printer : Send to an actual printer in Windows (specify a printer, or Print dialog will appear)
|
||||||
# multipage: Adds all pages to one PostScript file or printer job until CTRL-F2 is pressed.
|
# multipage: Adds all pages to one PostScript file or printer job until CTRL-F2 is pressed.
|
||||||
|
# device: Specify the Windows printer device to use. You can see the list of devices from the
|
||||||
|
# menu ('List printer devices') or the Status Window. Then make your choice and put either
|
||||||
|
# the printer device number (e.g. 2) or your printer name (e.g. Microsoft Print to PDF).
|
||||||
|
# Leaving it empty will show the Windows Print dialog (or '-' for showing once).
|
||||||
# docpath: The path where the output files are stored.
|
# docpath: The path where the output files are stored.
|
||||||
# fontpath: The path where the printer fonts (courier.ttf, ocra.ttf, roman.ttf, sansserif.ttf, script.ttf) are located.
|
# fontpath: The path where the printer fonts (courier.ttf, ocra.ttf, roman.ttf, sansserif.ttf, script.ttf) are located.
|
||||||
# openwith: Start the specified program to open the output file.
|
# openwith: Start the specified program to open the output file.
|
||||||
# openerror: Start the specified program to open the output file if an error had occurred.
|
# openerror: Start the specified program to open the output file if an error had occurred.
|
||||||
# shellhide: If set, the command window will be hidden for openwith/openerror options on the Windows system.
|
# shellhide: If set, the command window will be hidden for openwith/openerror options on the Windows platform.
|
||||||
# timeout: (in milliseconds) if nonzero: the time the page will be ejected automatically after when no more data arrives at the printer.
|
# timeout: (in milliseconds) if nonzero: the time the page will be ejected automatically after when no more data arrives at the printer.
|
||||||
printer = true
|
printer = true
|
||||||
dpi = 360
|
dpi = 360
|
||||||
width = 85
|
width = 85
|
||||||
height = 110
|
height = 110
|
||||||
|
printoutput = printer
|
||||||
printoutput = png
|
printoutput = png
|
||||||
multipage = false
|
multipage = false
|
||||||
|
device = -
|
||||||
docpath = .
|
docpath = .
|
||||||
fontpath = FONTS
|
fontpath = FONTS
|
||||||
openwith =
|
openwith =
|
||||||
@ -1752,7 +1758,7 @@ timeout = 0
|
|||||||
# direct Non-standard behavior, encode the CALL FAR directly to the entry point rather than indirectly
|
# direct Non-standard behavior, encode the CALL FAR directly to the entry point rather than indirectly
|
||||||
# Possible values: auto, off, msdos2, msdos5, direct.
|
# Possible values: auto, off, msdos2, msdos5, direct.
|
||||||
# share: Report SHARE.EXE as resident. This will allow file locking to be performed, although not all SHARE functions are emulated.
|
# share: Report SHARE.EXE as resident. This will allow file locking to be performed, although not all SHARE functions are emulated.
|
||||||
# file access tries: If a positive integer is set, DOSBox-X will try to read/write/lock files directly on mounted local drives for the specified number of times before failing on the Windows system.
|
# file access tries: If a positive integer is set, DOSBox-X will try to read/write/lock files directly on mounted local drives for the specified number of times before failing on Windows systems.
|
||||||
# network redirector: Report DOS network redirector as resident. This will allow the host name to be returned unless the secure mode is enabled.
|
# network redirector: Report DOS network redirector as resident. This will allow the host name to be returned unless the secure mode is enabled.
|
||||||
# Set either "ipx=true" in [ipx] section or "ne2000=true" in [ne2000] section for a full network redirector environment.
|
# Set either "ipx=true" in [ipx] section or "ne2000=true" in [ne2000] section for a full network redirector environment.
|
||||||
# minimum dos initial private segment: In non-mainline mapping mode, where DOS structures are allocated from base memory, this sets the
|
# minimum dos initial private segment: In non-mainline mapping mode, where DOS structures are allocated from base memory, this sets the
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/*auto-generated*/
|
/*auto-generated*/
|
||||||
#define UPDATED_STR "Jan 20, 2021 5:24:11am"
|
#define UPDATED_STR "Jan 24, 2021 2:26:23am"
|
||||||
#define GIT_COMMIT_HASH "6b5621d"
|
#define GIT_COMMIT_HASH "16a26bc"
|
||||||
#define COPYRIGHT_END_YEAR "2021"
|
#define COPYRIGHT_END_YEAR "2021"
|
||||||
|
1721
src/dosbox.cpp
1721
src/dosbox.cpp
File diff suppressed because it is too large
Load Diff
@ -317,10 +317,8 @@ static const char *def_menu_video_scaler[] =
|
|||||||
static const char *def_menu_video_output[] =
|
static const char *def_menu_video_output[] =
|
||||||
{
|
{
|
||||||
"output_surface",
|
"output_surface",
|
||||||
#if !defined(C_SDL2) && !defined(HX_DOS)
|
#if (HAVE_D3D9_H) && defined(WIN32) && !defined(HX_DOS)
|
||||||
# if (HAVE_D3D9_H) && defined(WIN32)
|
|
||||||
"output_direct3d",
|
"output_direct3d",
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
#if defined(C_OPENGL) && !defined(HX_DOS)
|
#if defined(C_OPENGL) && !defined(HX_DOS)
|
||||||
"output_opengl",
|
"output_opengl",
|
||||||
@ -743,11 +741,18 @@ static const char *def_menu_help[] =
|
|||||||
"help_issue",
|
"help_issue",
|
||||||
#endif
|
#endif
|
||||||
"--",
|
"--",
|
||||||
|
#if C_NE2000
|
||||||
"help_nic",
|
"help_nic",
|
||||||
|
#endif
|
||||||
|
#if C_PRINTER && defined(WIN32)
|
||||||
|
"help_prt",
|
||||||
|
#endif
|
||||||
#if C_DEBUG || !defined(MACOSX) && !defined(LINUX) && !defined(HX_DOS) && !defined(C_EMSCRIPTEN)
|
#if C_DEBUG || !defined(MACOSX) && !defined(LINUX) && !defined(HX_DOS) && !defined(C_EMSCRIPTEN)
|
||||||
"HelpDebugMenu",
|
"HelpDebugMenu",
|
||||||
#endif
|
#endif
|
||||||
|
#if C_NE2000 || C_PRINTER && defined(WIN32) || C_DEBUG || !defined(MACOSX) && !defined(LINUX) && !defined(HX_DOS) && !defined(C_EMSCRIPTEN)
|
||||||
"--",
|
"--",
|
||||||
|
#endif
|
||||||
"help_about",
|
"help_about",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
@ -2212,6 +2212,32 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::string prtlist="Printer support is not enabled. Check [printer] section of the configuration.";
|
||||||
|
class ShowHelpPRT : public GUI::ToplevelWindow {
|
||||||
|
protected:
|
||||||
|
GUI::Input *name;
|
||||||
|
public:
|
||||||
|
ShowHelpPRT(GUI::Screen *parent, int x, int y, const char *title) :
|
||||||
|
ToplevelWindow(parent, x, y, 700, 230, title) {
|
||||||
|
std::istringstream in(prtlist.c_str());
|
||||||
|
int r=0;
|
||||||
|
if (in) for (std::string line; std::getline(in, line); ) {
|
||||||
|
r+=25;
|
||||||
|
new GUI::Label(this, 40, r, line.c_str());
|
||||||
|
}
|
||||||
|
(new GUI::Button(this, 330, r+40, "Close", 70))->addActionHandler(this);
|
||||||
|
resize(700, r+120);
|
||||||
|
move(parent->getWidth()>this->getWidth()?(parent->getWidth()-this->getWidth())/2:0,parent->getHeight()>this->getHeight()?(parent->getHeight()-this->getHeight())/2:0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void actionExecuted(GUI::ActionEventSource *b, const GUI::String &arg) {
|
||||||
|
(void)b;//UNUSED
|
||||||
|
if (arg == "Close")
|
||||||
|
close();
|
||||||
|
if (shortcut) running = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
std::string niclist="NE2000 networking is not enabled. Check [ne2000] section of the configuration.";
|
std::string niclist="NE2000 networking is not enabled. Check [ne2000] section of the configuration.";
|
||||||
class ShowHelpNIC : public GUI::ToplevelWindow {
|
class ShowHelpNIC : public GUI::ToplevelWindow {
|
||||||
protected:
|
protected:
|
||||||
@ -2685,11 +2711,15 @@ static void UI_Select(GUI::ScreenSDL *screen, int select) {
|
|||||||
np13->raise();
|
np13->raise();
|
||||||
} break;
|
} break;
|
||||||
case 37: {
|
case 37: {
|
||||||
auto *np14 = new ShowHelpNIC(screen, 70, 70, "Network interface list");
|
auto *np14 = new MakeDiskImage(screen, 110, 70, "Create blank disk image");
|
||||||
np14->raise();
|
np14->raise();
|
||||||
} break;
|
} break;
|
||||||
case 38: {
|
case 38: {
|
||||||
auto *np15 = new MakeDiskImage(screen, 110, 70, "Create blank disk image");
|
auto *np15 = new ShowHelpNIC(screen, 70, 70, "Network interface list");
|
||||||
|
np15->raise();
|
||||||
|
} break;
|
||||||
|
case 39: {
|
||||||
|
auto *np15 = new ShowHelpPRT(screen, 70, 70, "Printer device list");
|
||||||
np15->raise();
|
np15->raise();
|
||||||
} break;
|
} break;
|
||||||
default:
|
default:
|
||||||
|
@ -250,6 +250,9 @@ bool osx_detect_nstouchbar(void);
|
|||||||
void osx_init_touchbar(void);
|
void osx_init_touchbar(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if C_DIRECT3D
|
||||||
|
void d3d_init(void);
|
||||||
|
#endif
|
||||||
bool TTF_using(void);
|
bool TTF_using(void);
|
||||||
void ShutDownMemHandles(Section * sec);
|
void ShutDownMemHandles(Section * sec);
|
||||||
void resetFontSize(), decreaseFontSize();
|
void resetFontSize(), decreaseFontSize();
|
||||||
@ -693,7 +696,7 @@ bool make_diskimage_menu_callback(DOSBoxMenu * const menu,DOSBoxMenu::item * con
|
|||||||
(void)menuitem;//UNUSED
|
(void)menuitem;//UNUSED
|
||||||
MAPPER_ReleaseAllKeys();
|
MAPPER_ReleaseAllKeys();
|
||||||
GFX_LosingFocus();
|
GFX_LosingFocus();
|
||||||
GUI_Shortcut(38);
|
GUI_Shortcut(37);
|
||||||
MAPPER_ReleaseAllKeys();
|
MAPPER_ReleaseAllKeys();
|
||||||
GFX_LosingFocus();
|
GFX_LosingFocus();
|
||||||
return true;
|
return true;
|
||||||
@ -3710,9 +3713,10 @@ void change_output(int output) {
|
|||||||
OUTPUT_OPENGL_Select(GLPerfect);
|
OUTPUT_OPENGL_Select(GLPerfect);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
#if C_DIRECT3D
|
#if C_DIRECT3D
|
||||||
case 6:
|
case 6:
|
||||||
OUTPUT_DIRECT3D_Select();
|
OUTPUT_DIRECT3D_Select();
|
||||||
|
d3d_init();
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case 7:
|
case 7:
|
||||||
@ -3722,8 +3726,10 @@ void change_output(int output) {
|
|||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
#if C_DIRECT3D
|
#if C_DIRECT3D
|
||||||
if (sdl.desktop.want_type == SCREEN_DIRECT3D)
|
if (sdl.desktop.want_type == SCREEN_DIRECT3D) {
|
||||||
OUTPUT_DIRECT3D_Select();
|
OUTPUT_DIRECT3D_Select();
|
||||||
|
d3d_init();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
#if defined(USE_TTF)
|
#if defined(USE_TTF)
|
||||||
@ -4081,7 +4087,6 @@ void GFX_RestoreMode(void) {
|
|||||||
GFX_ResetScreen();
|
GFX_ResetScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(C_SDL2)
|
|
||||||
static bool GFX_GetSurfacePtrLock = false;
|
static bool GFX_GetSurfacePtrLock = false;
|
||||||
|
|
||||||
unsigned char *GFX_GetSurfacePtr(size_t *pitch, unsigned int x, unsigned int y) {
|
unsigned char *GFX_GetSurfacePtr(size_t *pitch, unsigned int x, unsigned int y) {
|
||||||
@ -4113,7 +4118,6 @@ void GFX_ReleaseSurfacePtr(void) {
|
|||||||
GFX_GetSurfacePtrLock = false;
|
GFX_GetSurfacePtrLock = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
bool GFX_StartUpdate(uint8_t* &pixels,Bitu &pitch)
|
bool GFX_StartUpdate(uint8_t* &pixels,Bitu &pitch)
|
||||||
{
|
{
|
||||||
@ -5355,6 +5359,10 @@ static void GUI_StartUp() {
|
|||||||
GFX_LogSDLState();
|
GFX_LogSDLState();
|
||||||
GFX_Stop();
|
GFX_Stop();
|
||||||
|
|
||||||
|
#if C_DIRECT3D
|
||||||
|
if (sdl.desktop.want_type == SCREEN_DIRECT3D)
|
||||||
|
d3d_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(C_SDL2)
|
#if defined(C_SDL2)
|
||||||
SDL_SetWindowTitle(sdl.window,"DOSBox-X");
|
SDL_SetWindowTitle(sdl.window,"DOSBox-X");
|
||||||
@ -10136,31 +10144,65 @@ bool output_menu_callback(DOSBoxMenu * const menu,DOSBoxMenu::item * const menui
|
|||||||
|
|
||||||
if (!strcmp(what,"surface")) {
|
if (!strcmp(what,"surface")) {
|
||||||
if (sdl.desktop.want_type == SCREEN_SURFACE) return true;
|
if (sdl.desktop.want_type == SCREEN_SURFACE) return true;
|
||||||
change_output(0);
|
if (window_was_maximized&&!GFX_IsFullscreen()) {
|
||||||
|
change_output(0);
|
||||||
|
#if defined(WIN32)
|
||||||
|
ShowWindow(GetHWND(), SW_MAXIMIZE);
|
||||||
|
#endif
|
||||||
|
} else
|
||||||
|
change_output(0);
|
||||||
RENDER_Reset();
|
RENDER_Reset();
|
||||||
}
|
}
|
||||||
else if (!strcmp(what,"opengl")) {
|
else if (!strcmp(what,"opengl")) {
|
||||||
#if C_OPENGL
|
#if C_OPENGL
|
||||||
if (sdl.desktop.want_type == SCREEN_OPENGL && sdl_opengl.kind == GLBilinear) return true;
|
if (sdl.desktop.want_type == SCREEN_OPENGL && sdl_opengl.kind == GLBilinear) return true;
|
||||||
change_output(3);
|
if (window_was_maximized&&!GFX_IsFullscreen()) {
|
||||||
|
change_output(3);
|
||||||
|
#if defined(WIN32)
|
||||||
|
ShowWindow(GetHWND(), SW_MAXIMIZE);
|
||||||
|
#endif
|
||||||
|
} else
|
||||||
|
change_output(3);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (!strcmp(what,"openglnb")) {
|
else if (!strcmp(what,"openglnb")) {
|
||||||
#if C_OPENGL
|
#if C_OPENGL
|
||||||
if (sdl.desktop.want_type == SCREEN_OPENGL && sdl_opengl.kind == GLNearest) return true;
|
if (sdl.desktop.want_type == SCREEN_OPENGL && sdl_opengl.kind == GLNearest) return true;
|
||||||
change_output(4);
|
if (window_was_maximized&&!GFX_IsFullscreen()) {
|
||||||
|
change_output(4);
|
||||||
|
#if defined(WIN32)
|
||||||
|
ShowWindow(GetHWND(), SW_MAXIMIZE);
|
||||||
|
#endif
|
||||||
|
} else
|
||||||
|
change_output(4);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (!strcmp(what,"openglpp")) {
|
else if (!strcmp(what,"openglpp")) {
|
||||||
#if C_OPENGL
|
#if C_OPENGL
|
||||||
if (sdl.desktop.want_type == SCREEN_OPENGL && sdl_opengl.kind == GLPerfect) return true;
|
if (sdl.desktop.want_type == SCREEN_OPENGL && sdl_opengl.kind == GLPerfect) return true;
|
||||||
change_output(5);
|
if (window_was_maximized&&!GFX_IsFullscreen()) {
|
||||||
|
change_output(5);
|
||||||
|
#if defined(WIN32)
|
||||||
|
ShowWindow(GetHWND(), SW_MAXIMIZE);
|
||||||
|
#endif
|
||||||
|
} else
|
||||||
|
change_output(5);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (!strcmp(what,"direct3d")) {
|
else if (!strcmp(what,"direct3d")) {
|
||||||
#if C_DIRECT3D
|
#if C_DIRECT3D
|
||||||
if (sdl.desktop.want_type == SCREEN_DIRECT3D) return true;
|
if (sdl.desktop.want_type == SCREEN_DIRECT3D) return true;
|
||||||
change_output(6);
|
#if C_OPENGL && defined(C_SDL2)
|
||||||
|
if (sdl.desktop.want_type == SCREEN_OPENGL)
|
||||||
|
GFX_SetSDLWindowMode(currentWindowWidth, currentWindowHeight, SCREEN_SURFACE);
|
||||||
|
#endif
|
||||||
|
if (window_was_maximized&&!GFX_IsFullscreen()) {
|
||||||
|
change_output(6);
|
||||||
|
#if defined(WIN32)
|
||||||
|
ShowWindow(GetHWND(), SW_MAXIMIZE);
|
||||||
|
#endif
|
||||||
|
} else
|
||||||
|
change_output(6);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (!strcmp(what,"ttf")) {
|
else if (!strcmp(what,"ttf")) {
|
||||||
@ -11110,7 +11152,7 @@ bool help_nic_callback(DOSBoxMenu * const /*menu*/, DOSBoxMenu::item * const /*m
|
|||||||
#endif
|
#endif
|
||||||
GFX_SwitchFullScreen();
|
GFX_SwitchFullScreen();
|
||||||
}
|
}
|
||||||
GUI_Shortcut(37);
|
GUI_Shortcut(38);
|
||||||
if (switchfs) {
|
if (switchfs) {
|
||||||
GFX_SwitchFullScreen();
|
GFX_SwitchFullScreen();
|
||||||
#if defined(C_SDL2)
|
#if defined(C_SDL2)
|
||||||
@ -11125,6 +11167,39 @@ bool help_nic_callback(DOSBoxMenu * const /*menu*/, DOSBoxMenu::item * const /*m
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern std::string prtlist;
|
||||||
|
bool help_prt_callback(DOSBoxMenu * const /*menu*/, DOSBoxMenu::item * const /*menuitem*/) {
|
||||||
|
MAPPER_ReleaseAllKeys();
|
||||||
|
|
||||||
|
GFX_LosingFocus();
|
||||||
|
|
||||||
|
bool switchfs=false;
|
||||||
|
#if defined(C_SDL2)
|
||||||
|
int x=-1, y=-1;
|
||||||
|
#endif
|
||||||
|
if (prtlist.find("-------------")!=std::string::npos&&!GFX_IsFullscreen()) {
|
||||||
|
switchfs=true;
|
||||||
|
#if defined(C_SDL2)
|
||||||
|
SDL_GetWindowPosition(sdl.window, &x, &y);
|
||||||
|
#endif
|
||||||
|
GFX_SwitchFullScreen();
|
||||||
|
}
|
||||||
|
GUI_Shortcut(39);
|
||||||
|
if (switchfs) {
|
||||||
|
GFX_SwitchFullScreen();
|
||||||
|
#if defined(C_SDL2)
|
||||||
|
if (x>-1&&y>-1) SDL_SetWindowPosition(sdl.window, x, y);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
MAPPER_ReleaseAllKeys();
|
||||||
|
|
||||||
|
GFX_LosingFocus();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void SetCyclesCount_mapper_shortcut_RunInternal(void) {
|
void SetCyclesCount_mapper_shortcut_RunInternal(void) {
|
||||||
MAPPER_ReleaseAllKeys();
|
MAPPER_ReleaseAllKeys();
|
||||||
|
|
||||||
@ -12397,8 +12472,14 @@ int main(int argc, char* argv[]) SDL_MAIN_NOEXCEPT {
|
|||||||
set_callback_function(help_open_url_callback);
|
set_callback_function(help_open_url_callback);
|
||||||
mainMenu.alloc_item(DOSBoxMenu::item_type_id,"help_issue").set_text("DOSBox-X support").
|
mainMenu.alloc_item(DOSBoxMenu::item_type_id,"help_issue").set_text("DOSBox-X support").
|
||||||
set_callback_function(help_open_url_callback);
|
set_callback_function(help_open_url_callback);
|
||||||
|
#if C_NE2000
|
||||||
mainMenu.alloc_item(DOSBoxMenu::item_type_id,"help_nic").set_text("List network interfaces").
|
mainMenu.alloc_item(DOSBoxMenu::item_type_id,"help_nic").set_text("List network interfaces").
|
||||||
set_callback_function(help_nic_callback);
|
set_callback_function(help_nic_callback);
|
||||||
|
#endif
|
||||||
|
#if C_PRINTER && defined(WIN32)
|
||||||
|
mainMenu.alloc_item(DOSBoxMenu::item_type_id,"help_prt").set_text("List printer devices").
|
||||||
|
set_callback_function(help_prt_callback);
|
||||||
|
#endif
|
||||||
mainMenu.alloc_item(DOSBoxMenu::item_type_id,"help_about").set_text("About DOSBox-X").
|
mainMenu.alloc_item(DOSBoxMenu::item_type_id,"help_about").set_text("About DOSBox-X").
|
||||||
set_callback_function(help_about_callback);
|
set_callback_function(help_about_callback);
|
||||||
#if !defined(C_EMSCRIPTEN)
|
#if !defined(C_EMSCRIPTEN)
|
||||||
|
@ -48,6 +48,7 @@ static Bitu printer_timout;
|
|||||||
static bool timeout_dirty;
|
static bool timeout_dirty;
|
||||||
static std::string document_path;
|
static std::string document_path;
|
||||||
static std::string font_path;
|
static std::string font_path;
|
||||||
|
static std::string device;
|
||||||
static char confoutputDevice[50];
|
static char confoutputDevice[50];
|
||||||
static bool confmultipageOutput, shellhide;
|
static bool confmultipageOutput, shellhide;
|
||||||
static std::string actstd, acterr;
|
static std::string actstd, acterr;
|
||||||
@ -67,6 +68,41 @@ void CPrinter::FillPalette(uint8_t redmax, uint8_t greenmax, uint8_t bluemax, ui
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern std::string prtlist;
|
||||||
|
|
||||||
|
void CPrinter::getPrinterContext() {
|
||||||
|
#if defined (WIN32)
|
||||||
|
if (device.size()&&device!="-") {
|
||||||
|
printerDC = CreateDC("WINSPOOL", device.c_str(), NULL, NULL);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Show Print dialog to obtain a printer device context
|
||||||
|
PRINTDLG pd;
|
||||||
|
pd.lStructSize = sizeof(PRINTDLG);
|
||||||
|
pd.hDevMode = (HANDLE) NULL;
|
||||||
|
pd.hDevNames = (HANDLE) NULL;
|
||||||
|
pd.Flags = PD_RETURNDC;
|
||||||
|
pd.hwndOwner = NULL;
|
||||||
|
pd.hDC = (HDC) NULL;
|
||||||
|
pd.nFromPage = 1;
|
||||||
|
pd.nToPage = 1;
|
||||||
|
pd.nMinPage = 0;
|
||||||
|
pd.nMaxPage = 0;
|
||||||
|
pd.nCopies = 1;
|
||||||
|
pd.hInstance = NULL;
|
||||||
|
pd.lCustData = 0L;
|
||||||
|
pd.lpfnPrintHook = (LPPRINTHOOKPROC) NULL;
|
||||||
|
pd.lpfnSetupHook = (LPSETUPHOOKPROC) NULL;
|
||||||
|
pd.lpPrintTemplateName = (LPSTR) NULL;
|
||||||
|
pd.lpSetupTemplateName = (LPSTR) NULL;
|
||||||
|
pd.hPrintTemplate = (HANDLE) NULL;
|
||||||
|
pd.hSetupTemplate = (HANDLE) NULL;
|
||||||
|
if (PrintDlg(&pd)) printerDC = pd.hDC;
|
||||||
|
else printerDC = NULL;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
CPrinter::CPrinter(uint16_t dpi, uint16_t width, uint16_t height, char* output, bool multipageOutput)
|
CPrinter::CPrinter(uint16_t dpi, uint16_t width, uint16_t height, char* output, bool multipageOutput)
|
||||||
{
|
{
|
||||||
if (FT_Init_FreeType(&FTlib))
|
if (FT_Init_FreeType(&FTlib))
|
||||||
@ -127,35 +163,6 @@ CPrinter::CPrinter(uint16_t dpi, uint16_t width, uint16_t height, char* output,
|
|||||||
|
|
||||||
resetPrinter();
|
resetPrinter();
|
||||||
|
|
||||||
if (strcasecmp(output, "printer") == 0)
|
|
||||||
{
|
|
||||||
#if defined (WIN32)
|
|
||||||
// Show Print dialog to obtain a printer device context
|
|
||||||
PRINTDLG pd;
|
|
||||||
pd.lStructSize = sizeof(PRINTDLG);
|
|
||||||
pd.hDevMode = (HANDLE) NULL;
|
|
||||||
pd.hDevNames = (HANDLE) NULL;
|
|
||||||
pd.Flags = PD_RETURNDC;
|
|
||||||
pd.hwndOwner = NULL;
|
|
||||||
pd.hDC = (HDC) NULL;
|
|
||||||
pd.nFromPage = 1;
|
|
||||||
pd.nToPage = 1;
|
|
||||||
pd.nMinPage = 0;
|
|
||||||
pd.nMaxPage = 0;
|
|
||||||
pd.nCopies = 1;
|
|
||||||
pd.hInstance = NULL;
|
|
||||||
pd.lCustData = 0L;
|
|
||||||
pd.lpfnPrintHook = (LPPRINTHOOKPROC) NULL;
|
|
||||||
pd.lpfnSetupHook = (LPSETUPHOOKPROC) NULL;
|
|
||||||
pd.lpPrintTemplateName = (LPSTR) NULL;
|
|
||||||
pd.lpSetupTemplateName = (LPSTR) NULL;
|
|
||||||
pd.hPrintTemplate = (HANDLE) NULL;
|
|
||||||
pd.hSetupTemplate = (HANDLE) NULL;
|
|
||||||
PrintDlg(&pd);
|
|
||||||
// TODO: what if user presses cancel?
|
|
||||||
printerDC = pd.hDC;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
LOG(LOG_MISC,LOG_NORMAL)("PRINTER: Enabled");
|
LOG(LOG_MISC,LOG_NORMAL)("PRINTER: Enabled");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -223,7 +230,7 @@ CPrinter::~CPrinter(void)
|
|||||||
FT_Done_FreeType(FTlib);
|
FT_Done_FreeType(FTlib);
|
||||||
}
|
}
|
||||||
#if defined (WIN32)
|
#if defined (WIN32)
|
||||||
DeleteDC(printerDC);
|
if (printerDC) DeleteDC(printerDC);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1720,8 +1727,9 @@ void CPrinter::outputPage()
|
|||||||
{
|
{
|
||||||
#if defined (WIN32)
|
#if defined (WIN32)
|
||||||
// You'll need the mouse for the print dialog
|
// You'll need the mouse for the print dialog
|
||||||
if(mouselocked)
|
if (mouselocked)
|
||||||
GFX_CaptureMouse();
|
GFX_CaptureMouse();
|
||||||
|
if (!device.size() || printerDC==NULL) getPrinterContext();
|
||||||
|
|
||||||
uint16_t physW = GetDeviceCaps(printerDC, PHYSICALWIDTH);
|
uint16_t physW = GetDeviceCaps(printerDC, PHYSICALWIDTH);
|
||||||
uint16_t physH = GetDeviceCaps(printerDC, PHYSICALHEIGHT);
|
uint16_t physH = GetDeviceCaps(printerDC, PHYSICALHEIGHT);
|
||||||
@ -2074,7 +2082,7 @@ void CPrinter::finishMultipage()
|
|||||||
else if (strcasecmp(output, "printer") == 0)
|
else if (strcasecmp(output, "printer") == 0)
|
||||||
{
|
{
|
||||||
#if defined (WIN32)
|
#if defined (WIN32)
|
||||||
EndDoc(printerDC);
|
if (printerDC) EndDoc(printerDC);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
outputHandle = NULL;
|
outputHandle = NULL;
|
||||||
@ -2240,11 +2248,11 @@ void PRINTER_Init()
|
|||||||
//real_writew(0x0040, 0x0008, LPTPORT);
|
//real_writew(0x0040, 0x0008, LPTPORT);
|
||||||
|
|
||||||
if (!section->Get_bool("printer")) return;
|
if (!section->Get_bool("printer")) return;
|
||||||
inited = true;
|
|
||||||
document_path = section->Get_string("docpath");
|
document_path = section->Get_string("docpath");
|
||||||
ResolvePath(document_path);
|
ResolvePath(document_path);
|
||||||
font_path = section->Get_string("fontpath");
|
font_path = section->Get_string("fontpath");
|
||||||
ResolvePath(font_path);
|
ResolvePath(font_path);
|
||||||
|
device = section->Get_string("device");
|
||||||
confdpi = section->Get_int("dpi");
|
confdpi = section->Get_int("dpi");
|
||||||
confwidth = section->Get_int("width");
|
confwidth = section->Get_int("width");
|
||||||
confheight = section->Get_int("height");
|
confheight = section->Get_int("height");
|
||||||
@ -2269,6 +2277,32 @@ void PRINTER_Init()
|
|||||||
DOSBoxMenu::item *item;
|
DOSBoxMenu::item *item;
|
||||||
MAPPER_AddHandler(FormFeed, MK_f2 , MMOD1, "ejectpage", "Send form-feed", &item);
|
MAPPER_AddHandler(FormFeed, MK_f2 , MMOD1, "ejectpage", "Send form-feed", &item);
|
||||||
item->set_text("Send form-feed");
|
item->set_text("Send form-feed");
|
||||||
|
|
||||||
|
#if defined(WIN32)
|
||||||
|
if (!inited && !strcasecmp(confoutputDevice, "printer")) {
|
||||||
|
DWORD dwNeeded = 0, dwReturned = 0;
|
||||||
|
bool fnReturn = EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS, NULL, 1L, (LPBYTE)NULL, 0L, &dwNeeded, &dwReturned); PRINTER_INFO_1* pInfo = NULL;
|
||||||
|
if (dwNeeded > 0) pInfo = (PRINTER_INFO_1 *)HeapAlloc(GetProcessHeap(), 0L, dwNeeded);
|
||||||
|
if (NULL != pInfo) {
|
||||||
|
dwReturned = 0;
|
||||||
|
fnReturn = EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS, NULL, 1L, (LPBYTE)pInfo, dwNeeded, &dwNeeded, &dwReturned);
|
||||||
|
}
|
||||||
|
if (fnReturn) {
|
||||||
|
unsigned int devnum;
|
||||||
|
if (1!=sscanf(device.c_str(),"%u",&devnum)) devnum=-2;
|
||||||
|
prtlist = "Printer Device List\n-------------------------------------------------------------\n";
|
||||||
|
for (int i=1; i < dwReturned; i++) {
|
||||||
|
if(devnum>0&&i==devnum) device=pInfo[i].pName;
|
||||||
|
prtlist+=(i<10?"0":"")+std::to_string(i)+" "+pInfo[i].pName+"\n";
|
||||||
|
}
|
||||||
|
std::istringstream in(("\n"+prtlist+"\n").c_str());
|
||||||
|
if (in) for (std::string line; std::getline(in, line); )
|
||||||
|
LOG_MSG("%s", line.c_str());
|
||||||
|
} else
|
||||||
|
pInfo = NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
inited = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -90,6 +90,8 @@ public:
|
|||||||
CPrinter (uint16_t dpi, uint16_t width, uint16_t height, char* output, bool multipageOutput);
|
CPrinter (uint16_t dpi, uint16_t width, uint16_t height, char* output, bool multipageOutput);
|
||||||
virtual ~CPrinter();
|
virtual ~CPrinter();
|
||||||
|
|
||||||
|
void getPrinterContext();
|
||||||
|
|
||||||
// Process one character sent to virtual printer
|
// Process one character sent to virtual printer
|
||||||
void printChar(uint8_t ch);
|
void printChar(uint8_t ch);
|
||||||
|
|
||||||
|
@ -3,4 +3,4 @@ AM_CPPFLAGS = -I$(top_srcdir)/include "-DRESDIR=\"$(resdir)\""
|
|||||||
resdir = $(datarootdir)/dosbox-x
|
resdir = $(datarootdir)/dosbox-x
|
||||||
|
|
||||||
noinst_LIBRARIES = libmisc.a
|
noinst_LIBRARIES = libmisc.a
|
||||||
libmisc_a_SOURCES = cross.cpp messages.cpp programs.cpp setup.cpp support.cpp regionalloctracking.cpp shiftjis.cpp iconvpp.cpp
|
libmisc_a_SOURCES = cross.cpp messages.cpp programs.cpp setup.cpp support.cpp regionalloctracking.cpp savestates.cpp shiftjis.cpp iconvpp.cpp
|
||||||
|
1672
src/misc/savestates.cpp
Normal file
1672
src/misc/savestates.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -123,7 +123,11 @@ HRESULT CDirect3D::InitializeDX(HWND wnd, bool triplebuf)
|
|||||||
|
|
||||||
thread_run = true;
|
thread_run = true;
|
||||||
thread_command = D3D_IDLE;
|
thread_command = D3D_IDLE;
|
||||||
|
#if defined(C_SDL2)
|
||||||
|
thread = SDL_CreateThread(EntryPoint, "Direct3D", this);
|
||||||
|
#else
|
||||||
thread = SDL_CreateThread(EntryPoint, this);
|
thread = SDL_CreateThread(EntryPoint, this);
|
||||||
|
#endif
|
||||||
SDL_SemWait(thread_ack);
|
SDL_SemWait(thread_ack);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ using namespace std;
|
|||||||
|
|
||||||
CDirect3D* d3d = NULL;
|
CDirect3D* d3d = NULL;
|
||||||
void ResolvePath(std::string& in);
|
void ResolvePath(std::string& in);
|
||||||
static void d3d_init(void)
|
void d3d_init(void)
|
||||||
{
|
{
|
||||||
sdl.desktop.want_type = SCREEN_DIRECT3D;
|
sdl.desktop.want_type = SCREEN_DIRECT3D;
|
||||||
if (!sdl.using_windib)
|
if (!sdl.using_windib)
|
||||||
@ -30,7 +30,11 @@ static void d3d_init(void)
|
|||||||
SDL_SysWMinfo wmi;
|
SDL_SysWMinfo wmi;
|
||||||
SDL_VERSION(&wmi.version);
|
SDL_VERSION(&wmi.version);
|
||||||
|
|
||||||
if (!SDL_GetWMInfo(&wmi))
|
#if defined(C_SDL2)
|
||||||
|
if (!SDL_GetWindowWMInfo(sdl.window, &wmi))
|
||||||
|
#else
|
||||||
|
if (!SDL_GetWMInfo(&wmi))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
LOG_MSG("SDL:Error retrieving window information");
|
LOG_MSG("SDL:Error retrieving window information");
|
||||||
LOG_MSG("Failed to get window info");
|
LOG_MSG("Failed to get window info");
|
||||||
@ -50,7 +54,11 @@ static void d3d_init(void)
|
|||||||
OUTPUT_SURFACE_Select();
|
OUTPUT_SURFACE_Select();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (d3d->InitializeDX(wmi.child_window, sdl.desktop.doublebuf) != S_OK)
|
#if defined(C_SDL2)
|
||||||
|
else if (d3d->InitializeDX(wmi.info.win.window, sdl.desktop.doublebuf) != S_OK)
|
||||||
|
#else
|
||||||
|
else if (d3d->InitializeDX(wmi.child_window, sdl.desktop.doublebuf) != S_OK)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
LOG_MSG("Unable to initialize DirectX");
|
LOG_MSG("Unable to initialize DirectX");
|
||||||
OUTPUT_SURFACE_Select();
|
OUTPUT_SURFACE_Select();
|
||||||
@ -83,7 +91,6 @@ void OUTPUT_DIRECT3D_Select()
|
|||||||
{
|
{
|
||||||
sdl.desktop.want_type = SCREEN_DIRECT3D;
|
sdl.desktop.want_type = SCREEN_DIRECT3D;
|
||||||
render.aspectOffload = true;
|
render.aspectOffload = true;
|
||||||
d3d_init();
|
|
||||||
|
|
||||||
#if defined(WIN32) && !defined(C_SDL2)
|
#if defined(WIN32) && !defined(C_SDL2)
|
||||||
SDL1_hax_inhibit_WM_PAINT = 1;
|
SDL1_hax_inhibit_WM_PAINT = 1;
|
||||||
@ -232,18 +239,35 @@ Bitu OUTPUT_DIRECT3D_SetSize()
|
|||||||
// Create a dummy sdl surface
|
// Create a dummy sdl surface
|
||||||
// D3D will hang or crash when using fullscreen with ddraw surface, therefore we hack SDL to provide
|
// D3D will hang or crash when using fullscreen with ddraw surface, therefore we hack SDL to provide
|
||||||
// a GDI window with an additional 0x40 flag. If this fails or stock SDL is used, use WINDIB output
|
// a GDI window with an additional 0x40 flag. If this fails or stock SDL is used, use WINDIB output
|
||||||
|
void GFX_SetResizeable(bool enable);
|
||||||
if (GCC_UNLIKELY(d3d->bpp16))
|
if (GCC_UNLIKELY(d3d->bpp16))
|
||||||
{
|
{
|
||||||
|
#if defined(C_SDL2)
|
||||||
|
GFX_SetResizeable(true);
|
||||||
|
sdl.window = GFX_SetSDLWindowMode(windowWidth, windowHeight, SCREEN_SURFACE);
|
||||||
|
if (sdl.window != NULL) sdl.surface = SDL_GetWindowSurface(sdl.window);
|
||||||
|
else sdl.surface = NULL;
|
||||||
|
sdl.desktop.pixelFormat = SDL_GetWindowPixelFormat(sdl.window);
|
||||||
|
#else
|
||||||
sdl.surface = SDL_SetVideoMode(windowWidth, windowHeight, 16, sdl.desktop.fullscreen ? SDL_FULLSCREEN | 0x40 : SDL_RESIZABLE | 0x40);
|
sdl.surface = SDL_SetVideoMode(windowWidth, windowHeight, 16, sdl.desktop.fullscreen ? SDL_FULLSCREEN | 0x40 : SDL_RESIZABLE | 0x40);
|
||||||
sdl.deferred_resize = false;
|
sdl.deferred_resize = false;
|
||||||
sdl.must_redraw_all = true;
|
sdl.must_redraw_all = true;
|
||||||
|
#endif
|
||||||
retFlags = GFX_CAN_16 | GFX_SCALING;
|
retFlags = GFX_CAN_16 | GFX_SCALING;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#if defined(C_SDL2)
|
||||||
|
GFX_SetResizeable(true);
|
||||||
|
sdl.window = GFX_SetSDLWindowMode(windowWidth, windowHeight, SCREEN_SURFACE);
|
||||||
|
if (sdl.window != NULL) sdl.surface = SDL_GetWindowSurface(sdl.window);
|
||||||
|
else sdl.surface = NULL;
|
||||||
|
sdl.desktop.pixelFormat = SDL_GetWindowPixelFormat(sdl.window);
|
||||||
|
#else
|
||||||
sdl.surface = SDL_SetVideoMode(windowWidth, windowHeight, 0, sdl.desktop.fullscreen ? SDL_FULLSCREEN | 0x40 : SDL_RESIZABLE | 0x40);
|
sdl.surface = SDL_SetVideoMode(windowWidth, windowHeight, 0, sdl.desktop.fullscreen ? SDL_FULLSCREEN | 0x40 : SDL_RESIZABLE | 0x40);
|
||||||
sdl.deferred_resize = false;
|
sdl.deferred_resize = false;
|
||||||
sdl.must_redraw_all = true;
|
sdl.must_redraw_all = true;
|
||||||
|
#endif
|
||||||
retFlags = GFX_CAN_32 | GFX_SCALING;
|
retFlags = GFX_CAN_32 | GFX_SCALING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,16 +49,13 @@
|
|||||||
#define C_SDL_NET 1
|
#define C_SDL_NET 1
|
||||||
|
|
||||||
/* Define to 1 if you have the <d3d9.h> header file. */
|
/* Define to 1 if you have the <d3d9.h> header file. */
|
||||||
#if !defined(C_SDL2)
|
|
||||||
#define HAVE_D3D9_H 1
|
#define HAVE_D3D9_H 1
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_D3D9_H
|
|
||||||
/* Define to 1 if you want to add Direct3D output to the list of available outputs */
|
/* Define to 1 if you want to add Direct3D output to the list of available outputs */
|
||||||
#define C_DIRECT3D 1
|
#define C_DIRECT3D 1
|
||||||
|
|
||||||
/* Define to 1 to use Direct3D shaders, requires d3d9.h and libd3dx9 */
|
/* Define to 1 to use Direct3D shaders, requires d3d9.h and libd3dx9 */
|
||||||
#define C_D3DSHADERS 1
|
#define C_D3DSHADERS 1
|
||||||
#endif
|
|
||||||
|
|
||||||
/* MT32 (munt) emulation */
|
/* MT32 (munt) emulation */
|
||||||
#define C_MT32 1
|
#define C_MT32 1
|
||||||
|
@ -1299,6 +1299,7 @@ copy "$(SolutionDir)\..\contrib\windows\shaders\*.*" "$(OutputPath)\shaders\"</C
|
|||||||
<ClCompile Include="..\src\misc\programs.cpp" />
|
<ClCompile Include="..\src\misc\programs.cpp" />
|
||||||
<ClCompile Include="..\src\ints\qcow2_disk.cpp" />
|
<ClCompile Include="..\src\ints\qcow2_disk.cpp" />
|
||||||
<ClCompile Include="..\src\misc\regionalloctracking.cpp" />
|
<ClCompile Include="..\src\misc\regionalloctracking.cpp" />
|
||||||
|
<ClCompile Include="..\src\misc\savestates.cpp" />
|
||||||
<ClCompile Include="..\src\misc\setup.cpp" />
|
<ClCompile Include="..\src\misc\setup.cpp" />
|
||||||
<ClCompile Include="..\src\misc\support.cpp" />
|
<ClCompile Include="..\src\misc\support.cpp" />
|
||||||
<ClCompile Include="..\src\output\direct3d\direct3d.cpp" />
|
<ClCompile Include="..\src\output\direct3d\direct3d.cpp" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user