Skip to content

Reimplementation of Purple Moon's games from the 1990s (WIP) - NOTE: ScummVM port in progress

License

Notifications You must be signed in to change notification settings

dressupgeekout/lunapurpura

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Luna Purpura

This software is totally a work in progress and very few things are actually functional. It's still in a research phase.

Luna Purpura is a portable reimplementation of Purple Moon's classic computer games from the 1990s:

It is a modern interpreter of the original game files. The goal is: if you have the original CD-ROMs, then you can play these games on today's computers, even on platforms which Purple Moon did not originally support. You should also be able to use the engine to make your own games, too!

Support for Secret Paths in the Forest and the other Secret Paths games is planned, but not currently being worked on. Get in touch if you'd like to help out!

Building Luna Purpura

In order to build games and support libraries from Luna Purpura, you must have CMake.

$ mkdir build
$ cd build
$ cmake .. [cmake-options]
$ make

The following CMake configuration options are supported:

  • BOOL LUNAPURPURA_DEBUG -- Enable debug output
  • BOOL LUNAPURPURA_BUILD_LUA_BINDINGS -- Build the Lua 5.1 (or LuaJIT) bindings
  • BOOL LUNAPURPURA_BUILD_MRUBY_BINDINGS -- Build the mruby bindings
  • BOOL LUNAPURPURA_BUILD_TESTS -- Build the test applications
  • BOOL LUNAPURPURA_PNG_SUPPORT -- Enable conversion to PNG

So, for example:

$ cmake .. -DLUNAPURPURA_DEBUG=ON -DLUNAPURPURA_PNG_SUPPORT=OFF

If you turn on the Lua bindings, you need to also define the following:

  • PATH LUA_INCLUDEDIR -- Location of Lua 5.1/LuaJIT's header files
  • PATH LUA_LIBDIR -- Location of Lua 5.1/LuaJIT's library

If you turn on the mruby bindings, you need to also define the following:

  • PATH MRUBY_INCLUDEDIR -- Location of mruby's header files
  • PATH MRUBY_LIBDIR -- Location of mruby's library

build.sh Usage

For the most basic use cases, we provide an easy script that does it all for you:

$ ./build.sh [make(1) args ...]

You can force a fresh, clean rebuild with the 'clean' argument:

$ ./build.sh clean

Using the tools

Currently, the most feature-complete software are the Ruby scripts in the tools/ directory. Most versions of Ruby >= 2.3 should work just fine on them. Note that these are merely prototypes which are designed to make research on Purple Moon's exotic file formats easier. Eventually, the C implementation will become Luna Purpura's reference code.

Actually playing games

Currently, we're targeting LÖVE as the means to creating actually playable games. This means coming up with C code to decode the game files, and then devising Lua bindings so that a LÖVE application can access them.

LÖVE is merely an implementation detail for rapid prototyping. A more sophisticated, portable and standalone implementation -- written in C and likely based on SDL -- will eventually come around. But in any case, we expect that scripts will be used in some capacity, no matter what.

License

Luna Purpura is released under a highly permissive 2-clause BSD-style license. Take a look at the LICENSE document for more details.

Links

About

Reimplementation of Purple Moon's games from the 1990s (WIP) - NOTE: ScummVM port in progress

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project