Fix throttle=0 (unlimited speed) settings for both the Speedup/Turbo
config panel and the general throttle setting and make 100 the default.
Replace the speedup frame skip option with a "Frame skip" checkbox,
which enables skipping the appropriate number of frames if vsync or very
low system performance is in effect. The systemFrameSkip (under video
config) is added to this value.
With speedup_throttle=100, the old speedup behavior is used with 9
frames skipped.
With speedup_throttle == 0 && speedup_throttle_frame_skip, skip 9
frames at full speed, which is exactly the same as the old behavior,
since throttle == 0 is equivalent to speedup == true.
Hopefully these changes will make the turbo config dialog more useful
for users, by default frame skipping to work around vsync will be
enabled, and users can uncheck the "Frame skip" checkbox for a smoother
experience.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update openssl version, getopt URL and roll nasm back to stable, because
the snapshot hangs on Catalina.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Fix problem with the ZIP_SUFFIX option, which causes zip files to have a
suffix of "OFF" if the option is not set.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Since they share the filter function, but can change one from another
(setting on the GBA would apply to GB and vice-versa), we allow only
the proper setting to be toggled while a ROM is loaded.
If GB ROM, then `Options` > `Game Boy` > `LCD Filter` is enabled.
Likewise for GBA. If neither, then no option is enabled.
When we skip frames, we just don't draw them on our frontend. The
function `systemDrawScreen` also send the video frames to be recorded,
but only when called from the core.
Our solution creates a auxiliary `systemSendScreen` that only adds the
frame to the recording. It is called when the core decides to skip a
frame. This way we can get the video frame for recording, just like
audio ones are always sent.
The flag `wxST_NO_AUTORESIZE` does not behave well on our viewers. They
were being hidden due to not fitting the text box available.
On Windows, they were working as expected. It is unknown on MacOs.
XRC error: 131: vertical alignment flag `wxALIGN_BOTTOM` has no effect
inside a vertical box sizer, remove it and consider inserting a spacer
instead.
- Fix#517.
We already had `optFlashSize` for both SDL and WX ports. We assigned
this variable to replace all ocurrences of `winFlashSize`.
As a side note, this entire scope could/should be replaced by a better
auto-detect system for saving types. At the moment, it is only really
useful for the SDL port, since we have overrides for the WX port.
- Fix#585.
We offer a way to control the color saturation for GBA games such as
Fire Emblem Tactics Advance.
It will be enabled by default for GBA games and disabled for GB.
The user will be able to toggle both of them and these options
will be persistent by saving to `vbam.ini`.
- Fix#131.
Add a ZIP_SUFFIX option defaulting to "" that is added to the generated
.zip file with UPSTREAM_RELEASE before the .zip extension.
For example, for an experimental feature you could pass
-DZIP_SUFFIX=-timer_loop and the resulting .zip file would be
visualboyadvance-m-Win-64bit-timer_loop.zip or
visualboyadvance-m-Win-64bit-debug-timer_loop.zip for a debug build.
Also add a modeline to this cmake file because vim-sleuth always gets
the settings wrong. Or it could be the cmake filetype plugins.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
For the netlink dialog, leave the server IP text field enabled when the
server radio button is selected and bind it to the new option
gopts.server_ip which defaults to "*" for binding on all addresses,
which was the previous behavior.
Copy this value to the new GBALink global IP_LINK_BIND_ADDRESS and use
it when creating a listening socket.
SFML supports creating sf:IpAddress values from hostnames, consequently
no additional code is needed to support hostnames in the netlink dialog.
Change GetLinkServerHost to return the primary local address when the
value is "*", which was the previous behavior, and the set value
otherwise.
Remove the min/max macros from GBALink as they are unnecessary and
conflict with std headers.
Require at least SFML 2.4 instead of 2.x for the IP binding
functionality in cmake.
- Fix#632
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
- Remove forum link until it's back up.
- Add nightly builds link.
- Use ninja for build instructions instead of make.
- Note that wx 2.8 and non-stl builds are no longer supported.
- Mention fprintf(stderr, ...) in the debug messages section.
- Misc. minor edits.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
For the zip file containing the executable (and symbols for debug builds
on msvc) add the -debug suffix to the basename of the zip file for debug
builds.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
When UPSTREAM_RELEASE is set, only use gpg to make detached signatures
if the output of gpg -k is not blank. If it is not, the user has likely
installed a private key to sign with.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Quote variables containing the HOME or USERPROFILE, as they may have
spaces.
Check for both osslsigncode and signtool regardless of platform, and
prefer osslsigncode.
The reason for this being that osslsigncode is more reliable and does
not depend on system configuration in any way, while signtool can fail
under more conditions.
The other reason being that you can use either program on both windows
and linux. E.g. the mingw version of osslsigncode or the signtool from
mono distributions on linux.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
When we have a notebook with intel+nvidia, OpenGL sets both
`glXSwapIntervalSGI` (nvidia) and `glXSwapIntervalMESA` (intel) for
usage. That means that if the display is controlled by one, we may
disable vsync for the other card, therefore having no actual effect
on gameplay. With this, we check for all available functions and try
them all.
This may lead to some false warnings, but useful for debugging
purposes.
The vsync has to be {dis,en}abled before a ROM is loaded or we need to
restart the output module to apply it.
We also support MESA based installations (Intel HD Graphics, AMD/ATI and
Nouveau) on Linux.
Include the visualboyadvance-m.pdb file alongside the .exe for Visual
Studio debug builds.
Visual Studio generates this file with the debug symbols for debug
builds. The file is not generated for release builds. It is also
generated for RelWithDebInfo builds.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
soundInit() returns a bool to indicate success, and failure inevitably
leads to crashes as the emulator tries to use a NULL soundDriver.
On false, popup an error dialog saying that the sound driver failed to
initialize, this is at least better than crashes, which will also need
to be fixed.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Limit the utilLoad() function in src/Util.cpp to 32 MiB.
This function loads a file from disk and returns a memory image of it.
This is only used to load ROMs currently.
Fetch new set of tags from the origin remote explicitly rather than
whatever remote is associated with the current branch.
In this way, old tags on other remotes get overwritten as well.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Detect old badly formatted git tags we used in the user's git clone, and
if found delete all tags and fetch them from the origin.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Followup on 513af13d which replaces the use of libpng with the stb_image
headers.
- Remove the use of libpng in cmake.
- Remove libpng from list of vcpkg dependencies.
- Add libpng to list of wxwidgets link libraries when using vcpkg, since
it is no longer linked directly. This is necessary for static builds.
- Remove libpng from all package lists in installdeps.
- Remove libpng-dev from the debian control file.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>