This project is mirrored from https://*****@github.com/libretro/vbam-libretro.git. Pull mirroring updated .
  1. 17 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      work around gcc lto wrappers bug with gcc 7.x · 7f1fec88
      Rafael Kitover authored
      gcc lto wrapper commands such as `gcc-ar` will segfault with some
      versions of gcc 7.x when called via an absolute path, see:
      
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80717
      
      Generalize the mechanism for compiling a small C program on the host
      (currently used for bin2c for Wx resources) and use it to wrap the gcc
      wrappers in a little executable that prepends their dirname to PATH and
      runs them with `execvp()`.
      
      Make LTO default to ON again, except on win32 with gcc < 7, because
      those toolchains produce broken binaries with LTO enabled.
      
      Also add `-ffat-lto-objects` to compiler flags for gcc when LTO is
      enabled, this will increase the chances that the LTO build will succeed
      even if there are issues with the binutils wrappers. Clang does not
      support this.
      7f1fec88
  2. 14 Sep, 2017 1 commit
  3. 13 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      restore wx 2.8 compat, improve string processing · 02b3defc
      Rafael Kitover authored
      Fix building with wx 2.8 by rewriting some more string related code.
      
      Replace all calls to .c_str() with .mb_str().
      
      Remove some of the .c_str()/.mb_str() calls where the target is already
      wxString.
      
      Move the split()/enum_idx() functions from opts.cpp into
      str_split()/vec_find() in strutils.h/strutils.cpp for use in other
      files.
      
      Replace the C-style string parsing code in a couple of places in
      wxvbam.cpp for processing possible command line options by splitting on
      '='.
      
      Also replace a couple of places that use pointer arithmetic in
      widgets/joyedit.cpp and widgets/keyedit.cpp with wxString methods.
      02b3defc
  4. 12 Sep, 2017 2 commits
    • Rafael Kitover's avatar
      cmake: wx and cross compiling fixes · fa9afa4e
      Rafael Kitover authored
      When calling find_package(wxWidgets ...) allow the first call to fail
      because the OpenGL library may not be found. A subsequent call without
      listing the OpenGL library is done with REQUIRED.
      
      And if the OpenGL library is not found, skip the OpenGL compile test.
      
      When cross-compiling (e.g. with mxe or other mingw packages) skip the wx
      ABI compatibility run tests.
      
      When choosing which minhook lib to link to the wx ABI compat run test
      program, check for 64 bit but fallback to 32 bit just in case.
      fa9afa4e
    • Rafael Kitover's avatar
      installdeps: fedora fixes, including m32 · 5691ac0c
      Rafael Kitover authored
      Fix some syntax errors and extraneous output in fedora_installdeps().
      
      "Fix" the 32 bit deps installer to try to ignore file conflicts between
      i686 and host rpms, by first using rpm --force to install the 32 bit
      rpms and then overwriting them with the host ones using --force as well.
      This is hackish and fragile, but there aren't any good alternatives
      right now.
      5691ac0c
  5. 10 Sep, 2017 3 commits
  6. 08 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      minor improvements for Wx compile tests · 42f6c446
      Rafael Kitover authored
      Include `wx/wxprec.h` (precompiled header first in test programs to
      possibly make the tests slightly faster.
      
      For the ABI compat check, set a variable for the test program instead of
      listing it twice.
      42f6c446
  7. 04 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      improve wx GCC ABI check #142 · ceef480e
      Rafael Kitover authored
      Following some suggestions from @ArtiiP, first check if there are no
      issues without an -fabi-version flag, and then instead of incrementing
      from 0, decrement from 15 to find the highest working ABI version.
      
      This is very slow if the needed ABI version is 2 for example, but not
      much to do about that for the time being.
      ceef480e
  8. 03 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      improve Wx GCC ABI check #142 · b1937fe9
      Rafael Kitover authored
      Start checking the ABI version at -fabi-version=0, which is the default,
      and if that succeeds don't set the flag at all.
      
      This will allow the code to work properly if and when Wx removes the ABI
      check alltogether.
      b1937fe9
  9. 02 Sep, 2017 2 commits
    • Rafael Kitover's avatar
      installdeps: minor refactoring/cleanup · 4b1c9b4e
      Rafael Kitover authored
      Break command line argument processing and OS detection off into
      functions called from `main()`.
      
      Remove all references to cairo.
      
      For fink, install the SFML package I made instead of turning off link.
      4b1c9b4e
    • Rafael Kitover's avatar
      compile/run test to detect Wx ABI version #142 · 2ad20461
      Rafael Kitover authored
      In 4e665ae0 I hardcoded -fabi-version=2 for g++ flags, and @ArtiiP
      pointed out that this is wrong, because Wx may be compiled with other
      ABI versions.
      
      Add cmake check_cxx_source_runs() tests to determine the correct ABI
      version flag to use with Wx.
      2ad20461
  10. 01 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      use -fabi-version=2 for GCC, turn off LTO #142 · 4e665ae0
      Rafael Kitover authored
      Use the g++ `-fabi-version=2` compiler option, as suggested by @ArtiiP
      to fix problems similar to:
      
      ```
      Fatal Error: Mismatch between the program and library build versions
      detected.
      The library used 3.0 (wchar_t,compiler with C++ ABI 1002,wx
      containers,compatible with 2.8),
      and your program used 3.0 (wchar_t,compiler with C++ ABI 1009,wx
      containers,compatible with 2.8).
      Aborted
      ```
      
      Turn LTO off by default until I fix it for newer gcc/binutils, currently
      with gcc7 ar segfaults linking vbamcore.
      4e665ae0
  11. 31 Aug, 2017 1 commit
    • Rafael Kitover's avatar
      installdeps: use -j$(nproc) not -j8 in info #146 · 1a27f813
      Rafael Kitover authored
      Replace the hardcoded `make -j8` command in the build instructions with
      a `-j` parameter that is the number of the host's CPUs minus one.
      
      Subtracting 1 is done to reduce chances of overloading the host.
      
      If the value is `1`, then don't print the `-j` flag at all.
      1a27f813
  12. 30 Aug, 2017 1 commit
  13. 28 Aug, 2017 2 commits
  14. 27 Aug, 2017 6 commits
    • Rafael Kitover's avatar
      remove version.h in ConfigManager and AutoBuild.h · e0f79f32
      Rafael Kitover authored
      ConfigManager does not use any version info, but is part of libvbamcore,
      so removing the `#include` makes rebuilds after git changes much much
      faster.
      
      Remove the AutoBuild.h includes from ConfigManager.cpp and SDL.cpp (the
      SDL port) because the information in that file does not seem to be used
      and it also includes version.h, forcing those files to rebuild
      unnecessarily.
      e0f79f32
    • Rafael Kitover's avatar
      remove cairo references from README.md · 82d0b04a
      Rafael Kitover authored
      Since Cairo was dropped in 1583a226, remove all references to it in
      README.md .
      82d0b04a
    • Rafael Kitover's avatar
      fix rebuilds on git changes · 2179215a
      Rafael Kitover authored
      Use cmake to generate the version.h from version.h.in which is a cleaned
      up version of the old version.h with the git short sha into the build
      directory, and include the version.h from there.
      
      Continue to use the GetGitRevisionDescription plugin to make the cmake
      configuration state depend on the current sha of HEAD, but throw away
      the results (for the time being.)
      
      This makes rebuilds after git changes such as a commit only recompile a
      couple of files instead of the whole tree.
      2179215a
    • Zach Bacon's avatar
      Say good bye to cairo · 23ed930d
      Zach Bacon authored
      23ed930d
    • Zach Bacon's avatar
    • Rafael Kitover's avatar
      "no throttle" fixes/cleanups · 1a8f2f98
      Rafael Kitover authored
      `throttle == 0` is supposed to emulate at full speed and drop audio
      data, this is different from `throttle == 100` which is emulation
      throttled at normal speed, the default setting.
      
      Fix the recently rewritten SoundSDL sound driver to make `throttle == 0`
      work, and make some minor changes to clean up the relevant code in the
      XAudio2 sound driver.
      1a8f2f98
  15. 17 Aug, 2017 2 commits
    • Rafael Kitover's avatar
      document how to provide symbolic backtraces · 9bca4f72
      Rafael Kitover authored
      Add a "REPORTING CRASH BUGS" section to the README.md with instructions
      for how to provide a symbolic backtrace on Linux and MSYS2.
      
      Add a "Crash bugs" section the the issue template with a link to said
      README.md section.
      9bca4f72
    • Rafael Kitover's avatar
      cleanup SoundSDL #139 #130 #97 #67 #65 #46 #47 · 1e3a85a3
      Rafael Kitover authored
      Rewrite SoundSDL (the SDL sound driver).
      
      Clean up the code and eliminate all deadlocks/hangs/crashes (hopefully.)
      
      Many of the deadlocks were caused by initialize() not de-initializing
      properly and causing the audio callback thread to deadlock, fix this.
      
      Also use better logic for the semaphore controls, which will also
      hopefully increase audio quality.
      
      Use better logic for the throttle control, with throttle == 0 being the
      same as throttle == 100 and implement setThrottle().
      
      Also increase the buffer size to 300ms and the number of samples to
      2048, for hopefully less choppiness in audio overall.
      1e3a85a3
  16. 16 Aug, 2017 4 commits
  17. 15 Aug, 2017 1 commit
    • Rafael Kitover's avatar
      temp fix for deadlocks in SoundSDL on pause #139 · 03a20820
      Rafael Kitover authored
      SDL_PauseAudioDevice seems to be causing thread deadlocks in combination
      with Wx threads (e.g. on menu activation or modal dialogs.)
      
      Remove these calls from SoundSDL::pause() and SoundSDL::resume() for the
      time being so that deadlocks do not happen.
      
      This effectively allows pausing, but on resume there is no sound for 2-3
      seconds until the buffer is filled again.
      
      This will need a proper fix at a later time.
      03a20820
  18. 14 Aug, 2017 1 commit
  19. 09 Aug, 2017 3 commits
    • Rafael Kitover's avatar
      fix memory viewer xrc on wx 3.1+ #127 · fb15aed2
      Rafael Kitover authored
      Remove the wxALIGN_CENTRE_VERTICAL flag from items that have the
      wxEXPAND flag in the MemViewer.xrc because wx 3.1+ warns about the flags
      being incompatible.
      fb15aed2
    • Rafael Kitover's avatar
      let cmake escape -D preproc. definitions · 1d0eece0
      Rafael Kitover authored
      As cmake now warns when policies are set to OLD, change the CMP0005
      policy to NEW.
      
      What this does is have cmake escape -D preprocessor definitions passed
      to e.g. add_definitions() starting in cmake 2.6 . This is fine since the
      minimum cmake version we support is 2.8.12 . It also makes the code
      cleaner since we don't have to escape quotes anymore ourselves. This
      will also work better on different platforms, where different escapes
      may be needed.
      
      Remove all quote escapes from string params to add_definitions() for
      this policy change to work.
      1d0eece0
    • Avindra Goolcharan's avatar
      SUSE Lint: fix a few classes of warnings #136 · 0bdbcf31
      Avindra Goolcharan authored
      - drop unused variables
      
      - unused-but-set-variable
      
      - stray trailing comments
      
      - in viewsupt.cpp replace redundant expression with variable that holds the same value
      0bdbcf31
  20. 08 Aug, 2017 1 commit
    • Avindra Goolcharan's avatar
      fix errors reported by SUSE's post-build linter · dd91abf7
      Avindra Goolcharan authored
      In StartRFUSocket() in gba/GBALink.cpp move a postincrement out of an
      expression to a following statement, because the evaluation order is
      undefined.
      
      In GetDevices() in wx/openal.cpp replace an #else with an #endif so that
      the function has a default return statement visible to the linter.
      
      In FilterThread::Entry() add a `return 0;` (ExitCode) statement at the
      end even though it is probably never reached.
      
      In the TransferToWindow() for the positive double validator widget in
      wx/widgets/wxmisc.cpp add a default `return true;`, for the rare case
      there is no double value, in which case the string representation would
      be displayed (since it is a subclass of wxGenericValidator(wxString&) .)
      dd91abf7
  21. 04 Aug, 2017 1 commit
  22. 03 Aug, 2017 1 commit
  23. 03 Jun, 2017 2 commits