* - Set defaults if ini exists, but empty.
- Create a new dictionary object, not use null object.
* Switch Port
Todo: Fix: Misc crashes when interacting on island.
Todo: Fix: Joystick pointer is slow to move.
Todo: Fix: Touch doesn't behave.
* Fix: base GetPathInfo fixup in the SDL implementation, with check for null SDL_PathInfo.
Fix: Disable imgui shell functions.
Todo: Display imgui debug if enabled.
* Fix: Correction to suite style guidelines
* - Switch build homebrew NRO
- CI/CD to build Switch
* Fix typo in CI
* clang-format fix
* Clang-format against isleapp.cpp
* Use correct docker container for CI/CD
* Remove SDL fixups and use an SDL3 port with fixes.
Fixes crash bug and world issues!
* Fix: use Clang-Format 17 instead of 21
---------
Co-authored-by: SnepOMatic (Rhew) <github@rhew.co.uk>
* add psvita to cmake
* no PIE for vita
* add modules to vpk
* use custom pvr apphint
* select correct renderer for sdl renderer
* patch sdl3 shaders, got something on screen!
* use proper cmake patch for sdl
* add missing module
* remove test window which causes a bug in the vita sdl port to show up
* add gxm renderer (not working with display yet)
* avoid sdl renderer for vita, seems broken
* make gxm renderer work with new d3drm
* fix rendering somewhat, some geometry shows up
* support paletted textures directly to avoid copying the texture twice
* fix Draw2DImage
* make 3d work, broken lights
* clean up a bit
* fix normals matrix
* remove some unneeded changes
* forgot env var
* wrong env dest
* run clang format
* correct texture address mode, use tlsf instead of sceClibMspace
* double buffered uniforms seem to work now
* missed a line
* update GXMRenderer_EnumDevice
* hopefully actually fix uniform buffers
* run clang-format
* remove a change thats not needed
* improve fragment shader performance
* add vita to dist folder
* add base for vita config app
* add config self to vpk
* transform touch events to virtual size
* add livearea graphics
* Update cmake file to include livearea assets
* put manual in the right place
* add sample rco
* add messagebox on vita
* triple buffer textures because fences arent a thing on vita and making draw&cpu sync would be too slow
* make config app not crash on launch
* change defaults
* update gxm renderer with interface changes
* split 2d and 3d shaders completely
* update gxm renderer
* fix transition on gxm
* clang format
* move config cmake
* move CONFIG_vita
* always clear before drawing 2d image
* hopefully fix windows build
* clang-format fix broken includes
* order again
* undo moving qt cmake to its own list
* move uic search path
* use ifdefs for all d3drm backends, cpack to generate vpk
* cmake wrong escape
* small cleanups in gxm renderer
* defer texture delete to avoid overwriting the texture during a frame
* clang-format
* more of the layout for config
* remove top buttons
* use SceAppSettings instead of custom ui
* use select for back to info center on vita, to make screenshots possible again
* remove accidentally left in add_subdirectory
* adjust diskpath to be like other ports
* use vita_create_vpk and not cpack
* gxm: msaa support, fix wrong file path
* gxm: add mipmaps (disabled)
* clang-format
* fix open isle.ini with fopen
* add missing strings
* use iniparser_set not dictionary_set
* add default save path to config
* load config app after initializing ini on vita
* fix config build
* change the default disk & cd path, update the paf library
* update paf library headers
* include orders for clang-format
* clean up
* make shader compiler not required
* move asm language
* warn instead of error when shader source is changed when no compiler is found
---------
Co-authored-by: Li <li@silica.codes>
Co-authored-by: Christian Semmler <mail@csemmler.com>
* initial files
* get building
* proper paths & default to virtual mouse
* Wrap gradle under cmake & build SDL3.aar
run cmake with -DANDROID_NDK_PATH=/path/to/ndk to generate the .aar & run the gradle build
if using Android Studio you will have to run the aar script manually(or do the cmake cmd) then put the normal cmake args inside '-PcmakeArgs="-DCMAKE_BUILD_TYPE=Release ...."' at `Settings > Build, Execution, Deployment > Gradle-Android Compiler > Command-line Options`
Check CMakeLists.txt Android build block for more info
* workflow and format
* dont cmake -> gradle -> cmake
* icons
* prevent first start crash due to missing isle.ini
dont force require gles3 (vulkan & software are options)
* cleanup
* cmake script & ci cleanup
use a cmake script to downoad SDL3 sources for aar building
* script cleanups & gradle stub for android studio
handle the env var setting for the sdl3 aar build script
* signing
needed repository secrets:
- keystore : key.jks in base64
- keystorePassword : Key store password
- keyAlias : Key alias, ex key0
- keyPassword : Key Password
* conditionally run action without keys
* compile SDL once & cross-platformize gradle tasks
* suggestions
* use find_package over manual configuration
* use MxString
---------
Co-authored-by: Anders Jenbo <anders@jenbo.dk>
Co-authored-by: Christian Semmler <mail@csemmler.com>
* ✨ feat: add ios support
* ⚗️ chore: trying some experiments to make ci working
* ⚗️ chore: is it really ci version problem?
* 💚 fix: it really is just a ci version issue
* 🩹 fix: go as low as possible
* 🩹 fix: support ipad
* chore: update README.md
* ✨ feat: got the audio working
* 🔧 feat: add appxmanifest
* 🩹 fix: remove opengl stuff
* ⚗️ feat: add button support
* ⚗️ chore: try to make less modification from upstream
* 🩹 fix: doesnt compile
* ✨ feat: forcibly draw cursor and map right joystick to cursor
* 🩹 fix: remap joystick
* 🎨 fix: formatting
* 🎨 fix: cmakelists formatting
* 🩹 fix: 3ds build
* 👷 feat: add xbox one ci build
* 💚 fix: github hates xbox series naming
* 💚 fix: dont run cpack for xbox one, vs does that for you
* 💚 fix: xbox one need to use vs as generator
* 💚 fix: please
* 💚 fix: it could be msix not bundle
* 💚 fix: try recursive directory search when upload release
* 🔨 feat: support cpack
* 👷 feat: better packaging
* 💚 fix: ignore if mv fails
* 🔧 feat: add mouse sensitivity config
* 🔥 chore: dont need you
* ⚗️ chore: use d3d11
* ✨ feat: hardware acceleration!!
* 🚸 chore: change default cd path so user can easily copy the assets to xbox
* 🧑💻 chore: improve reusability
* 🚨 fix: formatting error
* 🚸 chore: draw cursor by default
* 🎨 chore: cmakelists formatting
* chore: match with upstream
* chore: more matching with upstream
* chore: don't need you
* 🩹 fix: apply changes
* 🔥 fix: we don't need controller map anymore
* 🩹 fix: use isle style include guard
* 🩹 fix: last newline fix
* 👷 chore: use cpack
* 💚 fix: try to fix ci
* 💚 fix: i tried my best...
* Add Docker web port image
* Comment out master
* Optimize
* Slim down image
* Revert "Comment out master"
This reverts commit 115c9770e8.
* Allow running from ISO
* AppImage packaging
* Add flags to specify location of required local files
`--build=path` specifies where on the system is the directory with pre-build game binaries (must have binaries `isle` and `isle-config` in `path/bin` and game-specific libraries in `path/lib`)
`--apprun=path` specifies where the apprun is
`--desktop-file=path` same for the desktop file
* Move to packaging/linux
* Move building to appimage/build and ignore it in git
* Use local icon. Option to specify location for it
* Cleaning
* Attempt at Github automation
* Update CMakeLists.txt
* Fix build
* I guess it doesn't need quotes
* Update CMakeLists.txt
* Update release.yml
* Work around for liblego1.so loading, fix arguments
* Create testing.yml
* Update testing.yml
* I should pay more attention to what docs say
* Fix copy-pasting mistake
* Add AppImage packaging to the Release workflow
* Try fixing filepicker
* Delete testing.yml
* Fix releases
Can't specify where linuxdeploy leaves the file without specifying the name of the file, which I don't want to do, so just move the file in `dist` after packaging.
* Remove unnecessary changes
* Add qt6-xdgdesktopportal-platformtheme as deps
Needed to call the xdg filepicker, basically desktop-specific filepicker. Hopefully this will allow to use it in AppImage
* Get back flatpak in release
* Update release.yml
* Remove libglew-dev from apt install
* Fix duplicate upload artifact
* Update release.yml
Co-authored-by: Christian Semmler <mail@csemmler.com>
* Remove *.AppImage pattern in Download All Artifacts
---------
Co-authored-by: Christian Semmler <mail@csemmler.com>
* Work around issues with depth-buffer size on EGL-based platforms
The OpenGL 1.1 and OpenGL ES 2.0 backends can break on EGL-based platforms,
such as Wayland, or X11 with SDL_VIDEO_FORCE_EGL=1. One of the reasons for
this (the other being glew on the GL1.1 backend) is that SDL/egl get very
confused by the way we set OpenGL attributes, particularly SDL_GL_DEPTH_SIZE,
resulting in SDL_GL_CreateContext() failing with EGL_BAD_MATCH.
The exact cause of this is unknown, but it seems to be a combination of:
- SDL_GL_SetAttribute() is supposed to be called _before_ the window is
created, and we're calling it afterward.
- Creating several test windows during the enumeration process, mixing
and matching between OpenGL and OpenGL ES profiles.
The "most correct" solution is probably to delay creating the game window
until the backend creation process, rather than before the enumeration
occurs. But that's a real refactor, which could cause other issues.
Instead, set the 24-bit bit depth (which we've hardcoded anyway) before
creating the window, and use SDL_GL_ResetAttributes() when creating backends.
This seems to work here in all of the cases I was able to try (modulo the GLEW
dependency, which is removed in the next patch).
* miniwin: Remove GLEW dependency for OpenGL 1.1
GLEW normally backs directly onto glXGetProcAddress on Linux, which is broken
on non-GLX setups, such as Wayland (but also X11 with EGL, and presumably KMSDRM).
Replace it with manual calls to SDL_GL_GetProcAddress() for the VBO path.
Note, however, that SDL_opengl.h includes "windows.h", so conflicts with the
miniwin implementation, which breaks builds on windows.
In order to work around this, we do what the Direct3D9 implementation does and
push all of the OpenGL calls to a separate file, actual.cpp.
Going forward, it may make sense to load _all_ OpenGL entry points via SDL,
which would allow us to avoid linking directly with libGL/libOpenGL, and
therefore eliminate the separate build dependency altogether, as well as
allowing more runtime configurability as to the OpenGL library to load.
(But that's definitely a bit uglier, and also useful very rarely.)
* d3drm: store LPVOID data instead of DWORD
* m_extraCharacterId is an integer, not a pointer
* cmake: look for iniparser using config file first, then try our custom module file
Our custom module file is still useful.
My linux distro does not package the cmake files.
* x86's stdcall becomes MS's x64 calling canvention
* Fix 64-bit mxdsbuffer pointer arithmetic
* Casting from void* to a smaller-sized integer needs an intermediate equally-sized integer
* Don't cast address to scalar (this is fishy)
* Add mingw64 build to the ci matrix
* Ignore -Wdiscarded-qualifiers warning with const vtables
* Ignore different 'const' qualifiers with MSVC
* Create d3dxof import library for MSVC
* DESCRIPTION in .def file(s) is deprecated
* Assume mmx is supported on x64, require a test for x86 and disabled on other archs
* 32- and 64-bit LEGO1.dll export different symbol names
* Introduce d3drm_guid containing the guids of d3drm
* Disable __wine_dbg_cdecl
* Include d3drm directory with EXCLUDE_FROM_ALL
* lego1 leaks d3drm headers
* Add dxfile.h
* Add 64-bit MSVC to the build matrix
* cmake: using ISLE_USE_DX5 means going all-in
* Load d3dxof.dll dynamically
* cmake: don't emit a warning about bitness anymore
* Fix engineConfig declaration crossing jump
This fixes the following error:
```
/src/isle-portable/LEGO1/omni/src/audio/mxsoundmanager.cpp: In member function 'virtual MxResult MxSoundManager::Create(MxU32, MxBool)':
/src/isle-portable/LEGO1/omni/src/audio/mxsoundmanager.cpp:119:1: error: jump to label 'done'
119 | done:
| ^~~~
/src/isle-portable/LEGO1/omni/src/audio/mxsoundmanager.cpp:78:22: note: from here
78 | goto done;
| ^~~~
/src/isle-portable/LEGO1/omni/src/audio/mxsoundmanager.cpp:84:26: note: crosses initialization of 'ma_engine_config engineConfig'
84 | ma_engine_config engineConfig = ma_engine_config_init();
| ^~~~~~~~~~~~
```
* Fix 'invalid conversion from 'SDL_FunctionPointer' {aka 'void (*)()'} to 'void*'
* /SAFESEH:NO is a VC thing
* SDL3 is still instable
* Cannot forward declare and use enum
* Remove MusicManager from public LEGO1.DLL interface
* Copy d3d from wine git 6c5d17af07a318d754c0c21023b2d162a0d3725d
* Build d3drm-wine with 32-bit mingw
* cmake: move 3rd party targets to cmake script in 3rdparty directory
* cmake: bump minimum required CMake version to 3.25 to allow adding a subproject with SYSTEM automatically applied
An alternative would be to use SYSTEM in target_include_directories in the 3rd party cmake script.
* Add a minimal Findiniparser.cmake (not all distributions carry the upstream iniparser-config.cmake files)
* Add wine's d3drm headers
* cmake: merge ISLE_USE_DX5_LIBS into ISLE_USE_DX5
* cmake: Build all shared libraries in the binary output directory (to avoid PATH issues)
* ci: enable msys2 mingw32 build
* Disable clang-tidy on d3drm wine
* Thread functions must have SDLCALL call convention
* cmake: disable clang-tidy for miniaudio and libsmacker as well
* Hopefully fix c++ format and skip ncc naming violation
* clang-format violations keep up popping out of nowhere
* No need for lego/legoomni/include
* ncc: define SDLCALL as empty instead