Omnispeak 1.0: A Keen:Galaxy reimplementation

Here is where to post about the latest Commander Keen fangame or modification you've finished, a new website you've made, or another Keen-related creation.
Post Reply
User avatar
Multimania
Vortininja
Posts: 84
Joined: Sat Nov 10, 2007 8:10
Location: Hiding in a small, cramped corner of the BwB megarocket.
Contact:

Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by Multimania »

It's still Keen Day over here, so I'm taking the opportunity to release v1.0 of Omnispeak.
Omnispeak is an (almost) complete, bug-for-bug reimplementation of Keen 4, 5, and 6 for Windows and Linux.

Homepage: https://davidgow.net/keen/omnispeak.html
Windows: https://davidgow.net/files/omnispeak-win32-1.0.zip
Linux: https://davidgow.net/files/omnispeak-linux-1.0.tar.gz
Source code: https://github.com/sulix/omnispeak

The downloads include Keen 4 v1.4 already set up, but this release also supports Keen 5 v1.4 and Keen 6 v1.4 & v1.5.

Image

To set up another episode, you need to copy the EGAGRAPH, GAMEMAPS, and AUDIO files into the game directory, along with the contents of the data/keen<ep> directory. If you've got multiple copies in the same directory, you can use the /EPISODE <ep> command line option to select one.

Omnispeak is also (hopefully) compatible with the savegames from those versions of Keen, so you can copy them back and forth as you wish.

Image

Omnispeak is still missing a few things, though:
  • There's not much by way of modding support yet. You might be able to get some levelpacks to work, but patches, for example, aren't supported.
  • Joystick support is buggy and incomplete, and neither gamepad or mouse support exists.
  • Some of the debug cheats (notably Demo recording) aren't implemented.
  • The new settings (Fullscreen, Aspect ratio, and Overscan border) aren't saved anywhere.
  • A few internal things in the engine still work slightly differently, though this shouldn't ever affect gameplay.
This wouldn't have been possible without the huge amount of work NY00123 and lemm have put in, either.

Happy Keening!
Last edited by Multimania on Wed Mar 15, 2017 16:48, edited 1 time in total.
User avatar
lemm
Blorb
Posts: 696
Joined: Fri Jul 03, 2009 10:18
Location: canada lol

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by lemm »

:pogo
User avatar
Nisaba
Janitress
Posts: 1597
Joined: Fri Jan 01, 2016 23:34
Location: The Outpost
Contact:

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by Nisaba »

I gave Omnispeak a shot, and I muss say: pretty pretty sleek!!! You guys put a hole lot of work in there too make this feel so smooth. it does what it should and you don't need DOS or any external emulator to run the game. Impressive!

what bothers me a bit is that the aspect ratio and the overscan border aren't saved anywhere. but you've already pointed that out.
Nevertheless this engine has a whole lot of potential! I'd love to see some mod support for it. this could lift things to a new level.

from now on I'm gonna use it as my favored K4 engine.
out now (link) : Image
User avatar
K1n9_Duk3
Vorticon Elite
Posts: 781
Joined: Mon Aug 25, 2008 9:30
Location: Germany
Contact:

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by K1n9_Duk3 »

I haven't tested this yet, but I have to say I'm very glad to see a faithful Keen:Galaxy reimplementation. I'm also glad that I didn't waste (too much of) my time trying to create my own Keen:Galaxy reimplementation.
Hail to the K1n9, baby!
http://k1n9duk3.shikadi.net
gerstrong
Vorticon Elite
Posts: 1244
Joined: Wed Dec 31, 2008 14:44
Location: Frankfurt - Germany
Contact:

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by gerstrong »

Should I merge some of the stuff into CG? I see the scanborders and Starwars text to be useful for my implementation. Hope that's okay for you...
Having fun developing stuff...
User avatar
Multimania
Vortininja
Posts: 84
Joined: Sat Nov 10, 2007 8:10
Location: Hiding in a small, cramped corner of the BwB megarocket.
Contact:

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by Multimania »

gerstrong wrote: Thu Mar 16, 2017 5:24 Should I merge some of the stuff into CG? I see the scanborders and Starwars text to be useful for my implementation. Hope that's okay for you...
Feel free!
NY00123
Vorticon Elite
Posts: 508
Joined: Sun Sep 06, 2009 19:36

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by NY00123 »

Here it is, essentially the whole thing.

For the coders around here (but also non-coders):

