* for the libretro core, removed a couple of packages which are not needed for the libretro core.
* for the standalone, removed `libglew` which is only used on Windows for one of the plugins and make the GLU libraries mandatory since the core doesn't build without it.
There's no 'gles2' flag, use 'gles' to detect GLES2 only systems and add the GLES build options (e.g. Pi3).
Added the project's README.md file to the installation.
On the rpi5 on 32bit arm rpios bookworm, building failed with
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:18284:34: error: unknown type name ‘float16x4_t’; did you mean ‘bfloat16x4_t’?
18284 | vfmlal_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
| ^~~~~~~~~~~
| bfloat16x4_t
Add the option -mfp16-format=ieee which fixes this.
Use an array add_clags to handle the additional CFLAGS changes and use for the linkage_arm.S workaround.
Force PLATFORM=arm on arm systems. Without this mame builds for aarch64 and sets PTR64=1 erroring out with:
static_assert(sizeof(void *) == 8, "PTR64 flag enabled, but was compiled for 32-bit target\n");
This also fixes building of lr-mame2016
Due to the old EGL version implemented by the old BRCM GLES drivers, the core cannot obtain a (HW) GL context to be used for accelerated video output. Disable this feature on systems using the old/legacy GLES(2) driver.
C++20 changes were added in 7a85faef which broke compatibility with GCC 8.
GCC 10 compatibility was removed a few commits later in a8a23f61
Fix to commit 2d57f9e0 (last building on GCC 8) on GCC < 11
* MAME specifically checks for GCC 10.3 so we need to compare with the full GCC version as bullseye has 10.2.
* lr-mame - Remove "master" branch from rp_module_repo so the _get_version tag is passed as a branch to checkout
* lr-mame - Simplify _get_version_lr-mame as the tagname variable was only used once
Changelog:
* General
- Improved vanilla compatibility.
- Boom features removed.
- Hall of mirrors greatly reduced.
- Visplane overflows fixed.
- Savegame buffer overflow errors remain.
* Levels
- New levels E1M9, E2M2, E2M3, E2M4, E2M7, E2M8, E3M5, MAP07, MAP21 and MAP27.
- Numerous vanilla fixes and aesthetic modernizations.
- Fixed and standardized secret exits.
* Monsters
- New minigunner
- The hatchling, which replaces the deadflare.
- The matribite, which replaces the summoner.
* Music
- Lots of new music including most of FreeDM music.
* Sounds
- New boss brain sounds.
* Visuals
- Colorblind-friendly keys and key indicators.
- Various revisions to sprites and textures.
- Improved kerning for menu text.
* Weapons
- Improved weapon sprites generally.
- SSG replacement restored to updated take on older version.
- Double-barreled shotgun flash timing bug fixed in built-in DeHackEd.
* Textures
- Esa Repo (Espi)'s old STAR* textures are now included under ESPI*.
- A STARBR1 texture is now included as a counterpart to STARBR2.
- Numerous additional grey and METAL2-based textures also available.
- Boss brain wall found to have Hexen resources and was re-done.
- Wolfenstein replacements completely redone, designed to work as seamlessly with other textures as possible. A few are also added.
Upstream has added support for using an OpenGL(ES2) context for 3D games and HW rendering. The core will request a HW GL context from RetroArch when starting.
Added the necessary parameters to the build to support the GL context for the platform where RetroArch is running.
We removed the `python3` parameter setup in commit 2a95dd076a, but the build parameters are also used by Mame/Mess 2016.
Mame2016/Mess2016 have python2 still as default, so re-add the `PYTHON_EXECUTABLE` configuration.
Starting with version 0.265 (April 2024), GCC 10.3 is required for building MAME.
Enforce this requirement when building the emulator and libretro cores, Debian Buster will be getting 0.264 as the last version.
DirkSimple is a laserdisc game player that implements specific titles from scratch, so it uses an arcade game's video content but not its roms. It takes game data in Ogg Theora format, so the "rom" that the core needs is a single .ogv file per game.
Update the build parameters so:
- optimization level matches RetroPie's compiler options (-O2)
- removed `PYTHON` pre-set since it's set now to `python3` by default
- disable PortAudio, not needed since audio is handled by RetroArch
Core on v1.13.2 fails to run on Pi4 with the error:
...
[ERROR] Failed to open libretro core: "/opt/retropie/libretrocores/lr-ppsspp/ppsspp_libretro.so"
Error(s): /opt/retropie/libretrocores/lr-ppsspp/ppsspp_libretro.so: undefined symbol: hostAttemptBlockSize
This was fixed upstream with commits 1cd34f9d2bef6c92ed457c6aa85bf4d9b5111e90 and 7c5d36eca76c905a122c1, which are combined in the .diff file in this commit.
4b2392bb1d forces BUILTIN_GPU to neon for all arm platforms, as ARCH_DETECTED gets set to "arm" which is a substring of "arm64".
Workaround this in our scriptmodule by setting BUILTIN_GPU=peops on non neon arm platforms (eg. armv6).
The 'ubershaders' introduced in v1.14 are not handled efficiently by the Mesa v3d driver, causing a performance regression [1].
Since the slowdown is not present in the Mesa version from Bullseye/Bookworm (which caused in part the version upgrade), install v1.13.2 just on Buster/RPI.
[1] https://github.com/hrydgard/ppsspp/issues/18388
Added the libretro core from upstream flyinghead/flycast, it supercedes the current libretro/flycast repository used for the current `lr-flycast` core.
The new core doesn't work correctly with the legacy VideoCore GLES drivers [1], so it will have to co-exist with the current `lr-flycast` until we drop support for older RaspiOS versions still using the VideoCore drivers.
Due to an internal compiler error, the enw core doesn't build on Buster with the included `gcc8`, but works on `gcc9` and later, which means it can be installed on Debian 11/Ubuntu 20.04 and later.
Tested on RaspiOS _bookworm_ with `vulkan`, `glcore` and `gl` RetroArch video drivers, on a Pi4.
[1] https://github.com/flyinghead/flycast/issues/559
Looks like some deprecation in python3.11 breaks building the Mame/Mess2016 cores due to some codegen including python scripts.
Similar to the commit for `lr-mame2016`, allows us to build on the newer Bookworm.
Looks like some deprecation in python3.11 breaks building the Mame2015 core due to some codegen including python scripts.
Upstream has a PR proposed in https://github.com/libretro/mame2015-libretro/pull/98, but not applied, so create one locally.