Commit Graph

30 Commits

Author SHA1 Message Date
VoxelTek
59f4cf9814 terrible horrible no good very bad ""fixes""
The NXDK seems to be very very broken. Currently, these changes get things all the way to 100% compilation, but fail on the linking step due to `miniaudio`. These changes really need to be actually fixed in future to not be as bad as they are, but I haven't got much of a clue how best to do that.
2025-08-04 12:55:56 +10:00
Christian Semmler
1a2e03de47
Make Anisotropic filtering configurable (#641) 2025-07-23 20:18:05 +00:00
Christian Semmler
a5a3c4ec83
Upgrade OpenGL ES renderer to 3.0, add option for MSAA (#636) 2025-07-23 18:00:48 +00:00
Christian Semmler
4f3ce064e8
Merge remote-tracking branch 'isle/master' 2025-07-15 12:05:45 -07:00
MS
e155bea7fd
Remove GetDriverList getter (#1624) 2025-07-14 11:44:14 -04:00
Anders Jenbo
e2eda71883
Yet another clearscreen ported to use COLORFILL (#508) 2025-07-03 22:04:21 +02:00
Anders Jenbo
d74e6ab401
Use DDBLT_COLORFILL to clear screen on start (#487) 2025-07-03 00:49:47 +02:00
Anders Jenbo
b65284a7a0
Move 2D drawing and upscaling to the renderer (#348) 2025-06-25 19:45:26 +02:00
Anders Jenbo
43a261b945
Use pitch instead of trying to calculate it (#308) 2025-06-14 19:42:50 +02:00
Anders Jenbo
d3378026ba
Remove screen mode restrictions and related code (#291) 2025-06-12 22:51:42 +02:00
Anonymous Maarten
7e9acc8d04
Add IDirect3DRMMiniwinDevice interface (#267) 2025-06-09 16:34:37 +00:00
Anders Jenbo
96c962f857
Additional strict type checking in DirectX implementation (#91) 2025-05-15 23:18:21 +02:00
Anders Jenbo
db7781473a
miniwin: Clean up headers and make bitflags and enums strict (#90) 2025-05-14 19:51:41 -07:00
Christian Semmler
9d01f67abb Merge remote-tracking branch 'isle/master' into mergeisle4 2025-04-06 08:36:09 -07:00
MS
51fc69e49f
Various DirectDraw items (#1411) 2025-03-15 11:12:10 -04:00
Christian Semmler
622f00f628 Merge remote-tracking branch 'isle/master' into mergeisle3 2025-03-14 13:59:52 -07:00
MS
8b7182f9db
MxDirect3D::SetDevice to 100% (#1396) 2025-02-27 22:02:17 -05:00
Anonymous Maarten
05cfe4ee25
Even more SDL usage (#49)
* Texture pixel data is passed through as const data

* Use SDL_Surface/SDL_Palette in LegoImage

* Use SDL_Process to run subprocess

* Pass SDL_Window handle to SDL_ShowSimpleMessageBox

this makes sure the message dialog is shown as modal dialog and is on top

* Log errors during initialization

* Show SDL error during initialization

* Include <climits> for INT_MAX

* Replace _access with SDL_GetPathInfo

* Use SDL_RemovePath instead of DeleteFile

* Use SDL_RenamePath instead of MoveFile

* Use MxS32 in legoutils.cpp

* Update LEGO1/lego/legoomni/src/common/legoutils.cpp

* Naming

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-12-28 16:52:34 +01:00
Christian Semmler
3819dd0dae
merge 2024-07-01 16:52:14 -07:00
MS
6e39e87613
Create MxDirectXInfo module (#1047)
* Some beta addrs and asserts to start

* Create mxdirectxinfo

* include fix

* CONFIG annotations

* Beta matching

* Match format function better, add dead code function

* LegoDeviceEnumerate
2024-06-27 12:22:13 -07:00
Anonymous Maarten
196259c6c9
Parse cli arguments + log with SDL_Log (#30)
* cmake: copy DLL dependencies to output path

This also copies SDL3.dll from an external path when using system
dependencies.

* Only include <SDL3/SDL.h>

* isle: parse cli argument (--ini for custom ini path)

* Use SDL_CreateWIndowWithProperties to create SDL window

Less branching => Clearer code

* Log mxdirectx failure using SDL_Log + E_NOINTERFACE

* Fix d3drm32.def for msvc

* Define D3DRM_WINE when using d3drm from wine

* Ignore failed assertions from d3drm unimplemented functions

* inparser will/should create libiniparser.lib for static libraries and iniparser.lib for a shared library
2024-06-26 11:24:40 -07:00
Anonymous Maarten
659a54b221
Add support for building x64 executables (#29)
* 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
2024-06-25 18:47:43 -07:00
Anonymous Maarten
8113a17167
Backports of isle-portable x64 fixes (#1044)
* Introduce LPD3DRM_APPDATA typedef for setting d3drm appdata

* Fix warning about assigning const string literals to variable char pointers

* Don't cast pointers to integers on non-32-bit architectures

* memset 2nd argument is int

* Assume cpuid is available on x86_64, needs testing on i386 and unavailable on anything else

* Store HFILE in its own member variable
2024-06-25 17:56:30 +02:00
Nathan M Gilbert
84af3e2158
Match some names/values (#545)
* Match some names/values

* Fix mingw warning as error
2024-02-10 00:40:52 +01:00
Anonymous Maarten
ccb6223d70
Decompiled CONFIG.EXE executable (#533)
* mxdirectdraw: no need to explicitly add a terminating '\0' in C

* mxstopwatch must include LIMITS.H for ULONG_MAX

* Add Config app

* 88.78%

* style fixes

* Test more CONFIG things

* Add a few assertions on MFC classes

* reformat

* actionSSSSSSSSSSSSSSS

* actions again

* decomplint needed a shebang

* Fix annotations of Message Map entries

* ci: We're building CONFIG.EXE, not CONFIG.DLL

* remove ninja.exe

* Fix CAboutDialog::GetMessageMap annotation

* format reloaded

* Fix global CConfigApp object annotation

* trigger worflows

* ci: request at least python 3

* oops :)

* curl CONFIGPROGRESS-OLD.TXT will fail

* Forget about actions/setup-python (for now)

* Annotation fixes

* Config tweaks and MxDirect3d annotations

* It's important to compare against the correct file

* Introduce common CDialog parent for CAboutDialog and CMainDialog

* format

* Remove CSerializer

---------

Co-authored-by: disinvite <disinvite@users.noreply.github.com>
2024-02-07 12:11:45 +01:00
Anonymous Maarten
ac8ddca405
Implement mxdirectx stubs (#525)
* Implement MxDeviceEnumerate::SupportsMMX

* Implement MxDeviceEnumerate::EnumerateErrorToString

* fixes

* fixes

* Remove STUB from function

* Fix error messages

* Use return type int

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-04 15:46:15 +01:00
Anonymous Maarten
9e686e2a87
cmake+ci: run clang-tidy (#512)
* cmake+ci: run clang-tidy

* Remove DESCRIPTION from LEGO1/LegoOmni.mingw.def

* Add initial .clang-tidy and fixes

* fix file perms

* Comment out DESCRIPTION

* Remove LegoEntity::~LegoEntity and MxPresenter::~MxPresenter from mingw's LEGO1.def

* Looks like clang is allergic to the libs in the directx5 SDK

* Update .clang-tidy

* Fix typo in .clang-tidy

* Attempt to generate an action error

* Revert "Attempt to generate an action error"

This reverts commit 96c4c65fedbc4102837f4bcbbb9ee83a7d14cba3.

* cmake: test with -Wparentheses + optionally with -Werror

* ci: -k0 is a Ninja argument

* Use -Werror only for msys2 builds

* cmake: only emit warnings for specific warnings

* cmake: and don't do -Werror/-WX anymore

* Fix warnings

* Fix mingw warnings

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-02-01 21:42:10 +01:00
Misha
f50b771fff
begin implementation of InfoCenter class (#444)
* Push changes

* fixes

* Implement Infocenter::HandleEndAction

* match Infocenter::StopCutScene

* implement Infocenter::HandleKeyPress

* fixes

* Update infocenter.cpp

* Update legoworld.cpp

* use enums

* WIP Fixes

* Fix

* Fix

* Fix

* Rename function

* Change enum

* Update enums

* Refactor another enum

* Refactor MxDSType

* Refactor HashTableOpt

* Fixes

* Refactor tickle enum

* Update other enums

* Add EnumConstantName to ncc

* Move enum to global namespace

* Rename enum

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-17 17:53:53 +01:00
Anonymous Maarten
fbe7f8bbb0
Fix all mingw errors & warnings (#411)
* Use COMPAT_MODE macro to fix errors with mingw gcc 12.2

* MxOmni::m_timerRunning is a MxBool

* MxDirect3D::m_unk0x88c is a MxBool

* MxBackgroundAudioManager::m_unk0x13c is a MxS32

* Fix warning: deleting 'void*' is undefined [-Wdelete-incomplete]

* Fix inline function 'void TglImpl::RendererImpl::Destroy()' used but never defined

* Fix warning: inline function 'MxStreamerSubClass1::MxStreamerSubClass1(undefined4)' used but never defined

* Use `FALSE` for m_timerRunning

* Format

* Format

* Remove comment

* Limit scope for variables in compat mode

* clang-format

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-07 18:30:45 +01:00
Christian Semmler
bb7e4df11b
Move MxDirectDraw and MxDirect3D to mxdirectx (#413) 2024-01-07 18:07:22 +01:00