Right now, a few places in the frontend code still use printf and
consorts. We mark the affected files with a FIXME for now, and
add a dedicated exception for each. To be fixed!
Also tweak FORBIDDEN_SYMBOL_REPLACEMENT to hopefully really always
enforce a compiler error
Replace existing environment variable based revision number support by a file-based method
- Generate a special header file in the build output folder with the current revision number
- Include the new header file from internal_version.h when a specific define is set
- Update create_project to define SCUMMVM_INTERNAL_REVISION as needed and add the build output folder to the include path
- Remove support for git-svn clones in the revision script (not useful anymore after the switch to git)
Based on the SONiVOX® Embedded Audio Synthesis (EAS™) library, which is
part of the base Android OS.
CPU stats (Cortex A8 1GHz, monkey1 intro, peak values):
MAME OPL: 30%
DosBox OPL: 26%
EAS: 19%
This fixes the case where an MT-32 music type is erroneously returned with
the default GUI audio settings if an engine specifies MDT_PREFER_MT32. Many
thanks to wjp and fuzzie for their help and work on this
There are some calls to EngineManager::findGame() from within games, such as when loading saved games. It's critical not to unload the plugin from memory or other threads may crash. Therefore, we first scan using any plugin that's already in memory.
svn-id: r55089
After searching for the right plugin once, the filename will be saved to the config file under the domain 'plugin_files'. The key is the gameid and the value is the plugin file. The backup mechanism is searching plugin by plugin.
svn-id: r55061
The reason for this was that I found issues where the wrong functions were called in EngineManager for single plugin operation. Rather than inserting more messy #defines, I preferred to change the PluginManager to use virtual functions, which also makes EngineManager simpler.
svn-id: r55024
The reason to load each plugin was to figure out if it's a sound or engine plugin. Since all our plugin files are currently engines, there's no reason to load every file. If we get dynamic sound plugins, it'd be a good idea to make a quick and easy way to know which kind of plugin it is (e.g. a prefix or suffix in the filename).
svn-id: r55021
This should fix missing debugC output when the engine object uses debugC etc.
in its destructor (or functions called from there).
In theory all the engines should do that themselves, but to avoid any issues
because of them not doing it we still do it here to be safe.
svn-id: r54757
create_project will now use a different approach than recreating
base/internal_version.h. This is also because recreating this file might
result in accidental commits of the modified file and thus "screw up" the
version string on different systems.
svn-id: r54383
This makes it possible to write
DECLARE_SINGLETON(foo);
instead of
DECLARE_SINGLETON(foo)
without causing a warning about an extra semicolon.
The extra semicolon helps some editors at parsing the C++ code.
svn-id: r54258
One-plugin-at-a-time can have fragmentation caused by the ConfigManager if a game changes any configuration value. By reallocating and copying over the ConfigManager, we avoid this problem.
svn-id: r54243
This commit contains the AudioCDManager changes from the gsoc2010-opengl
branch. The other changes in that branch are restricted to the backends
directory only (plus configure).
The Nintendo DS and Dreamcast ports still need to be ported over to
the new Audio CD system, but that should be fairly easy to do.
svn-id: r54147
I reduced memory fragmentation using 2 principles: Plugins should be loaded for as little time as possible, and long lasting memory allocations should be allocated before plugins are loaded. There might still be a little fragmentation left.
Note that command line settings that require plugins to be loaded don't work yet, but they didn't work (properly) before either.
svn-id: r54097
- Changed the new dithering checkbox to be more generic (i.e. relevant for all engines that may support such a feature in the future)
- Changed the checkbox to be unchecked by default. As discussed on -devel, game enhancements in ScummVM should be off by default, and opt-in
- Changed the option from "sci_undither" to "disable_dithering"
- Changed theme version style to X.Y.Z and bumped it to 0.8.2
svn-id: r54090
From our current stance, this is a game enhancement, and should be on by default, like the rest of the game enhancements (AGI mouse, save/load replacement etc)
svn-id: r54070
This merge was extremely difficult to carry out. It wasn't entirely SVN's fault -- there were several merges to the branch that were done by hand. Please check for any issues and regressions. Also note that the DS makefile was not copied over since the "one at a time" plugin mode currently has too much fragmentation ie. it doesn't work.
svn-id: r54051
This is a first step towards getting rid of all uses of regular printf,
fprintf, vprintf, vfprintf, puts, fputs, etc. in our codebase.
The name format() reflects the purpose of the function, and parallels
String.format() in Java, boost::format, and others.
svn-id: r54004
This code should be enabled, when we decide to enable m_kiewitz' code to
disable the console window. Also we should add the command to the --help
output etc.
svn-id: r53769
This includes an rather hacky attempt to merge all the recent gp2x backend
changes into the branch. I suppose the gp2x backend and probably all new
backends, i.e. gph, dingux etc., might not compile anymore.
Since I have no way of testing those it would be nice if porters could look
into getting those up to speed in this branch.
svn-id: r53399
When the locale font are not found when loading the theme, it now
fallbacks to default language (i.e. English) and default font. For this to work
I had to move the TranslationManager initialization before the Theme is
loaded. Therefore it is now initialized when the GuiManager is constructed.
svn-id: r52896
The ELF loader does not have access to the symbols of the main
executable, it just relocates symbols to it via fixed offsets. We need
to make sure that loaded plugins are from the same link process to
prevent crashes. An embedded build date is used for that.
svn-id: r52730
Avoid linking all plugins against libstdc++ to free up some memory
(about ~40kb on Wii per plugin). Enable it on GameCube, Wii, DS and PSP
(PS2 doesn't have __cxa_atexit support in its libc).
svn-id: r52607
These devices are not able to create appropriate drivers.
The only purpose for now is having proper gui options and flags and music types for the device detector.
The corresponding GUIO flags for the new devices have been added, too.
svn-id: r51995
Only #define SCUMMVM_SVN_REVISION for base/version.cpp (at most), to
avoid having all source files implicitly depend on the SVN revision.
Also add a safeguard to prevent code from accidentally using the
internal header file base/internal_version.h.
svn-id: r51978
An #include was missing, causing the driver to never be built. Also fixed what
looked like a cut-and-paste error in generating the features string.
svn-id: r51056
* Added a yes/no variable _unix to configure, which controls when
-DUNIX is added to DEFINES
* Enable SEQ MIDI via _seq_midi by default on UNIX type systems,
except for those which override that.
* Switch SEQ MIDI code to check #define USE_SEQ_MIDI
(alternatively, we could compile it only conditionally...)
svn-id: r51055
Along with it documented that "0" is a special device handle
for the invalid device. Now getDeviceHandle returns 0, when
the identified device could not be found.
Also getMusicType now returns MT_INVALID (newly introduced),
when a non existing device was specified.
svn-id: r50470
This is a regression from r50158:
"LAUNCHER: hopefully fixed music driver selection via command line".
The problem here was that the code used operator[] of HashMap
to check whether "music-driver" was specified on command line,
but that on the other hand inserted a (key, value) pair with
a default constructed Common::String as value.
svn-id: r50469
In recent discussions on -devel it turned out, that this
feature is rather superfluous and instead we should rather
implement a proper error reporting in our GUI.
I also removed the dependency on iconv along with this.
svn-id: r50335
Based on patch #2903830: "Updated Translation Prototype" by alexbevi
which in turn is based on patch #1739965 by jvprat.
Currently it builds all translations right into ScummVM. Once the
feature will be accepted more widely, i.e. more translations will
pop up, it will be trivial to move translation strings to external
file.
Finished translation: Russian
Unfinished translation: Hungarian
Things which are nice to do:
- Language code -> language mapping for more user friendness
- Specifying fonts to be used with language
- Updating of interface language without restart. It will require
moving of much code to reflowLayout() methods for each dialog
The .po files must be in single byte encodings. I.e. no support
for Unicode.
svn-id: r49759
- Removed AudioCDManager Singleton, and changed code for using AudioCDManager in OSystem.
- Added initialization code for new AudioCDManager in BaseBackend and OSystem_SDL.
svn-id: r49548
Targets don't list savestates, plugins do; and since the user specified
a target, we should always list that first, and give the gameid only
as additional information.
svn-id: r48925
This removes the dependency on array.h from str.h.
Also, begun migration from the confusing type name "StringList" to
the more appropriate StringArray.
svn-id: r48282
We need to use a namespace Common { } there to make strict C++ compilers
like clang++ and comeau happy. I also added a slight comment about why
that is needed to the macro definition and a note that you need to use
it from the global namespace.
svn-id: r48254