elbereth / DragonUnPACKer

Free/Open source game file resource explorer/unpacking tool made easy!
https://www.elberethzone.net/dragon-unpacker.html
172 stars 21 forks source link

Linux build? #199

Open avirahmandev opened 4 months ago

avirahmandev commented 4 months ago

Add Linux support please!

halamix2 commented 4 months ago

Dragon UnPACKer still requires Delphi to build. This app would need to be ported to Lazarus before Linux build could be considered:

avirahmandev commented 4 months ago

Previously I used Linux for daily use, I was not an expert, I had only compiled software according to the guide. I work in game development to export to several platforms just following the guide. As if the game was independent, to be supported on the target OS it only needs to be wrapped in software according to the target platform. In this case it seems different. I want to contribute to open source like this but there are still many things I need to learn. Thanks for the answer in advance!

elbereth commented 3 months ago

A long time ago I tried to change to Lazarus/FPC in order to be able to cross compile to Linux but it was a nightmare, many things did not work and I did not have time to fix them. One of the major hurdles was the main TVirtualView component which was ported to Lazarus but by at least 2 differents people and none of them worked correctly. I then tried to start again from scratch but that was too much work and I already went trough so many total recodes (Monnrock -> VBA -> Delphi) that it killed the momentum...

For a "Delphi" version to compile to Linux I would need to switch everything to FireMonkey + an expensive version of Delphi. Not an option for me.

halamix2 commented 3 months ago

I've tried to convert the existing core project to Lazarus (https://github.com/halamix2/DragonUnPACKer/tree/lazarus-rewrite-core), and I've seen some of the issues:

Compiling for Win32 under Lazarus would be the first step, then adjusting the code for 32/64bit and then making the code portable (e.g now the code uses windows registry, windows-specific path separators etc.)