From 40e73ea8aee70f9b97e1ed10765d806ef28f34de Mon Sep 17 00:00:00 2001 From: Dimitris Panokostas Date: Sat, 28 Sep 2024 09:54:50 +0200 Subject: [PATCH] 1440 create home directories on startup (#1443) * build: move gamecontrollerdb.txt to controllers directory * enhancement: create home directories if they don't exist - After the directories have been decided (data, home, config), create those in the specified HOME directory, if they don't exist - If they didn't exist, and we had the original contents installed in /usr/share/amiberry/, copy those over and change permissions. This ensures that the distributed files like the AROS ROMs, the WHDLoad booter and the controllerdb files, are always there in the home dir. * chore: we no longer need to copy all the directories in the package Now that we create the home directories on startup, we don't need the empty ones in the package anymore. Only those that contain something can stay * build: add stripping of binaries * chore: ignore .idea folder * bugfix: WHDLoad booter A1200 config was incorrect After the additional entries in A1200 configs and models, the booter was set to incorrectly use a config with a Blizzard accelerator. Since that requires a board ROM, which might not be available, it has to change. Using the default A1200 config instead, and setting Fast RAM to 8MB after that. * build: install icon in shared location When preparing the .deb package, the application icon should go in the /usr/share/icons/hicolor/... location, to adhere with established standards * build: use ~/Amiberry instead of ~/.amiberry Perhaps it's best to use a non-hidden folder for amiberry directories, make it easier on the users to find it * refactor: use ~/Amiberry/conf instead of ~/.config/amiberry for config files * refactor: change desktop file icon reference Should be possible to use just "amiberry" now, that the icon file is copied in the right location * chore: fix references to github.com/midwan -> github.com/BlitterStudio * refactor: move plugins dir to /usr/lib/amiberry in the .deb package If we are using a system-wide installation, with the .deb package, use /usr/lib/amiberry for plugins. Check the HOME/Amiberry/plugins next, create it if necessary. Fallback to the startup directory if that's not available (probably never). * refactor: only move the abr folder in the destination plugins When using the .deb package, only the abr folder should be copied in the destination. Otherwise, we get a plugins directory created there as well * refactor: Change Kickstarts to Roms The Kickstarts directory can contain different kind of ROMs, not only kickstarts. It's best if we rename it accordingly * build: CPack updates - Removed unneeded line - added CPACK_DEBIAN_PACKAGE_ARCHITECTURE - Added Extended Description - Fixed description starts with package name * ci: rename architectures properly Let's keep the names identical to what dpkg reports * build: fix some lintian errors - location of plugins - section * build: added copyright and changelog in DEB * build: fix location of debian files * build: add copyright notice, fix changelog * build: changelog should be compressed * build: extend the description * build: make the description lines shorter... * build: description should not be longer than 80 chars * build: remove timestamp from changelog Fix another lintian complaint * build: description again * bugfix: the plugins dir was not correctly set * refactor: Updated desktop entry to handle MimeTypes * build: remove duplicate key in desktop file * build: add more mimetypes to desktop file --- .github/CONTRIBUTING.md | 4 +- .github/workflows/c-cpp.yml | 36 +- .gitignore | 5 +- .idea/.gitignore | 8 - .idea/editor.xml | 483 --------------------- CMakeLists.txt | 79 ++-- conf/amiberry-osx.conf | 2 +- {conf => controllers}/gamecontrollerdb.txt | 0 data/Amiberry.desktop | 11 +- debian/changelog | 5 + debian/changelog.gz | Bin 0 -> 151 bytes debian/copyright | 8 + docs/README.md | 4 +- docs/resources/rp-install-source.yml | 2 +- external/capsimage/CMakeLists.txt | 2 +- external/floppybridge/CMakeLists.txt | 2 +- macos_init_amiberry.zsh | 10 +- make-bundle.sh | 2 +- {kickstarts => roms}/aros-ext.bin | Bin {kickstarts => roms}/aros-rom.bin | Bin {kickstarts => roms}/dir.txt | 0 {kickstarts => roms}/mt32-roms/dir.txt | 0 src/cfgfile.cpp | 101 +++-- src/main.cpp | 4 +- src/memory.cpp | 4 +- src/osdep/amiberry.cpp | 187 ++++++-- src/osdep/amiberry_input.cpp | 7 +- src/osdep/amiberry_whdbooter.cpp | 4 +- src/osdep/gui/PanelPaths.cpp | 12 +- 29 files changed, 318 insertions(+), 664 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/editor.xml rename {conf => controllers}/gamecontrollerdb.txt (100%) create mode 100644 debian/changelog create mode 100644 debian/changelog.gz create mode 100644 debian/copyright rename {kickstarts => roms}/aros-ext.bin (100%) rename {kickstarts => roms}/aros-rom.bin (100%) rename {kickstarts => roms}/dir.txt (100%) rename {kickstarts => roms}/mt32-roms/dir.txt (100%) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 96ace103..72fca903 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -10,9 +10,9 @@ If you haven't already, come find us in one of these platforms: Bug reporting is an important part of making Amiberry better. If you believe you have found a bug, then please follow these steps: -* **Ensure the bug has not already been reported.** Check the existing Github [Issues](https://github.com/midwan/amiberry/issues). +* **Ensure the bug has not already been reported.** Check the existing Github [Issues](https://github.com/BlitterStudio/amiberry/issues). -* If you're unable to find an open issue that addresses the problem, [open a new one](https://github.com/midwan/amiberry/issues/new). +* If you're unable to find an open issue that addresses the problem, [open a new one](https://github.com/BlitterStudio/amiberry/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible and **steps to recreate** the problem. * Please use the relevant **bug report template** to create the issue. It was designed to help you fill in what we need, in order to locate diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 729ca48b..f6858c21 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -96,7 +96,7 @@ jobs: name: amiberry-macOS-64bit-apple-silicon path: amiberry-${{ github.ref_name }}-macOS-apple-silicon.zip - build-debian-bullseye-x86_64: + build-debian-bullseye-amd64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -113,10 +113,10 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: amiberry-debian-bullseye-x86_64 + name: amiberry-debian-bullseye-amd64 path: amiberry_*.deb - build-debian-bookworm-x86_64: + build-debian-bookworm-amd64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -133,10 +133,10 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: amiberry-debian-bookworm-x86_64 + name: amiberry-debian-bookworm-amd64 path: amiberry_*.deb - build-debian-bookworm-aarch64: + build-debian-bookworm-arm64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -153,7 +153,7 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: amiberry-debian-bookworm-aarch64 + name: amiberry-debian-bookworm-arm64 path: amiberry_*.deb build-debian-bookworm-armhf: @@ -176,7 +176,7 @@ jobs: name: amiberry-debian-bookworm-armhf path: amiberry_*.deb - build-debian-bullseye-aarch64: + build-debian-bullseye-arm64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -193,7 +193,7 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: amiberry-debian-bullseye-aarch64 + name: amiberry-debian-bullseye-arm64 path: amiberry_*.deb build-debian-bullseye-armhf: @@ -217,7 +217,7 @@ jobs: path: amiberry_*.deb create-release: - needs: [build-macOS-x86_64, build-macOS-Apple-Silicon, build-debian-bookworm-x86_64, build-debian-bookworm-aarch64, build-debian-bookworm-armhf, build-debian-bullseye-x86_64, build-debian-bullseye-aarch64, build-debian-bullseye-armhf] + needs: [build-macOS-x86_64, build-macOS-Apple-Silicon, build-debian-bookworm-amd64, build-debian-bookworm-arm64, build-debian-bookworm-armhf, build-debian-bullseye-amd64, build-debian-bullseye-arm64, build-debian-bullseye-armhf] runs-on: ubuntu-latest if: github.ref_type == 'tag' && startsWith(github.ref_name, 'v') steps: @@ -244,15 +244,15 @@ jobs: artifacts: | amiberry-macOS-64bit-intel/amiberry-${{ github.ref_name }}-macOS-x86_64.zip amiberry-macOS-64bit-apple-silicon/amiberry-${{ github.ref_name }}-macOS-apple-silicon.zip - amiberry-debian-bookworm-x86_64/amiberry_*.deb - amiberry-debian-bookworm-aarch64/amiberry_*.deb + amiberry-debian-bookworm-amd64/amiberry_*.deb + amiberry-debian-bookworm-arm64/amiberry_*.deb amiberry-debian-bookworm-armhf/amiberry_*.deb - amiberry-debian-bullseye-x86_64/amiberry_*.deb - amiberry-debian-bullseye-aarch64/amiberry_*.deb + amiberry-debian-bullseye-amd64/amiberry_*.deb + amiberry-debian-bullseye-arm64/amiberry_*.deb amiberry-debian-bullseye-armhf/amiberry_*.deb create-prerelease: - needs: [build-macOS-x86_64, build-macOS-Apple-Silicon, build-debian-bookworm-x86_64, build-debian-bookworm-aarch64, build-debian-bookworm-armhf, build-debian-bullseye-x86_64, build-debian-bullseye-aarch64, build-debian-bullseye-armhf] + needs: [build-macOS-x86_64, build-macOS-Apple-Silicon, build-debian-bookworm-amd64, build-debian-bookworm-arm64, build-debian-bookworm-armhf, build-debian-bullseye-amd64, build-debian-bullseye-arm64, build-debian-bullseye-armhf] runs-on: ubuntu-latest if: github.ref_type == 'tag' && startsWith(github.ref_name, 'preview-v') steps: @@ -280,9 +280,9 @@ jobs: artifacts: | amiberry-macOS-64bit-intel/amiberry-${{ github.ref_name }}-macOS-x86_64.zip amiberry-macOS-64bit-apple-silicon/amiberry-${{ github.ref_name }}-macOS-apple-silicon.zip - amiberry-debian-bookworm-x86_64/amiberry_*.deb - amiberry-debian-bookworm-aarch64/amiberry_*.deb + amiberry-debian-bookworm-amd64/amiberry_*.deb + amiberry-debian-bookworm-arm64/amiberry_*.deb amiberry-debian-bookworm-armhf/amiberry_*.deb - amiberry-debian-bullseye-x86_64/amiberry_*.deb - amiberry-debian-bullseye-aarch64/amiberry_*.deb + amiberry-debian-bullseye-amd64/amiberry_*.deb + amiberry-debian-bullseye-arm64/amiberry_*.deb amiberry-debian-bullseye-armhf/amiberry_*.deb diff --git a/.gitignore b/.gitignore index 9ad7744e..4b908019 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,8 @@ ### Amiberry files ### conf/*.uae conf/*.conf -kickstarts/*.rom -kickstarts/*.key +roms/*.rom +roms/*.key /amiberry* ### VisualGDB ### @@ -227,3 +227,4 @@ cmake-build-release-remote-host cmake-build-debug-opengl cmake-build-* _CPack_Packages +.idea diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 13566b81..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/editor.xml b/.idea/editor.xml deleted file mode 100644 index b0d69ef6..00000000 --- a/.idea/editor.xml +++ /dev/null @@ -1,483 +0,0 @@ - - - - - \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ad4b83d..bcfc7f13 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -480,72 +480,53 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") install(TARGETS ${PROJECT_NAME} BUNDLE DESTINATION .) else () install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin) + # Install additional directories - install(DIRECTORY ${CMAKE_SOURCE_DIR}/cdroms - DESTINATION share/${PROJECT_NAME} - ) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/conf - DESTINATION share/${PROJECT_NAME} - ) + # This one contains the gamecontrollersdb.txt file install(DIRECTORY ${CMAKE_SOURCE_DIR}/controllers DESTINATION share/${PROJECT_NAME} ) + # This one contains the data files install(DIRECTORY ${CMAKE_SOURCE_DIR}/data DESTINATION share/${PROJECT_NAME} ) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/floppies + # This one contains the AROS kickstart files + install(DIRECTORY ${CMAKE_SOURCE_DIR}/roms DESTINATION share/${PROJECT_NAME} ) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/harddrives - DESTINATION share/${PROJECT_NAME} - ) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/inputrecordings - DESTINATION share/${PROJECT_NAME} - ) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/kickstarts - DESTINATION share/${PROJECT_NAME} - ) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/lha - DESTINATION share/${PROJECT_NAME} - ) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/nvram - DESTINATION share/${PROJECT_NAME} - ) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/plugins - DESTINATION share/${PROJECT_NAME} - ) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/savestates - DESTINATION share/${PROJECT_NAME} - ) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/screenshots - DESTINATION share/${PROJECT_NAME} + # This one contains the plugins + install(DIRECTORY ${CMAKE_SOURCE_DIR}/plugins/abr + DESTINATION lib/${PROJECT_NAME} ) + # This one contains the whdboot files install(DIRECTORY ${CMAKE_SOURCE_DIR}/whdboot DESTINATION share/${PROJECT_NAME} ) - # Install shared libraries - install(FILES ${CMAKE_BINARY_DIR}/external/floppybridge/libfloppybridge.so - DESTINATION share/${PROJECT_NAME}/plugins - ) - install(FILES ${CMAKE_BINARY_DIR}/external/capsimage/libcapsimage.so - DESTINATION share/${PROJECT_NAME}/plugins - ) - # Install desktop file install(FILES ${CMAKE_SOURCE_DIR}/data/Amiberry.desktop DESTINATION share/applications ) + # Install icon + install(FILES ${CMAKE_SOURCE_DIR}/data/amiberry.png + DESTINATION share/icons/hicolor/256x256/apps + ) + # Install Debian files + install(FILES ${CMAKE_SOURCE_DIR}/debian/changelog.gz + DESTINATION share/doc/${PROJECT_NAME} + ) + install(FILES ${CMAKE_SOURCE_DIR}/debian/copyright + DESTINATION share/doc/${PROJECT_NAME} + ) endif () -include(InstallRequiredSystemLibraries) - if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(CPACK_GENERATOR "Bundle") set(CPACK_BUNDLE_NAME "Amiberry") set(CPACK_BUNDLE_PLIST ${CMAKE_SOURCE_DIR}/Info.plist) set(CPACK_BUNDLE_APPLE_ENTITLEMENTS ${CMAKE_SOURCE_DIR}/Entitlements.plist) set(CPACK_BUNDLE_ICON ${CMAKE_SOURCE_DIR}/data/amiberry.png) + set(CPACK_STRIP_FILES "YES") else() set(CPACK_GENERATOR "DEB") set(CPACK_SOURCE_IGNORE_FILES .git/ .github/ .vscode/ _CPack_Packages/) @@ -557,12 +538,26 @@ else() SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE") SET(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/docs/README.md") SET(CPACK_DEBIAN_PACKAGE_NAME ${CMAKE_PROJECT_NAME}) + if (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "arm64") + SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm") + SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf") + else() + SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") + endif() set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://amiberry.com") set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Dimitris Panokostas ") # Required set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.27), libstdc++6 (>= 8.3.0), libsdl2-2.0-0, libsdl2-image-2.0-0, libsdl2-ttf-2.0-0, flac, libmpg123-0, libpng16-16, zlib1g, libserialport0, libportmidi0, libmpeg2-4") # Adjust dependencies as needed - set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "Amiberry is an optimized Amiga emulator various platforms.") - set(CPACK_DEBIAN_PACKAGE_SECTION "games") + set(CPACK_DEBIAN_PACKAGE_DESCRIPTION +"Optimized Amiga emulator for various ARM, ARM64, AMD64 and RISC-V platforms. +Amiberry is an optimized Amiga emulator for various platforms. It is based on +the latest WinUAE and supports various Amiga models, including the A4000T, +A4000D, A1200, A3000 and A600. Additionally, it includes several unique +features, such as support for WHDLoad titles, RetroArch integration, custom +Controller Mappings and more.") + set(CPACK_DEBIAN_PACKAGE_SECTION "otherosfs") set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") + set(CPACK_STRIP_FILES "YES") endif() include(CPack) diff --git a/conf/amiberry-osx.conf b/conf/amiberry-osx.conf index 29c40ff3..c6d552da 100644 --- a/conf/amiberry-osx.conf +++ b/conf/amiberry-osx.conf @@ -4,7 +4,7 @@ controllers_path=USERDIR/Documents/Amiberry/Controllers/ retroarch_config=USERDIR/Documents/Amiberry/Configurations/retroarch.cfg whdboot_path=USERDIR/Documents/Amiberry/Whdboot/ logfile_path=USERDIR/Documents/Amiberry/amiberry.log -rom_path=USERDIR/Documents/Amiberry/Kickstarts/ +rom_path=USERDIR/Documents/Amiberry/Roms/ floppy_sounds_dir=USERDIR/Documents/Amiberry/Data/Floppy_Sounds/ data_dir=USERDIR/Documents/Amiberry/Data/ saveimage_dir=USERDIR/Documents/Amiberry/Savestates/ diff --git a/conf/gamecontrollerdb.txt b/controllers/gamecontrollerdb.txt similarity index 100% rename from conf/gamecontrollerdb.txt rename to controllers/gamecontrollerdb.txt diff --git a/data/Amiberry.desktop b/data/Amiberry.desktop index 5bfab694..5a0349ed 100644 --- a/data/Amiberry.desktop +++ b/data/Amiberry.desktop @@ -9,14 +9,17 @@ Version = 1.0 # The name of the application Name = Amiberry +GenericName = Amiga Emulator + # A comment which can/will be used as a tooltip -Comment = Amiga Emulator +Comment = Optimized Amiga Emulator # The executable of the application, possibly with arguments -Exec = /usr/bin/amiberry +Exec = /usr/bin/amiberry %f +TryExec = /usr/bin/amiberry # The name of the icon that will be used to display this entry -Icon = /usr/share/amiberry/data/amiberry.png +Icon = amiberry # Describes whether this application needs to be run in a terminal or not Terminal = false @@ -24,5 +27,7 @@ Terminal = false # Describes the categories in which this entry should be shown Categories = Game;Emulator; +MimeType=application/x-amiga-disk-image;application/x-cue;application/x-lha;application/octet-stream; + # Describes the encoding for the desktop entry Encoding=UTF-8 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..872c094a --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +amiberry (0.0.0-0) unstable; urgency=low + + * Dummy changelog entry. + + -- Dimitris Panokostas Wed, 11 Sep 2024 18:53:49 +0200 \ No newline at end of file diff --git a/debian/changelog.gz b/debian/changelog.gz new file mode 100644 index 0000000000000000000000000000000000000000..1e44225a6b25ae78ac5f74367076091caf92cf99 GIT binary patch literal 151 zcmV;I0BHXoiwFP!000020}aee3WG2dM&Y@u_=kNdF|}argAQCkp@WX2UeeIqq{IZt z?ki{b!BK1m3L#@7sF5l_h$^ zCI&O(sht1%^)chhW?GbcXjaBnqvt#Drs;sX#*2QCLN=(|?sV*$GxkCX@dw>TmYk6Q F006ieN1y-z literal 0 HcmV?d00001 diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..25c2e319 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,8 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Amiberry +Upstream-Contact: Dimitris Panokostas +Source: https://github.com/BlitterStudio/amiberry + +Files: * +Copyright: 2016-2024 Dimitris Panokostas +License: GPL-3 \ No newline at end of file diff --git a/docs/README.md b/docs/README.md index 9b5738ea..5c195988 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,7 +4,7 @@ Follow me Mastodon! -[![C/C++ CI](https://github.com/midwan/amiberry/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/midwan/amiberry/actions/workflows/c-cpp.yml) +[![C/C++ CI](https://github.com/BlitterStudio/amiberry/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/BlitterStudio/amiberry/actions/workflows/c-cpp.yml) [![Discord](https://img.shields.io/badge/My-Discord-%235865F2.svg)](https://discord.gg/wWndKTGpGV) @@ -85,7 +85,7 @@ A flatpak version is available on [Flathub](https://flathub.org/apps/com.blitter ### Standalone binaries -The latest `stable` releases come with binaries for several different platforms, that you can download from the [Releases](https://github.com/midwan/amiberry/releases) area. If your platform is not included, or if you want to test a newer version than the stable release, then you will have to compile it yourself. Read on to see how to do that. +The latest `stable` releases come with binaries for several different platforms, that you can download from the [Releases](https://github.com/BlitterStudio/amiberry/releases) area. If your platform is not included, or if you want to test a newer version than the stable release, then you will have to compile it yourself. Read on to see how to do that. ### Compile from source diff --git a/docs/resources/rp-install-source.yml b/docs/resources/rp-install-source.yml index df176801..5e086567 100644 --- a/docs/resources/rp-install-source.yml +++ b/docs/resources/rp-install-source.yml @@ -172,6 +172,6 @@ records: - delay: 135 content: "\r\n= = = = = = = = = = = = = = = = = = = = =\r\nInstalling dependencies for 'amiberry' : Amiga emulator with JIT support (forked from uae4arm)\r\n= = = = = = = = = = = = = = = = = = = = =\r\n\r\n" - delay: 860 - content: "/home/pi/RetroPie-Setup/tmp/build/amiberry /home/pi\r\n\r\n= = = = = = = = = = = = = = = = = = = = =\r\nGetting sources for 'amiberry' : Amiga emulator with JIT support (forked from uae4arm)\r\n= = = = = = = = = = = = = = = = = = = = =\r\n\r\ngit clone --recursive --depth 1 \"https://github.com/midwan/amiberry/\" \"/home/pi/RetroPie-Setup/tmp/build/amiberry\"\r\n" + content: "/home/pi/RetroPie-Setup/tmp/build/amiberry /home/pi\r\n\r\n= = = = = = = = = = = = = = = = = = = = =\r\nGetting sources for 'amiberry' : Amiga emulator with JIT support (forked from uae4arm)\r\n= = = = = = = = = = = = = = = = = = = = =\r\n\r\ngit clone --recursive --depth 1 \"https://github.com/BlitterStudio/amiberry/\" \"/home/pi/RetroPie-Setup/tmp/build/amiberry\"\r\n" - delay: 7 content: "Cloning into '/home/pi/RetroPie-Setup/tmp/build/amiberry'...\r\n" diff --git a/external/capsimage/CMakeLists.txt b/external/capsimage/CMakeLists.txt index c6631665..a9fe9eb1 100644 --- a/external/capsimage/CMakeLists.txt +++ b/external/capsimage/CMakeLists.txt @@ -66,7 +66,7 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_CONFIG_H=1) install(TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib + LIBRARY DESTINATION lib/amiberry RUNTIME DESTINATION bin FRAMEWORK DESTINATION "/Library/Frameworks" PUBLIC_HEADER DESTINATION include/caps${INCLUDE_SUFFIX}) diff --git a/external/floppybridge/CMakeLists.txt b/external/floppybridge/CMakeLists.txt index 93e7aba4..a0655d6a 100644 --- a/external/floppybridge/CMakeLists.txt +++ b/external/floppybridge/CMakeLists.txt @@ -27,6 +27,6 @@ endif () install(TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib + LIBRARY DESTINATION lib/amiberry RUNTIME DESTINATION bin ) \ No newline at end of file diff --git a/macos_init_amiberry.zsh b/macos_init_amiberry.zsh index 99b39b8a..8f8ff729 100644 --- a/macos_init_amiberry.zsh +++ b/macos_init_amiberry.zsh @@ -35,11 +35,11 @@ for file in $CWD_VAR/../Resources/Controllers/**/*(.); do fi done -for file in $CWD_VAR/../Resources/Kickstarts/**/*(.); do - if [[ ! -f "$USERDIR/Documents/Amiberry/Kickstarts${file##*/Kickstarts}" ]]; then - echo "Copying $file to $USERDIR/Documents/Amiberry/Kickstarts${file##*/Kickstarts}" - mkdir -p $(dirname "$USERDIR/Documents/Amiberry/Kickstarts${file##*/Kickstarts}") - cp $file "$USERDIR/Documents/Amiberry/Kickstarts${file##*/Kickstarts}" +for file in $CWD_VAR/../Resources/Roms/**/*(.); do + if [[ ! -f "$USERDIR/Documents/Amiberry/Roms${file##*/Roms}" ]]; then + echo "Copying $file to $USERDIR/Documents/Amiberry/Roms${file##*/Roms}" + mkdir -p $(dirname "$USERDIR/Documents/Amiberry/Roms${file##*/Roms}") + cp $file "$USERDIR/Documents/Amiberry/Roms${file##*/Roms}" fi done diff --git a/make-bundle.sh b/make-bundle.sh index cdc63664..e511254d 100644 --- a/make-bundle.sh +++ b/make-bundle.sh @@ -34,7 +34,7 @@ cp -R data Amiberry.app/Contents/Resources/Data cp -R floppies Amiberry.app/Contents/Resources/Floppies cp -R harddrives Amiberry.app/Contents/Resources/Harddrives cp -R inputrecordings Amiberry.app/Contents/Resources/Inputrecordings -cp -R kickstarts Amiberry.app/Contents/Resources/Kickstarts +cp -R roms Amiberry.app/Contents/Resources/Roms cp -R lha Amiberry.app/Contents/Resources/Lha cp -R nvram Amiberry.app/Contents/Resources/Nvram cp -R plugins Amiberry.app/Contents/Resources/Plugins diff --git a/kickstarts/aros-ext.bin b/roms/aros-ext.bin similarity index 100% rename from kickstarts/aros-ext.bin rename to roms/aros-ext.bin diff --git a/kickstarts/aros-rom.bin b/roms/aros-rom.bin similarity index 100% rename from kickstarts/aros-rom.bin rename to roms/aros-rom.bin diff --git a/kickstarts/dir.txt b/roms/dir.txt similarity index 100% rename from kickstarts/dir.txt rename to roms/dir.txt diff --git a/kickstarts/mt32-roms/dir.txt b/roms/mt32-roms/dir.txt similarity index 100% rename from kickstarts/mt32-roms/dir.txt rename to roms/mt32-roms/dir.txt diff --git a/src/cfgfile.cpp b/src/cfgfile.cpp index 43ae219f..48f681a2 100644 --- a/src/cfgfile.cpp +++ b/src/cfgfile.cpp @@ -9321,62 +9321,61 @@ static int bip_a1200 (struct uae_prefs *p, int config, int compa, int romcheck) p->cs_rtc = 0; p->cs_compatible = CP_A1200; built_in_chipset_prefs (p); - switch (config) - { - case 1: - p->fastmem[0].size = 0x400000; - p->cs_rtc = 1; - break; + switch (config) + { + case 1: + p->fastmem[0].size = 0x400000; + p->cs_rtc = 1; + break; #ifdef WITH_CPUBOARD - case 2: - cpuboard_setboard(p, BOARD_BLIZZARD, BOARD_BLIZZARD_SUB_1230IV); - p->cpuboardmem1.size = 32 * 1024 * 1024; - p->cpu_model = 68030; - p->cs_rtc = 1; - roms_bliz[0] = 89; - configure_rom(p, roms_bliz, romcheck); - break; - case 3: - cpuboard_setboard(p, BOARD_BLIZZARD, BOARD_BLIZZARD_SUB_1260); - p->cpuboardmem1.size = 32 * 1024 * 1024; - p->cpu_model = 68040; - p->fpu_model = 68040; - p->cs_rtc = 1; - roms_bliz[0] = 90; - configure_rom(p, roms_bliz, romcheck); - break; - case 4: - cpuboard_setboard(p, BOARD_BLIZZARD, BOARD_BLIZZARD_SUB_1260); - p->cpuboardmem1.size = 32 * 1024 * 1024; - p->cpu_model = 68060; - p->fpu_model = 68060; - p->cs_rtc = 1; - roms_bliz[0] = 90; - configure_rom(p, roms_bliz, romcheck); - break; + case 2: + cpuboard_setboard(p, BOARD_BLIZZARD, BOARD_BLIZZARD_SUB_1230IV); + p->cpuboardmem1.size = 32 * 1024 * 1024; + p->cpu_model = 68030; + p->cs_rtc = 1; + roms_bliz[0] = 89; + configure_rom(p, roms_bliz, romcheck); + break; + case 3: + cpuboard_setboard(p, BOARD_BLIZZARD, BOARD_BLIZZARD_SUB_1260); + p->cpuboardmem1.size = 32 * 1024 * 1024; + p->cpu_model = 68040; + p->fpu_model = 68040; + p->cs_rtc = 1; + roms_bliz[0] = 90; + configure_rom(p, roms_bliz, romcheck); + break; + case 4: + cpuboard_setboard(p, BOARD_BLIZZARD, BOARD_BLIZZARD_SUB_1260); + p->cpuboardmem1.size = 32 * 1024 * 1024; + p->cpu_model = 68060; + p->fpu_model = 68060; + p->cs_rtc = 1; + roms_bliz[0] = 90; + configure_rom(p, roms_bliz, romcheck); + break; #ifdef WITH_PPC - case 5: - cpuboard_setboard(p, BOARD_BLIZZARD, BOARD_BLIZZARD_SUB_PPC); - p->cpuboardmem1.size = 256 * 1024 * 1024; - p->cpu_model = 68060; - p->fpu_model = 68060; - p->ppc_mode = 1; - p->cs_rtc = 1; - roms[0] = 15; - roms[1] = 11; - roms[2] = -1; - roms_bliz[0] = 100; - configure_rom(p, roms_bliz, romcheck); - break; + case 5: + cpuboard_setboard(p, BOARD_BLIZZARD, BOARD_BLIZZARD_SUB_PPC); + p->cpuboardmem1.size = 256 * 1024 * 1024; + p->cpu_model = 68060; + p->fpu_model = 68060; + p->ppc_mode = 1; + p->cs_rtc = 1; + roms[0] = 15; + roms[1] = 11; + roms[2] = -1; + roms_bliz[0] = 100; + configure_rom(p, roms_bliz, romcheck); + break; #endif #else - case 2: - p->fastmem[0].size = 0x800000; - p->cs_rtc = 1; - break; + case 2: + p->fastmem[0].size = 0x800000; + p->cs_rtc = 1; + break; #endif - - } + } set_68020_compa (p, compa, 0); return configure_rom (p, roms, romcheck); } diff --git a/src/main.cpp b/src/main.cpp index a35106b9..ef4862ff 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -859,7 +859,7 @@ void usage() std::cout << " -O Set graphics specs." << '\n'; std::cout << " -H Color mode." << '\n'; std::cout << " -o = Set Amiberry configuration parameter with value." << '\n'; - std::cout << " See: https://github.com/midwan/amiberry/wiki/Amiberry.conf-options" << + std::cout << " See: https://github.com/BlitterStudio/amiberry/wiki/Amiberry.conf-options" << '\n'; std::cout << "\nExample 1:" << '\n'; std::cout << "amiberry --model A1200 -G" << '\n'; @@ -1392,7 +1392,7 @@ void download_rtb(const std::string& filename) if (!file_exists(destination)) { write_log("Downloading %s ...\n", destination.c_str()); - const std::string url = "https://github.com/midwan/amiberry/blob/master/whdboot/save-data/Kickstarts/" + filename + "?raw=true"; + const std::string url = "https://github.com/BlitterStudio/amiberry/blob/master/whdboot/save-data/Kickstarts/" + filename + "?raw=true"; download_file(url, destination, false); } } diff --git a/src/memory.cpp b/src/memory.cpp index 73163077..550e38f9 100644 --- a/src/memory.cpp +++ b/src/memory.cpp @@ -1774,7 +1774,7 @@ static bool load_kickstart_replacement(void) auto* arosrom = zfile_load_file(path, &arosrom_len); if (arosrom == nullptr) { - gui_message("Could not find the 'aros-ext.bin' file in the Kickstarts directory!"); + gui_message("Could not find the 'aros-ext.bin' file in the ROMs directory!"); return false; } struct zfile* f = zfile_fopen_data(path, arosrom_len, arosrom); @@ -1807,7 +1807,7 @@ static bool load_kickstart_replacement(void) arosrom = zfile_load_file(path, &arosrom_len); if (arosrom == nullptr) { - gui_message("Could not find the 'aros-rom.bin' file in the Kickstarts directory!"); + gui_message("Could not find the 'aros-rom.bin' file in the ROMs directory!"); return false; } f = zfile_fopen_data(path, arosrom_len, arosrom); diff --git a/src/osdep/amiberry.cpp b/src/osdep/amiberry.cpp index c50cd71e..b2c82237 100644 --- a/src/osdep/amiberry.cpp +++ b/src/osdep/amiberry.cpp @@ -3930,7 +3930,7 @@ void init_macos_amiberry_folders(const std::string& macos_amiberry_directory) if (!my_existsdir(directory.c_str())) my_mkdir(directory.c_str()); - directory = macos_amiberry_directory + "/Kickstarts"; + directory = macos_amiberry_directory + "/Roms"; if (!my_existsdir(directory.c_str())) my_mkdir(directory.c_str()); @@ -4015,7 +4015,7 @@ void macos_copy_amiberry_files_to_userdir(std::string macos_amiberry_directory) } #endif -static void init_amiberry_paths(const std::string& data_directory, const std::string& home_directory, const std::string& config_directory) +static void init_amiberry_paths(const std::string& data_directory, const std::string& home_directory, const std::string& config_directory, const std::string& plugins_directory) { current_dir = home_dir = home_directory; #ifdef __MACH__ @@ -4050,7 +4050,7 @@ static void init_amiberry_paths(const std::string& data_directory, const std::st harddrive_path.append("/Harddrives/"); cdrom_path.append("/CDROMs/"); logfile_path.append("/Amiberry.log"); - rom_path.append("/Kickstarts/"); + rom_path.append("/Roms/"); rp9_path.append("/RP9/"); saveimage_dir.append("/Savestates/"); savestate_dir.append("/Savestates/"); @@ -4065,32 +4065,118 @@ static void init_amiberry_paths(const std::string& data_directory, const std::st amiberry_conf_file.append("amiberry.conf"); #else data_dir = data_directory; + data_dir.append("/data/"); + config_path = config_directory; + plugins_dir = plugins_directory; + // Just in case this is missing, and we need to create it (e.g. not installed system-wide) + if (!my_existsdir(plugins_dir.c_str())) + my_mkdir(plugins_dir.c_str()); + controllers_path = whdboot_path = whdload_arch_path = floppy_path = harddrive_path = cdrom_path = logfile_path = rom_path = rp9_path = saveimage_dir = savestate_dir = ripper_path = - input_dir = screenshot_dir = nvram_dir = plugins_dir = video_dir = + input_dir = screenshot_dir = nvram_dir = video_dir = home_directory; controllers_path.append("/controllers/"); - data_dir.append("/data/"); + if (!my_existsdir(controllers_path.c_str())) + { + my_mkdir(controllers_path.c_str()); + // copy default controller files, if they exist in /usr/share/amiberry/controllers + const std::string default_controller_path = "/usr/share/amiberry/controllers/"; + if (my_existsdir(default_controller_path.c_str())) + { + const std::string command = "cp -r " + default_controller_path + "* " + controllers_path; + system(command.c_str()); + } + // change permissions to user writable + std::string command = "chmod -R 755 " + controllers_path; + } + whdboot_path.append("/whdboot/"); + if (!my_existsdir(whdboot_path.c_str())) + { + my_mkdir(whdboot_path.c_str()); + // copy default whdboot files, if they exist in /usr/share/amiberry/whdboot + const std::string default_whdboot_path = "/usr/share/amiberry/whdboot/"; + if (my_existsdir(default_whdboot_path.c_str())) + { + const std::string command = "cp -r " + default_whdboot_path + "* " + whdboot_path; + system(command.c_str()); + } + // change permissions to user writable + std::string command = "chmod -R 755 " + whdboot_path; + } + whdload_arch_path.append("/lha/"); + if (!my_existsdir(whdload_arch_path.c_str())) + my_mkdir(whdload_arch_path.c_str()); + floppy_path.append("/floppies/"); + if (!my_existsdir(floppy_path.c_str())) + my_mkdir(floppy_path.c_str()); + harddrive_path.append("/harddrives/"); + if (!my_existsdir(harddrive_path.c_str())) + my_mkdir(harddrive_path.c_str()); + cdrom_path.append("/cdroms/"); + if (!my_existsdir(cdrom_path.c_str())) + my_mkdir(cdrom_path.c_str()); + logfile_path.append("/amiberry.log"); - rom_path.append("/kickstarts/"); + + rom_path.append("/roms/"); + if (!my_existsdir(rom_path.c_str())) + { + my_mkdir(rom_path.c_str()); + // copy default kickstart files, if they exist in /usr/share/amiberry/roms + const std::string default_kickstart_path = "/usr/share/amiberry/roms/"; + if (my_existsdir(default_kickstart_path.c_str())) + { + const std::string command = "cp -r " + default_kickstart_path + "* " + rom_path; + system(command.c_str()); + } + // change permissions to user writable + std::string command = "chmod -R 755 " + rom_path; + } + rp9_path.append("/rp9/"); + if (!my_existsdir(rp9_path.c_str())) + my_mkdir(rp9_path.c_str()); + saveimage_dir.append("/savestates/"); + if (!my_existsdir(saveimage_dir.c_str())) + my_mkdir(saveimage_dir.c_str()); + savestate_dir.append("/savestates/"); + if (!my_existsdir(savestate_dir.c_str())) + my_mkdir(savestate_dir.c_str()); + ripper_path.append("/ripper/"); + if (!my_existsdir(ripper_path.c_str())) + my_mkdir(ripper_path.c_str()); + input_dir.append("/inputrecordings/"); + if (!my_existsdir(input_dir.c_str())) + my_mkdir(input_dir.c_str()); + screenshot_dir.append("/screenshots/"); + if (!my_existsdir(screenshot_dir.c_str())) + my_mkdir(screenshot_dir.c_str()); + nvram_dir.append("/nvram/"); - plugins_dir.append("/plugins/"); + if (!my_existsdir(nvram_dir.c_str())) + my_mkdir(nvram_dir.c_str()); + + video_dir.append("/videos/"); + if (!my_existsdir(video_dir.c_str())) + my_mkdir(video_dir.c_str()); amiberry_conf_file = config_path; + if (!my_existsdir(config_path.c_str())) + my_mkdir(config_path.c_str()); amiberry_conf_file.append("/amiberry.conf"); #endif @@ -4147,7 +4233,7 @@ uae_u32 emulib_target_getcpurate(uae_u32 v, uae_u32* low) *low = 0; if (v == 1) { - *low = 1e+9; /* We have nano seconds */ + *low = 1e+9; /* We have nanoseconds */ return 0; } if (v == 2) @@ -4221,13 +4307,14 @@ std::string get_data_directory() if (env_data_dir != nullptr && directory_exists(env_data_dir, "/data")) { - // If the ENV variable is set, use it + // If the ENV variable is set, and it actually contains our data dir, use it write_log("Using data directory from AMIBERRY_DATA_DIR: %s\n", env_data_dir); return { env_data_dir }; } if (directory_exists("/usr/share/amiberry", "/data")) { - // If the data directory exists, use it + // If the data directory exists in /usr/share/amiberry, use it + // This would be the default location after an installation with the .deb package write_log("Using data directory from /usr/share/amiberry\n"); return "/usr/share/amiberry"; } @@ -4263,12 +4350,17 @@ std::string get_home_directory() write_log("Using home directory from XDG_DATA_HOME: %s\n", xdg_data_home); return { xdg_data_home }; } - if (user_home_dir != nullptr && directory_exists(user_home_dir, "/.amiberry")) + if (user_home_dir != nullptr) { - // $HOME/.amiberry exists, use it - write_log("Using home directory from $HOME/.amiberry\n"); + if (!directory_exists(user_home_dir, "/Amiberry")) + { + // If $HOME exists, but not the Amiberry subdirectory, create it + my_mkdir((std::string(user_home_dir) + "/Amiberry").c_str()); + } + // $HOME/Amiberry exists, use it + write_log("Using home directory from $HOME/Amiberry\n"); std::string result = std::string(user_home_dir); - return result.append("/.amiberry"); + return result.append("/Amiberry"); } // Fallback Portable mode, all in startup path @@ -4290,34 +4382,74 @@ std::string get_config_directory() write_log("Using config directory from XDG_CONFIG_HOME: %s\n", env_conf_dir); return { env_conf_dir }; } - if (xdg_config_home != nullptr && directory_exists(xdg_config_home, "/amiberry")) + if (xdg_config_home != nullptr) { // If the XDG_CONFIG_HOME is set, use it + if (!directory_exists(xdg_config_home, "/amiberry")) + { + // If the XDG_CONFIG_HOME exists, but not the amiberry subdirectory, create it + my_mkdir((std::string(xdg_config_home) + "/amiberry").c_str()); + } write_log("Using config directory from XDG_CONFIG_HOME: %s\n", xdg_config_home); return { std::string(xdg_config_home) + "/amiberry" }; } - if (user_home_dir != nullptr && directory_exists(user_home_dir, "/.config/amiberry")) + if (user_home_dir != nullptr) { - // $HOME/.config/amiberry exists, use it - write_log("Using config directory from $HOME/.config/amiberry\n"); + if (!directory_exists(user_home_dir, "/Amiberry")) + { + my_mkdir((std::string(user_home_dir) + "/Amiberry").c_str()); + } + // $HOME/Amiberry exists, use it + if (!directory_exists(user_home_dir, "/Amiberry/conf")) + { + my_mkdir((std::string(user_home_dir) + "/Amiberry/conf").c_str()); + } + // This should be the most used scenario + write_log("Using config directory from $HOME/Amiberry/conf\n"); auto result = std::string(user_home_dir); - return result.append("/.config/amiberry"); - } - if (user_home_dir != nullptr && directory_exists(user_home_dir, "/.amiberry/conf")) - { - // $HOME/.amiberry/conf exists, use it - write_log("Using config directory from $HOME/.amiberry/conf\n"); - auto result = std::string(user_home_dir); - return result.append("/.amiberry/conf"); + return result.append("/Amiberry/conf"); } // Fallback Portable mode, all in startup path + // Should never really end up here, unless $HOME is not defined write_log("Using config directory from startup path\n"); char tmp[MAX_DPATH]; getcwd(tmp, MAX_DPATH); return { std::string(tmp) + "/conf" }; } +std::string get_plugins_directory() +{ + // Check if we have the plugins installed system-wide (with a .deb package) + if (directory_exists("/usr/lib", "/amiberry")) + { + write_log("Using plugins directory from /usr/lib/amiberry\n"); + return "/usr/lib/amiberry"; + } + + const auto user_home_dir = getenv("HOME"); + if (user_home_dir != nullptr) + { + if (!directory_exists(user_home_dir, "/Amiberry")) + { + my_mkdir((std::string(user_home_dir) + "/Amiberry").c_str()); + } + // $HOME/Amiberry exists, use it + if (!directory_exists(user_home_dir, "/Amiberry/plugins")) + { + my_mkdir((std::string(user_home_dir) + "/Amiberry/plugins").c_str()); + } + write_log("Using plugins directory from $HOME/Amiberry/plugins\n"); + return { std::string(user_home_dir) + "/Amiberry/plugins" }; + } + + // Fallback Portable mode, all in the startup path + write_log("Using plugins directory from startup path\n"); + char tmp[MAX_DPATH]; + getcwd(tmp, MAX_DPATH); + return { std::string(tmp) + "/plugins" }; +} + int main(int argc, char* argv[]) { for (auto i = 1; i < argc; i++) { @@ -4347,8 +4479,9 @@ int main(int argc, char* argv[]) const std::string data_directory = get_data_directory(); const std::string home_directory = get_home_directory(); const std::string config_directory = get_config_directory(); + const std::string plugins_directory = get_plugins_directory(); - init_amiberry_paths(data_directory, home_directory, config_directory); + init_amiberry_paths(data_directory, home_directory, config_directory, plugins_directory); // Parse command line to possibly set amiberry_config. // Do not remove used args yet. diff --git a/src/osdep/amiberry_input.cpp b/src/osdep/amiberry_input.cpp index 9a081707..a9a174a3 100644 --- a/src/osdep/amiberry_input.cpp +++ b/src/osdep/amiberry_input.cpp @@ -1033,10 +1033,9 @@ static int init_joystick() num_joystick = MAX_INPUT_DEVICES; // set up variables / paths etc. - char cfg[MAX_DPATH]; - get_configuration_path(cfg, MAX_DPATH); - strcat(cfg, "gamecontrollerdb.txt"); - SDL_GameControllerAddMappingsFromFile(cfg); + std::string cfg = get_controllers_path(); + cfg += "gamecontrollerdb.txt"; + SDL_GameControllerAddMappingsFromFile(cfg.c_str()); std::string controllers = get_controllers_path(); controllers.append("gamecontrollerdb_user.txt"); diff --git a/src/osdep/amiberry_whdbooter.cpp b/src/osdep/amiberry_whdbooter.cpp index 9336e60e..e203afcd 100644 --- a/src/osdep/amiberry_whdbooter.cpp +++ b/src/osdep/amiberry_whdbooter.cpp @@ -33,7 +33,7 @@ extern char last_loaded_config[MAX_DPATH]; enum { A600_CONFIG = 3, // 8MB fast ram - A1200_CONFIG = 2 // 8MB fast ram + A1200_CONFIG = 1 // 8MB fast ram }; struct game_hardware_options @@ -1368,6 +1368,8 @@ void whdload_auto_prefs(uae_prefs* prefs, const char* filepath) // SET THE BASE AMIGA (Expanded A1200) write_log("WHDBooter - Host: A1200 ROM selected\n"); built_in_prefs(prefs, 4, A1200_CONFIG, 0, 0); + // set 8MB Fast RAM + prefs->fastmem[0].size = 0x800000; _tcscpy(prefs->description, _T("AutoBoot Configuration [WHDLoad] [AGA]")); } else diff --git a/src/osdep/gui/PanelPaths.cpp b/src/osdep/gui/PanelPaths.cpp index e7ad0f72..3b98d6b9 100644 --- a/src/osdep/gui/PanelPaths.cpp +++ b/src/osdep/gui/PanelPaths.cpp @@ -314,12 +314,12 @@ public: // download WHDLoad executable destination = prefix_with_whdboot_path("WHDLoad"); write_log("Downloading %s ...\n", destination.c_str()); - download_file("https://github.com/midwan/amiberry/blob/master/whdboot/WHDLoad?raw=true", destination, false); + download_file("https://github.com/BlitterStudio/amiberry/blob/master/whdboot/WHDLoad?raw=true", destination, false); // download boot-data.zip destination = prefix_with_whdboot_path("boot-data.zip"); write_log("Downloading %s ...\n", destination.c_str()); - download_file("https://github.com/midwan/amiberry/blob/master/whdboot/boot-data.zip?raw=true", destination, false); + download_file("https://github.com/BlitterStudio/amiberry/blob/master/whdboot/boot-data.zip?raw=true", destination, false); // download kickstart RTB files for maximum compatibility download_rtb("kick33180.A500.RTB"); @@ -352,9 +352,7 @@ class DownloadControllerDbActionListener : public gcn::ActionListener public: void action(const gcn::ActionEvent& actionEvent) override { - char config_path[MAX_DPATH]; - get_configuration_path(config_path, MAX_DPATH); - auto destination = std::string(config_path); + std::string destination = get_controllers_path(); destination += "gamecontrollerdb.txt"; write_log("Downloading % ...\n", destination.c_str()); const auto* const url = "https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt"; @@ -876,7 +874,7 @@ bool HelpPanelPaths(std::vector& helptext) helptext.emplace_back("custom edits that may have been made."); helptext.emplace_back(" "); helptext.emplace_back("The \"Update Controllers DB\" button will attempt to download the latest version of"); - helptext.emplace_back("the bundled gamecontrollerdb.txt file, to be stored in the Configuration files path."); + helptext.emplace_back("the bundled gamecontrollerdb.txt file, to be stored in the Controllers files path."); helptext.emplace_back("The file contains the \"official\" mappings for recognized controllers by SDL2 itself."); helptext.emplace_back("Please note that this is separate from the user-configurable gamecontrollerdb_user.txt"); helptext.emplace_back("file, which is contained in the Controllers path. That file is never overwritten, and"); @@ -887,7 +885,7 @@ bool HelpPanelPaths(std::vector& helptext) helptext.emplace_back(" "); helptext.emplace_back("The paths for Amiberry resources include;"); helptext.emplace_back(" "); - helptext.emplace_back("- System ROMs: The Amiga Kickstart files are by default located under 'kickstarts'."); + helptext.emplace_back("- System ROMs: The Amiga Kickstart files are by default located under 'roms'."); helptext.emplace_back(" After changing the location of the Kickstart ROMs, or adding any additional ROMs, "); helptext.emplace_back(" click on the \"Rescan\" button to refresh the list of the available ROMs. Please"); helptext.emplace_back(" note that MT-32 ROM files may also reside here, or in a \"mt32-roms\" directory");