We do often include affiliate links to earn us some pennies. See more here.

xoreos is a FLOSS project aiming to reimplement BioWare's Aurora engine (and derivatives), covering their games starting with Neverwinter Nights and potentially up to Dragon Age II. This post gives a short update on the current progress.

Note: This is a cross-post of a news item on the xoreos website.

A new year, a new release: we are proud to announce the release of version 0.0.4, nicknamed "Chodo", of xoreos and xoreos-tools.

In this release, Neverwinter Nights now shows speech bubbles for conversation one-liners, as used for cutscenes, bark strings and short NPC dialogues. Additionally, the premium modules BioWare sold for Neverwinter Nights, including the three that come with the Diamond Edition, can now be properly loaded and started.

An oversight in the handling of the texture fonts used in Neverwinter Nights and the two Knights of the Old Republic games has been fixed. This oversight broke rendering of certain characters, most prominently of those used in eastern European languages and the "smart" single quotation mark that's used instead of an apostrophe in some strings found in the French versions.

For xoreos-tools, there's two new tools: fixpremiumgff and ncsdis.

The first tool, fixpremiumgff, can restore the deliberately broken GFF files found in the BioWare premium modules for Neverwinter Nights. The resulting GFF files can then be edited as normal.

The second tool, ncsdis, is a disassembler for the stack-based bytecode of BioWare's NWScript scripting language. It supports the scripts of all games targeted by xoreos and can disassemble them into a full assembly listing. It can also produce a control flow graph in the DOT description language, which can then be plotted into an image by using the dot tools from the GraphViz suite.

Moreover, this release includes a lot of user-invisible code documentation and quality fixes, in both xoreos and xoreos-tools.

Binaries for Windows, GNU/Linux and Mac OS X are attached to the GitHub release, here for xoreos and here for xoreos-tools. Additionally, packages for various GNU/Linux distributions can be found on the OpenSuSE Build Service (here for xoreos, here for xoreos-tools) and in Arch Linux's AUR (here for xoreos, here for xoreos-tools).

Alternatively, the repository and the source tarballs contain PKGBUILD files in dists/arch/ and a debian build directory in dists/debian/, which can be used to build Arch Linux and Debian/Ubuntu packages, respectively.

And as always, we're looking for more developers to join us in our efforts to reimplement those 3D BioWare RPGs. If you would like to help, please feel free to contact us. :)

Article taken from GamingOnLinux.com.
0 Likes
About the author -
Geek. Atheist+. Leftist. Metal-Head. Discordian. Lefty.
ScummVM dev, xoreos lead.
Free software zealot.
See more from me
The comments on this article are closed.
8 comments

Purple Library Guy Feb 2, 2016
Does anyone have some context for this? I can't quite tell whether this means "Xoreos generally works at least on certain games except for various annoying glitches, and we just cleaned up some of those", or whether it means "Xoreos technically makes certain games run but they are unplayable, and this release cleans up certain issues but leaves that broader unplayable status largely intact".
The progress described, not to mention the tools for easing the continuation of progress, sound very positive, but I can't tell what that means for the general prospects.
DrMcCoy Feb 2, 2016
Quoting: Purple Library GuyXoreos generally works at least on certain games except for various annoying glitches, and we just cleaned up some of those
Unfortunately not, no.

Quoting: Purple Library GuyXoreos technically makes certain games run but they are unplayable, and this release cleans up certain issues but leaves that broader unplayable status largely intact
This, rather.

What currently works is this: xoreos can detect and start all games. All games show basic ingame areas, with objects and (often) NPCs. Scripts (on area enter, on object click) are evaluated and run, but many of the functionality kicked off by the scripts is not implemented yet. Sound, music and videos work for most games. NWN and KotOR/KotOR2 also have GUIs (NWN more extensive), and NWN also has NPC conversations implemented.

There's no "proper" gameplay as such implemented yet.

For some screenshots, see the screenshots page here: https://xoreos.org/screenshots/index.html
For a video of Neverwinter Nights running in xoreos, see this video: https://www.youtube.com/watch?v=_EZRvDIB7wI

For a big rambly, non-exhaustive list of things left to do, see this wiki page: https://wiki.xoreos.org/index.php?title=TODO

Quoting: Purple Library GuyThe progress described, not to mention the tools for easing the continuation of progress, sound very positive
It's progress. Slow progress, and there's still a lot to do, but progress nonetheless.

Quoting: Purple Library Guybut I can't tell what that means for the general prospects.
Well, the prospects are these: it's a massive undertaking. With the current level of contributors, who are there (and I'm super grateful for them <3) and me still doing most of the work, this is never going to be finished.

I.e. I need more contributors. Anybody interested, please contact me. Anybody who knows people potentially interested, tell them about xoreos. Get the word out. Thanks! :)

If anybody has any questions about this project or the process or anything, feel free to ask.


Last edited by DrMcCoy on 2 February 2016 at 12:29 am UTC
DrMcCoy Feb 2, 2016
Quoting: GuestI wonder if by smart single quotation mark, you mean this: ’
And if by apostrophe you mean this: '

Yes, or rather, I mean 0x92 from the Windows Codepage 1252, and 0x27.

The former is also used as a single closing quotation mark. The Unicode description is RIGHT SINGLE QUOTATION MARK, with a comment "this is the preferred character to use for apostrophe". Just to distinguish it from 0x27, I called it a "smart" single quotation mark. :)

The strings in the French version Neverwinter Nights use both, interchangeably. In the texture that defines the font, both characters look the same. So some of them were broken, some displayed correctly. This has been fixed now.

The issue, in case anybody's interested was that xoreos didn't take the font encoding into account. It basically acted as if the order of the letters and their indices were the same as in Unicode (or as UTF-32 codepoints). This works for all characters in Latin1 (ISO-8859-1), because those map 1:1 onto Unicode. And because CP-1252, the encoding used in western European versions of Neverwinter Nights (and KotOR/KotOR2), is mostly identical to Latin1, this also worked.

Except for the quote/apostrophe, which is 0x92 in CP-1252, but maps to UTF-32 codepoint 0x2019. And, of course, the extended Latin-based characters eastern European languages (which use CP-1250) don't map either, let alone Cyrillic characters (CP-1251). [1]

This has been fixed, and now both apostrophes show correctly in French Neverwinter Nights versions. Likewise, eastern European versions should also work better now (but I personally haven't tested them).

[1] Neither would any of the Asian languages work, but xoreos doesn't support them at all yet, unfortunately.
I cannot really offer any help (except maybe playtesting sometime in the future), but I wanted to say how much I admire your effort! Amazing undertaking and a worthy project... the golden age of Bioware games.
Anorelsan Feb 2, 2016
It's just amazing the work done, and mostly by one person! I hope there number of contributors grows and help you with this amazing and big project.
DrMcCoy Feb 2, 2016
And if anybody's interested in that, here's an interview I did with The Linux Gamer:

View video on youtube.com
Purple Library Guy Feb 2, 2016
Thank you very much, Dr. McCoy, that elucidated exactly what I was wondering about very clearly.
throgh Feb 2, 2016
Just to note: I've added a tag also on Diaspora! :) This project needs more attention in my point of view.


Last edited by throgh on 2 February 2016 at 10:39 pm UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring 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!
The comments on this article are closed.