There is a somewhat obscure 1997 "prequel" by Activision called "Zork: The Undiscovered Underground." It has something called "ZorkTUUWinFrotz" in the folder, and when you fire it up you get a blue screen/white text but this can be changed like other things (e.g. font). It looks a bit like a Wordpad program.
Using SCUMMVM to play it works well enough- you get the error message "> @get_child called with object 0 (PC = 953f) (will ignore further occurrences)" when you first get the chance to input something but after that the game works fine- except for similar occurances under certain circumstances. You can only use the blue screen/white text mode since the controls from Frotz are not available. Saving and Loading games is just a bit awkward but appear to work. OVERALL: the game is playable but with minor glitches.
The other games are the three "Jewels of Darkness" games. The colors are rather different from those on DOSBox; it is a CGA game and changing various settings has no effect. The game runs well otherwise, but unfortunately there is a little problem: you cannot save a game; when you try to LOAD, RESTORE, or whatever a game, there is nothing. You get a "Saving using interpreter" followed by a "Game saved" message, but...nothing. The message is "Unable to restore game." Save files do appear in the SCUMMVM folder in the APPDATA folder, but do nothing.
When first starting these three "Jewels of Darkness" games you see in Bold type "Level 9 Interpreter, ScummVM version."
These three games run perfectly on both DOSBox v0.74 for Windows (ASUS, Sony, and Dell) and, believe it or not, PocketDOS v1.2.1 on the crummy Sylvania Windows CE netbook. It should be noted that in these cases you start from a central file and are given various options including graphics cards (even Hercules!) or all-text. You are then asked which game you want to play.
With SCUMMVM you must choose each game one at a time, those options never appear because the central "menu" file is not detected.
Now...I am using the Eclipse IDE with MinGW. Can someone post code for putting a window with text in it? The samples I find online never work, I get error messages. This is just to get started. Here is an example of code that did not work:
Code: Select all
#include <Windows.h>
#define ErrorMessageBox(a,b) MessageBox(a,b,"Error:",MB_ICONWARNING);
bool SetUpWindowClass (char*, int, int, int);
LRESULT CALLBACK WindowProcedure (HWND, unsigned int, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpsCmdLine, int iCmdShow) {
if (!SetUpWindowClass ("1", 255, 255, 255)) {
ErrorMessageBox (NULL, "Window class \"1\" failed");
return 0;
}
HWND hWnd = CreateWindow ("1", "Hello World - Win32 API", WS_OVERLAPPEDWINDOW, 315, 115, 700, 480, NULL, NULL, hInstance, NULL);
if (!hWnd) {
ErrorMessageBox (NULL, "Window handle = NULL");
return 0;
}
ShowWindow (hWnd, SW_SHOW);
MSG uMsg;
while (GetMessage (&uMsg, NULL, 0, 0) > 0) {
TranslateMessage (&uMsg);
DispatchMessage (&uMsg);
}
return 0;
}
bool SetUpWindowClass (char *cpTitle, int iR, int iG, int iB) {
WNDCLASSEX WindowClass;
WindowClass.cbClsExtra = 0;
WindowClass.cbWndExtra = 0;
WindowClass.cbSize = sizeof (WNDCLASSEX);
WindowClass.style = 0;
WindowClass.lpszClassName = cpTitle;
WindowClass.lpszMenuName = NULL;
WindowClass.lpfnWndProc = WindowProcedure;
WindowClass.hInstance = GetModuleHandle (NULL);
WindowClass.hCursor = LoadCursor (NULL, IDC_ARROW);
WindowClass.hbrBackground = CreateSolidBrush (RGB (iR, iG, iB));
WindowClass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
WindowClass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
if (RegisterClassEx (&WindowClass)) return true;
else return false;
}
LRESULT CALLBACK WindowProcedure (HWND hWnd, unsigned int uiMsg, WPARAM wParam, LPARAM lParam) {
switch (uiMsg) {
case WM_CLOSE:
DestroyWindow (hWnd);
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
case WM_PAINT: {
PAINTSTRUCT ps;
HDC hDC = BeginPaint (hWnd, &ps);
char *cpaText [] = {
"Hello World!",
"This is a hello world application made in the Win32 API",
"This example was made by some random dude, aka -LeetGamer-"
};
int iY = 5;
for (int iLoopCounter = 0; cpaText [iLoopCounter] != '\0'; iLoopCounter++, iY += 20) {
TextOut (hDC, 5, iY, cpaText [iLoopCounter], strlen (cpaText [iLoopCounter]));
}
EndPaint (hWnd, &ps);
}
break;
}
return DefWindowProc (hWnd, uiMsg, wParam, lParam);
}
I get error messages involving "deprecated."
Thanks.