Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone with no article paywalls. Just good, fresh content! Alternatively, you can donate through PayPal, Liberapay or Buy us a Coffee. You can also buy games using our partner links for GOG and Humble Store.
Magic Carpet 1 / 2 Reverse Engineered
sub 8 Jun
Hi all,

recently found this project.

https://github.com/turican0/remc2

And as big fan of the Magic Carpet games (and someone who does not understand,
why there hasn't been any attempts for another MC game or clone) I'm overly
excited from what that already advanced project promises.

As far as I get it, and how this source looks like, it is a similar approach
that the Devilution project took.

Yet, while they say it should build for Linux, I wasn't able to.
Because of some strange SDL dependencies in CMake.

Maybe someone else is keen to try this.

If it works or is interesting enough, it may be also worth an article on GoL.

I mean Magic Carpet is still a lot of fun to play today imho. :)
buono 8 Jun
This takes me back! This was a family favorite, I can remember my father playing. This was from a time when we had old second hand computers that we upgraded - also quite competitively..

I can't help right now, but this does bring back fond memories.
Faalhaas 29 Jun
Quoting: subIf anyone manages to build and test it, please post short feedback on the state of that project.
Would be very appreciated. Thanks! :)
I also get problems with sdl2_mixer and sdl2_ttf when compiling. Something to do with 32-bit problems I guess.

I did manage to force compile it in 64-bit. But I get a segmentation fault when running remc2. When I run remc2unittest I get this output:
remc2]$ ./remc2unittests 
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from StructuresSizeTest
[ RUN      ] StructuresSizeTest.Engine
/home/user/remc2/remc2/UnitTests.cpp:6: Failure
Expected equality of these values:
  224791
  sizeof(type_D41A0_BYTESTR_0)
    Which is: 245115
[  FAILED  ] StructuresSizeTest.Engine (0 ms)
[----------] 1 test from StructuresSizeTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] StructuresSizeTest.Engine

 1 FAILED TEST

Then again, I read something like "64bit will be available after rewriting all arrays to structures" on Github.
whizse 30 Jun
  • Supporter
link

Will post build instructions when I have more time!
whizse 30 Jun
  • Supporter
I cheated a little bit and actually built this fork as it mentions Linux support:
https://github.com/thobbsinteractive/magic-carpet-2-hd

I still ran into some problems. CMake does for some reason not find any libraries, I had to explicitly set the path with CMAKE_LIBRARY_PATH="/usr/lib/i386-linux-gnu"

Otherwise I followed the instructions in the README:

export BUILDTYPE=Debug # or Release
mkdir -p build/${BUILDTYPE}
cd build/${BUILDTYPE}
cmake -DCMAKE_BUILD_TYPE=${BUILDTYPE} -DCMAKE_INSTALL_PREFIX=./inst [SOURCE_DIR]
make
make install


Caveats
  • Build was done in a 32bit chroot.
  • I could not get sound to work, segfault in the MIDI stuff. I just renamed the SOUND dir to disable it.
  • Game logic seems to follow framerate, so use strangle or something similar or the game will run waay to fast.
  • It has a dependency on googletest/libgtest not picked up by cmake.
  • The extract-GOG-CD.sh script mentioned in the README is in the EXTRACT dir.

I must admit that I have never played or even heard of these games before, but they must have been pretty damn impressive back in the day! Interestingly the README mentions that it had some sort of VR support (back in 1994?) and one of the goals of the fork is to add support for modern VR.
sub 30 Jun
Great - thank you very much for giving it a try and the progress! :)

Magic Carpet 1 (not sure about 2) had build-in support for at least the VFX1 headset.
Apart from this decompilation effort, I wonder why nobody (capable - I'm not unfortunately) has
made an attempt to include OpenVR support into DOSbox that allows to use modern VR headset leveraging
the built-in VR support of classic DOS games (there are quite a few).
whizse 30 Jun
  • Supporter
Quoting: subI wonder why nobody (capable - I'm not unfortunately) has
made an attempt to include OpenVR support into DOSbox that allows to use modern VR headset leveraging
the built-in VR support of classic DOS games (there are quite a few).
Sounds like a great idea!

I tried the original project now, and it's got about the same problems/solutions to build (plus an undeclared boost dependency) and it's in much better shape than the fork!

Sound and music works (both midi and the new ogg tracks), proper upscaling of graphics and running at the correct speed without the need for strangle.
metalinux 1 Jul
Fantastic there is still so much love for the Magic Carpet series, lots of fond memories playing the big box version on my Windows 98 PC back in the day!
Faalhaas 1 Jul
Quoting: whizseBuild was done in a 32bit chroot.
How does one chroot into 32-bit exactly? :)
I only chrooted once (during the installation of my 64-bit OS).
whizse 1 Jul
  • Supporter
Quoting: FaalhaasHow does one chroot into 32-bit exactly? :)
I only chrooted once (during the installation of my 64-bit OS).
It's pretty easy with debootstrap on Debian (don't know if there's something similar for Arch?):
debootstrap --arch i386 sid my_chroot_dir 
  
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

This ensures all of our main content remains totally free for everyone with no article paywalls. We also don't have tons of adverts, there's also no tracking and we respect your privacy. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Twitter Sign in with Google
Social logins require cookies to stay logged in.

Livestreams & Videos
Community Livestreams