This time, we used some kind of a dumper that, well, dumps the in-game state and objects once for each PlayLoop iteration. This was done so we could compare demo playbacks of Vanilla Keen 4-6 and Omnispeak.

In the Omnispeak codebase, simply look for CK_ENABLE_PLAYLOOP_DUMPER. For Vanilla Keen, there are a few patches in the following link. You can also find a dump printer, which prints each binary dump file as multiple sequences of hex numbers.

Link: https://github.com/sulix/omnispeak/tree/master/tools

Side-note: Still haven't uploaded a version of CKPATCH supporting Keen 6 v1.5...
gerstrong wrote: Thu Mar 16, 2017 5:24 Should I merge some of the stuff into CG? I see the scanborders and Starwars text to be useful for my implementation. Hope that's okay for you...
I surely have no problem with this. Interestingly, you may have possibly spotted that reflection-keen shows the border in games too, although it isn't really used in Keen Dreams (unless MM_SortMem is called for some weird reason).
User avatar
lemm
Blorb
Posts: 696
Joined: Fri Jul 03, 2009 10:18
Location: canada lol

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by lemm »

User avatar
Zilem
Vortininja
Posts: 197
Joined: Thu Jun 11, 2015 2:50
Location: Europe; Denmark
Contact:

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by Zilem »

WoW what happened!? I left like i was back in 1995 on my first PC, for a minute there...
Run Keen better then Dosbox, no random stutters. and even in wide-fullscreen what sorcery is this!?

Will there be a command line to select a data folder, it the future?
when mod support gets implemented, to keep data files separate.

will there be Support for Netkeen or even co-op in the future?
and is there possibility of a Android port in the mists?
The Difference Between a Mod and Fan art?, a Fan art is a Concept and a Mod is that Concept put into life.
User avatar
DoomJedi
Vorticon Elite
Posts: 888
Joined: Mon Dec 14, 2009 11:22
Location: Israel

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by DoomJedi »

Runs and plays wonderfully, what a surprise....I love this community so much...
User avatar
Levellass
S-Triazine
Posts: 5265
Joined: Tue Sep 23, 2008 6:40

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by Levellass »

So wait... what do those vanilla patches do? How do I access whatever it is they're doing?
What you really need, not what you think you ought to want.
NY00123
Vorticon Elite
Posts: 508
Joined: Sun Sep 06, 2009 19:36

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by NY00123 »

Levellass wrote: Sun Mar 19, 2017 12:00 So wait... what do those vanilla patches do? How do I access whatever it is they're doing?
As stated above, their purpose is dumping in-game data, once for each call to PlayLoop.
Before experimenting with this, though, just one, erm, "notice" is incoming.

SOME WORDS OF A WARNING: Be sure you have enough free space. The dumper writes ~7688 bytes per call to PlayLoop (the exact amount depends on the gamestate size, given by the episode number). Assuming 35 calls to PlayLoop per second, this means that more than 15MB may be written under a *single minute*. The rate may be reduced by a factor of 3 for demo recording/playback, but the impact is still there.

Using the dumper patches under DOS: Run CKxPATCH as usual, while further redirecting standard output to the desired dump file. Example:

Code: Select all

CK4PATCH K4E14DMP.PAT > DUMP.BIN
Note that if you do not redirect standard output, you should expect to see the dumped data as on-screen "garbage" (and possibly also observe some other unexpected behaviors).

Running the dumper within Omnispeak: Built Omnispeak from the sources with WITH_DUMPER=1 set. Afterwards, whenever Omnispeak is started, use /DUMPFILE to specify the output dump file
NY00123
Vorticon Elite
Posts: 508
Joined: Sun Sep 06, 2009 19:36

Re: Omnispeak 1.0: A Keen:Galaxy reimplementation

Post by NY00123 »

OK, this *is* somewhat off-topic, but since it kind-of-started following the support for Keen 6 v1.5 in Omnispeak...

I've uploaded yet another unofficial update to CKPATCH. It now supports Keen 6 v1.5. In addition, it can be used with the original PKLITE-packed Monster Bash executables (i.e., there's no need to unpack them).

It should be compatible with that k6e15dmp.pat file, currently found under omnispeak/tools/kdumper (https://github.com/sulix/omnispeak/blob ... e15dmp.pat).

For more details you can check this out: https://keenmodding.org/viewtopic.php?p=21358#p21358
Post Reply