I am once again asking for the quote of the month to be changed as it is now a new month - Mjmd

Create an account  

 
Reversing to Orion - project 1oom

Hello folks,

1993 was a great year for PC gaming: Doom, XCOM/UFO and Master of Orion. Now, 25 years later, in a post-DOS world... how does one play these?

Doom has numerous "source ports" due to the source code release by Id. For X-Com there's the popular OpenXcom project, an engine re-interpretation which provides modern compatibility and GPL goodness, along with extended mod support.

As for the other MicroProse classic, the original Master of Orion, we have v1.3 and some unofficial v1.4 hacked DOS EXEs with no source code in sight. Well, time to change that!

Enter 1oom, a Free Software game engine recreation of the original Master of Orion. This project aims to preserve and improve the experience of playing Master of Orion in modern systems, while providing some mod support via PBX patching.

As of the moment, the engine is fully functional and allows the game to be played from the beginning to the end. Keep in mind 1oom requires a copy of the original Master of Orion 1.3 to be played. You may purchase an officially licensed DRM-free copy from GOG.com.

Find the last release here. Source code and binaries for win32 and msdos are available.
A homepage exists.
As does a git.
The .idb files used to create this are available in the homepage.

The project is finished.
Support Free Software projects!
Reply

Cool!

There's a clone of MOO1 in development called Remnants of the Precursors, but they're completely remaking everything, including art etc. and I'd rather keep the original style, so what you're doing is right up my alley. My main gripe with MOO1 is the small size of the map screen. Does your engine allow bigger screens? Otherwise, it doesn't seem like an improvement over running it in DosBox.

Anyway, I'll try this out some time. I'd love to help, but I don't know if I can find the time to do much.
Reply

I will second RFS-81 that this sounds interesting. Some quality of life stuff for MoO such as screen size would certainly be nice ot have. nod And mod support of any kind would be fantastic -- all kinds of possibilities for variant play and scenariors come to mind. smile
Reply

You can read about the project goals here:
https://github.com/KilgoreTroutMaskRepli...PHILOSOPHY

To make it short,
* Vanilla-like behaviour is the priority except for game-breaking bugs.
* mod support will be a thing.
* multiplayer is planned (offline and eventually online)

Right now we require help with testing, so if you already enjoy playing MoO1, try running it with 1oom instead of DosBOX! Kindly report any bugs you may find on github.
Support Free Software projects!
Reply

Awesome!

...but all the links appear to be down.
Reply

1oom has moved to GitLab: project, git, homepage

1oom v0.4 has been released. Changes:
    - add -uiscale N for viewing more of the galaxy at once
    - local multiplayer is ready for testing (use -new to start)
    - 1oom_pbxdump as the counterpart to 1oom_pbxmake
    - bug genocide marches on, notably:
    - AI fleets disappearing when sent fixed
    - AI ship design phase can no longer hang
    - MSDOS port should not crash at the slightest provocation

Source code: https://gitlab.com/KilgoreTroutMaskReplicant/1oom
Binaries: https://gitlab.com/KilgoreTroutMaskRepli.../tags/v0.4
Homepage: https://kilgoretroutmaskreplicant.gitlab.io/plain-html/

Note that the project has moved from GitHub to GitLab. Grab a fresh git clone.

HELP WANTED!

The code needs a lot of testing; play it and yell if it breaks! When it does, make a copy of 1oom_save8.bin pass it along the bug report.
Support Free Software projects!
Reply

