Adds a `--disable-opus-cdda` flag that explicitly disables support
for Ogg Opus CDDA tracks and in turn avoid the need for the Opus package
dependencies such as the opusfile, opus, and ogg libraries.
This feature does not alter the default operation of ./configure, which
is to enable Opus CDDA support and quit if the Opus dependency package,
opusfile, is not found. The user can then choose to either a) install
the package or b) explicitly disable Opus support.
This commit also includes:
- fixes for a double-free in the MP3 close routine that
was discovered during testing
- a message if a CD audio track cannot be added during CDROM
mounting (such as attempting to use Opus tracks when the binary
does not support them).
- the --disable-opus-cdda flag in our config heavy workflow
The 'ptr' pointer in the 'ptr += sizeof (FM_OPL)' expression could be nullptr. In such case,
resulting value will be senseless and it should not be used.
One issue in BinaryFile's constructor:
There is no sense in testing the 'file' pointer against null, as
the memory was allocated using the 'new' operator. The exception
will be generated in the case of memory allocation error.
'new'
- https://www.viva64.com/en/w/v668/
Two issues relating to assigning a value that's already assigned
- https://www.viva64.com/en/w/v1048/
Versions of GNU make prior to verion 4 do not support
'define =' syntax, but do however support 'define' without
the equals operator. This commit removes the equals operator
to ensure this Makefile is compatible with older versions
of GNU make.
Reported and tested on Windows XP-MinGW with GNU make 3.81
by @ant-222; thank you!
Problem with libpng12/libpng16 strikes again - Steam Runtime is missing
libpng16, so users who want to test dosbox-staging via Steam are not
able to start it.
This is the only library, that needs to be disabled - all other
dependencies are included in Steam Runtime and work fine.
Users who test dosbox-staging via various GUI frontends might have a
problem distinguishing if the instance they have configured is really
dosbox-staging or some other version of DOSBox. Different splash screen
is a simple remedy for it.
Two graphical files are included: one in vector format to allow for
further refinements and one converted to necessary size in png format,
that is used as direct source of logo embedded in the source code. Use
GIMP to convert the png logo to a C file.
Notes about new design:
Orange background was replaced by black to make switch to black
background of empty terminal a little less jarring.
The box side is covered with the rainbow-like pattern to resemble logos
of various computer platforms popular in the 80s. AFAIK IBM or
PC-clones never had such colourful logos, but the point is to resemble
a retro-computing platform while being aesthetically pleasing.
Some computing platforms, that used rainbow patterns are Sinclair,
Commodore, Amiga, Dragon 32, and Apple. The pattern used for
dosbox-staging splash is deliberately different from all of these.
Word "staging" is rendered using excellent Raleway font:
https://www.theleagueofmoveabletype.com/raleway
This change is not supposed to be upstreamed.
This commit adds `wget` as a fall-back if `curl` fails.
Additionally, it lets the user override the curl and wget
arguments by passing `CURL_FLAGS="args"` and
`WGET_FLAGS="args"` to make.
If both curl and wget fail, it suggesting the user manually
fetch the files or try other curl or wget arguments.
The commit-check step run a bash script however its `shell:`
directive was unset, meaning that under Windows the script
would be executed by PowerShell. This commit fixes this by
explicitly setting `shell: bash`.
It's impossible to change the line length in .mdlrc file, it requires
writing a project-specific style ruby file. It seems like MD013 is
buggy, as we have tables with longer line lengths already, and the
warning shows up at column 85 and not 80, as documented in official
markdownlint.
The commit switches from installing gcc or clang under Windows to
simply always installing clang (which also installs gcc as a dependency).
This ensures that cache's produced from a gcc-specific builds will
be compatible with clang builds.
Users, who try to compile keep tripping over it, despite documentation
in the INSTALL file. Also, autoconf-archive might be hard to install
for users, who opted not to use MSYS2 and stick to MinGW only.
This commit bundles macros:
AX_CXX_COMPILE_STDCXX (version/serial 10)
AX_CXX_COMPILE_STDCXX_11 (version/serial 18)
MSVC replaced its own non-standard implementation of stricmp with
ISO-compliant _stricmp, and issues a security warnings when old name is
used.
This tiny redefine solves 129 warnings in Visual Studio 2019.