Elona Porting Project Overview

Version 4.1 by John Stroy on 2011/03/26 05:51

The Elona Porting Project aims to create an extensible and maintainable port of the roguelike Elona.

The project aims to make an initial port of Elona to Java (pure, no native code outside of the Java platform) through the HSPlet framework that will be nearly 100% compatible with mainline Elona.  Within reasonable bounds, the port should behave just like mainline Elona.  Some aspects are difficult or impossible within these restraints (for example, inter-process mutexes do not exist in pure Java; therefore, prohibiting multiple active instances through inter-process mutexes would not be possible); such aspects should be minimized if possible.

Resources

HSPlet will be used to bring up the initial port of Elona on Java.

Requirements

ToDo

Objectives/Milestones

HSP Extension stubs - done!
HSPlet new opcode enhancement stubs - done!
HSPlet new opcode enhancement implementation - mostly done - missing some extended DllCtrl opcode implementations, COM interaction
Elona compilation on HSPlet - done!  Private branch of HSPlet compiles Elona successfully.
Elona port with stubbed extensions - Broken - the constant pool has overflowed because of the number of generated constants.  VMspec indicates that there can be at most 65536 constant pool entries.
Elona port with implemented extensions
Working Elona port, equivalent to Elona 1.22
Enhanced Elona port - extensibility hooks provided
Enhanced Elona port - extensibility hooks implemented
Enhanced Elona port - extensibility hooks used to provide i18n support, graphics pack support, music pack support
Enhanced Elona port - extensibility hooks used to reduce the amount of hardcoded data within the game
Enhanced Elona port - extensibility hooks used to provide expandable storage