Update amiberry version to v5.1 tag
Remove no longer needed libxml2-dev dependency
Add patch for amiberry Makefile so it doesn't override our CFLAGS/CPPFLAGS/LDFLAGS
Remove -O3 from Makefile so it uses our default optimisation level. Previously this was -Ofast but from my own testing -O2 with our compiler flags works best.
Modify build_amiberry with updated paths for caps bootstrap/configure. Override CPUFLAGS for amiberry, so our flags are used, rather than the ones hard-coded into the Makefile.
Include abr and kickstarts folder in install_amiberry. The kickstarts folder includes a freely distributable AROS rom, so let's include it.
Symlink cd32.nvr from "$md_inst/data" to "$md_conf_root/amiga/amiberry" so it's writable by amiberry.
Split uae4arm's shared configure function out so uae4arm and amiberry now only share the launcher code. There is a small amount of duplication with some folder creation in configure_amiberry but it makes sense to split them due to the new amiberry changes.
Rework uae4arm/amiberry configure functions to simplify logic and remove nesting by changing order of calls.
Change the addEmulator calls in uae4arm and amiberry due to parameter ordering changes in the shared launcher script.
Move rom location for amiberry/uae4arm/uae4all to $biosdir/amiga
Create update hook to move / symlink kickstart ROMs from $biosdir to $biosdir/amiga
Add .lha to module description extensions
Added .chd extension to platforms.cfg
Rework the logic in the shared launcher script:
* Instead of setting EMULATOR variable via sed in uae4arm/amiberry we just change "use_amiberry=0" to "use_amiberry=1" in configure_amiberry.
* Argument ordering is changed to simplify the logic. Previously the launch script expected [CONFIG] [ROM/GAME], and setting [CONFIG] to auto or "" would handle it automatically. Now it uses [ROM/GAME] [ARGS]. As passing in a configuration was optional, it made it simpler just to have the ROM first, and then allow additional arguments to be sent to the emulator.
* We now build up an parameters array which avoids duplication and simplifies the code - There is only a single call to launch uae4arm/amiberry with the processed parameters.
* Switched to using the amiberry --model parameter over our previous rp-a500.uae/rp-a1200.uae configs. Users who have set a particular rom to use amiberry-a500/amiberry-a1200 will still get the same functionality but it will instead use --model A500/A1200. A per rom .uae config can still be saved with customised settings for an adf etc.
* added support for .chd files for amiberry
How uae4arm.sh handles launching:
* If the first argument (ROM/GAME) is a .cue or .lha file, and we are launching amiberry, use amiberry's --autoload function.
* Otherwise if a rom argument is present, see if it's an archive (only zip supported currently). If it is, unpack all known disk image extensions from the archive attach each one as floppy drive arguments (-0 / -1 / -2 etc)
* If it's not an archive, treat it as a disk image itself, and try and find additional files starting with the same name (eg Game_Disk1/Game_Disk2) and attach them as floppy drive arguments.
* We then check if there is a .uae config file with the same name as the ROM argument in the ROM's folder or in amiberry's conf folder.
* If there isn't we will try and use a config based on the filename. For uae4arm it will use the pre-installed rp-a500.uae config by default and rp-a1200.uae for any files containing AGA or CD32. For amiberry we use the --model parameter which chooses a default config based on argument. By default we use A500, but switch to A500P if a file contains ECS and A1200 if a file contains AGA, and CD32/CDTV if those strings are included also (Although cd images are handled separately so this may not be too useful).
* We always set -G to not show the GUI when the first argument is present - to override this the first argument can be blank and manual parameters can be used (or the amiberry executable can just be used directly)
Current master has shader issues on videocore causing a black screen, so switching back to last tagged version - v1.12.3.
Historically we have had to fix up a fair number of ppsspp issues on the RPI due to upstream changes so sticking to a stable release seems like a good idea and allows us to test before we update.
The PPSSPP repository is also quite active and re-building ppsspp/lr-ppsspp binaries for every change takes a lot of time, so this also frees up some cpu time on our build system.
Hello As you know, a zip build has been released about 5 days that in same link for arm32-bit and arm64 64-bit.
It doesn't change much else since the Redream script takes care of loading aarch32.elf or aarch64.elf if you are under 32bits or 64bits.
Only supported on boards the GPU driver can run context opengl 3.1 up to 4.5 (some extensions optional) or Opengl es 3.1 context.
PPSSPP CMakeLists.txt adds -latomic for android targets, but this is also needed on armv6 on RaspberryPi OS Buster.
This commit sets the variable ATOMIC_LIB to "atomic" for videocore / armv6 so that -latomic is added.
ags3 development branch has switched to an SDL2 backend, but also has build issues on my Ubuntu 21.10 system.
The module will need updating to support this, but it's better to wait until the next version is released and tested working.
This var is not set locally, it is inheriting wrong value "main packages" from ../admin/setup.sh#L380, resulting in:
mupen64plus-gles2ricemain packages = "...
Version 2.5.1 incorporated the OpenGL based scalers by default and this causes a runtime error on GLES platforms.
Update to a post-2.5.1 commit which changes the OpenGL loader from GLEW to GLAD and fixes this problem.
Minor - upstream license changed to GPL3+.
Changed the flags so the module is only available for a Raspberry Pi that doesn't
have videocore - the RPI4 only for now.
Disabled openal support as the openal code doesn't compile currently.
Changes in 2.5.1:
* Added scalers in OpenGL mode
* Fixed several bugs in The Lost Files of Sherlock Holmes
* Made the sound for Sam & Max more accurate
* Improved graphics for some Macintosh SCUMM games
* Implemented more renderers for The Longest Journey
* Many enhancements added to Little Big Adventure
* Fixed the dreaded bug on World of Xeen startup
Changes:
* Added support for Tandy Color Computer 3 (NTSC/PAL).
* Added support for Tandy MC-10
* Emulator tries multiple SDL video renderers in order
* Tape play/pause function
* New snapshot format to support CoCo 3, MC-10
* Add Control+Shift+D to flush disk images
* RACE Computer Expansion Cage support (-cart mpi-race)
* Support leading "~/" in filenames, not just path element
* IDE, NX32, MOOH now all require user to specify an image
Scriptmodule changes:
* Added explicit dependencies for ALSA and ZLIB. PulseAudio dependency added for `x11` platforms
* Added emulator entries for CoCo3 models (PAL/NTSC)
* Removed OSS support explicitely during build
With gcc10 and newer, the `-fno-common` option is the default, causing
issues for global variables with multiple declarations that are missing the `external` initializer.
See https://wiki.gentoo.org/wiki/Project:Toolchain/Gcc_10_porting_notes/fno_common for a summary.
Added a couple of patches to fix building for older `advmame` versions:
* for `advmame-1.4`, pick https://github.com/amadvance/advancemame/commit/f8688cae05
* for `advmame-0.94`, created a separate patch
As a minor modification, used the scriptmodule `md_path` variable to calculate the patch folder location.
Notable changes in ScummVM 2.5:
- ResidualVM project merged with ScummVM, adding support for Grim Fandango, The Longest Journey and Myst 3: Exile.
- 10 more new engines and subengines that add compatibility with the following games:
* Little Big Adventure
* Red Comrades 1: Save the Galaxy
* Red Comrades 2: For the Great Justice
* Transylvania
* Crimson Crown
* OO-Topos
* Glulx interactive fiction games
* Private Eye
* AGS Games versions 2.5+
* Nightlong: Union City Conspiracy
* The Journeyman Project 2: Buried in Time
* Crusader: No Remorse
* L-ZONE
* Spaceship Warlock
- added new localization and multiple platform versions existing games.
- major rework of the GUI: support for Unicode everywhere, support for high resolutions and HiDPI screens.
- support for GOG/Steam achievements to a large number of Wintermute games.
- support for Keymapper in more games.
Module changes:
- corrected the backend spelling for the SDL1 version and quoted the game name in the start script.
- minor adjustment to the SDL1 version patches.
- added 2 new dependencies (libgif,liba52)
Previously the "not x11" meant "arm", but it's better to use the flag now as lots has changed since this was written.
Also use armv6 for lowering samplerate instead of testing for rpi1 to be more generic.
Looks like they may be using newer C++ features than gcc 8.x provides, but this module is better
fixed to a specific version anyway as it's required workarounds for similar issues in the past.
+ automatically get latest tag (thanks @dankcushions)
The main reason to switch from master branch to a fixed version (tag) is all about stability. Heavy changes are to be worked on shortly on DOSBox Staging (scaling method, better shader integration, input handling, etc just to name a few). Therefore the master branch is likely to break at some point.
In order to not overwhelm Github with tickets (or Retropie forum) when build is broken, let's stick to a fixed version (starting with 0.77.0). The fixed/tagged branches are stable and have been tested on various architectures/devices.
Split out the addEmulator calls to a separate function as we need to change them based on the configured backend.
Rework the parameters in the new function, to handle launching via X as well as on FB via kms.
Default to "dispmanx" backend for RPI4 on fkms, as it should be fastest. It will however look blurry as it will upscale
from the native atari800 resolution and the scaling uses a filter. However this is still preferable from software
upscaling to native resolution which was the previous default for kms. RPI4 Users can also switch to X11 backend, which
will allow for opengl acceleration for scaling and supports video mode switching from runcommand.sh.
Set DISTCC_HOSTS to empty string for make as is needed with mupen64plus and lr-snes9x. This is an 32bit arm
issue and affects our binary build system which uses distcc with cross compiler on other hosts for performance.
Changes in jzIntv:
* SDL2 support and SDL2 compliant keyboardevents (kbdhackfile.txt)
* CHEAT support
* UTF-8 support in game metadata (ROM/BIN/CFG)
* Various enhancements on the debugger
* Updated documentation on jzIntv and Intellivision architecture
* Many, many fixes
* Refer to accompanied release notes for full details
Also the following module changes were made:
Remove io.h for all systems not just aarch64. It's not a needed header it seems anyway.
Overriding CC/CXX and other makeflags doesn't seem needed anymore. Our CFLAGS are not overridden and no issues.
We originally modified WARN/WARNXX due to newer flag issues with older GCC and then later for an issue on GCC 8.x.
Builds find on GCC 8.x now without this.