As the guy who reverse-engineered the graphic LBX file data format (https://github.com/Zeraan/MoO1LBXManager), I have a question. Did you reverse-engineer the code that loads in the graphic files? I mean, did you manually reverse engineer it, or did you use a third party decompiler that generates C code? What is your level of understanding of how graphic LBX files works?  This would be greatly beneficial for me to improve my utility as any attempts by me to re-package graphic LBX files crashes the game.  I would love the ability to debug and figure out what's going on and make my tool compatible with both original MoO 1 and this.
Dominus Galaxia, a Master of Orion inspired game I'm working on.
Reply

Hello Zeeran,

My apologies for the delay. I should make it clear I am not the author of project, just the person in charge of PR. For future technical questions I would advise you to post directly on the git page. Still, in reply to your previous questions, the project coder says the following:


Quote:Did you reverse-engineer the code that loads in the graphic files?

Yes and no. The loading itself contains things like EMM memory handling which I haven't looked at much. Ignoring the DOS memory management peculiarities, the loading part is simply copying the file contents to RAM.

I think you want to ask about using the data from the graphics files, in other words the drawing functions; yes, I reverse-engineered those.

Quote:I mean, did you manually reverse engineer it, or did you use a third party decompiler that generates C code?


Binary to asm by IDA 5.0 (links to idb files in the OP), asm to C manually. I did reverse the LBX gfx format (up to a point) by observing the files back in the 90's, so I knew what to expect of that part.

Quote:What is your level of understanding of how graphic LBX files works?

Good enough, I would say. See https://gitlab.com/KilgoreTroutMaskRepli...at_lbx.txt and 1oom_gfxconv.


Quote:This would be greatly beneficial for me to improve my utility as any attempts by me to re-package graphic LBX files crashes the game. I would love the ability to debug and figure out what's going on and make my tool compatible with both original MoO 1 and this.


Try to view the modified LBX files in 1oom_lbxview_sdl1; if that behaves wrong then you should have an easier time to pinpoint the problem. Sadly I lack the time debug your application, and I must say C# is not really my cup of tea. Perhaps compare to 1oom_gfxconv output? (Although that may be buggy as well.)
Support Free Software projects!
Reply

1oom v0.5 has been released. Changes:
    - support mouse wheel for lists, sliders and zooming
    - add -uiextra for enabling extra UI features, notably:
        * new New Game screen with opponent selection (including AI/player)
        * planetary governor for less micro (click on name to enable/disable)
    - SDL: support 15/16/24 bpp
    - added documentation on differences to v1.3
    - some improvements from the unofficial patch v1.40m have been implemented
    - add Classic+ AI with small fixes, some from v1.40m
    - about 100 bugs fixed, notably:
        * the AI should now provide a worthy challenge
        * space combat works as it should
        * fixed many crashes
    - added doc/pbxin_fixbugs.txt for optional bug fixes
    - last and least: the "No Events" text overlay is implemented

Source code: https://gitlab.com/KilgoreTroutMaskReplicant/1oom
Binaries: https://gitlab.com/KilgoreTroutMaskReplicant/1oom/tags/v0.5
Homepage: https://kilgoretroutmaskreplicant.gitlab.io/plain-html/
Development builds: https://lxnt.wtf/oxem/#/1oom

HELP WANTED!

The project has reached a point where the game is fully playable, not crashing all the time and actually fighting back.

Many of the undoubtedly remaining bugs will need MOO1 expertise to spot. If you can beat MOO1 on impossible (which the project maintainer has yet to do) then please give this a whirl and report any oddities you encounter.

Late game saves with (near) max tech and huge fleets would be very helpful in debugging overflows. If/when you have some, please send them along.

Big endian hardware test results would be interesting.
Support Free Software projects!
Reply

I would love to playtest this thing, but the installation instructions are not intuitive for a tech dummy like me. Any chance there will be an installation wizard at some point to find the needed files from the original game on one's computer, extract/copy them to a new folder, and add in the new files? Or am I fundamentally misunderstanding how this works?

The Civ4 mod "Planetfall" I was able to handle. That mod had the option of using the assets from the original Alpha Centauri, but the only thing the player was obliged to do was copy/paste the old SMAC assets into new folders under the Planetfall mod's directory. I can handle that. But I'm not sure how I navigate this installation.
Reply



Forum Jump: