Restored: The Dark Core
Michael Hilborn — AKA A New Breed of Dragon — is a name well known to those who have played through (or who followed the development of) Lazarus. But before there was Lazarus, there was another fantastic work of New Breed’s Ultima-inspired storytelling, which was Ultima: The Dark Core.
What was arguably the first browser-based Ultima spinoff (take that, Lord of Ultima!) is once again available for download here at Aiera, and I have also updated the project entry with some notes and considerations for getting the game running on modern systems. Downloads to compatible Internet browsers (The Dark Core’s requirements are, sadly, very specific) have also been added.
Could be a neat project to update this to work on modern browsers.
I’ve never learned Javascript, but I managed to get the IE version of the game to kinda-sorta work with a little hack.
The source of the problems seems to be that the semantics of accessing variables stored in the game’s “parent window” have changed over the years.
The last thing the game does in its initialization routine is access a “sound flag” variable which is defined in DarkCore.html.
Actually, after a second examination, it looks the semantics of variable access between any two different windows have changed.
For example, you can pop up a little window for turning off sound or music, but it has no effect, since the main game window doesn’t “notice” the changes it makes it the sound and music flags.
If I have time, I’ll research this and find the proper way to fix it. Though I wouldn’t be surprised if there are people reading who already know this stuff.
I guess I’m not surprised that such changes have occurred; browser variable passing isn’t really part of my security expertise, but I could see how allowing comprehensive variable sharing between e.g. a grayware popup window and the main window might be a pipeline for malicious code to launch attacks.
At any rate, Infinitron, I’ve received your updates (thanks, by the way!) and will replace the affected files in the IE4 bundle later today, and then upload that as the new and improved IE8 bundle.
Yes. The problem was that in New Breed’s code, each window’s creator attempted to set some fields in that window after opening it. These fields are meant to contain references to to other elements in the game.
This is apparently no longer allowed, or requires special security settings. I changed the code so that newly created windows locate these elements and set the fields on their own.
Good work, and thanks again!
Now, here’s the question: is this new version specific to IE8, or do you think other browsers (Firefox, Chrome, etc.) would handle it as well?
If the latter, here’s another question: is there anything in the code which is Windows-specific, and would as such preclude running The Dark Core on e.g. OS X?
Best way to find out is to try.
Intuitively, I’d say that all modern browsers should work. Internet Explorer was the standard for many years before Firefox and Chrome emerged, so I think any old code that works in IE should work in those as well.
I’ll give it a shot when I merge the files this afternoon, then.