VOGONS


Reply 20 of 41, by DOSGuy

User metadata
Rank Newbie
Rank
Newbie

When you click a legal piece, there's a high pitched sound. When you select an illegal piece, or try to match a legal piece with a piece that doesn't match, there's a low pitched sound. If you can hear but not see, the first things that come to mind are that your monitor isn't capable of running 1024x768 in interlaced mode, or your graphics card doesn't have enough video RAM. Those are the only things that would seem to explain why the game would play but not display video.

Have you tried using RIXAI just to see what happens?

Incidentally, DOSBox didn't crash when I left the game this time for some reason. The exit screen says "Mah Jongg -8514- v0.6 / Copyright 1989-1991 Ron Balewski / Serial No. 0000". Then it says "Thank you for playing Mah Jongg -V-G-A-!". D'oh!

"Today entirely the maniac there is no excuse with the article." Get free BeOS, DOS, OS/2, and Windows games at RGB Classic Games

Reply 21 of 41, by DOSGuy

User metadata
Rank Newbie
Rank
Newbie

Woah! I just figured out why the game was so jerky. I've been getting errors out the wazoo. I have about a zillion of these, with different memory addresses, in the status window:

Illegal write to c0033650, CS:IP    c7ff:      1d,phys c0033650

"Today entirely the maniac there is no excuse with the article." Get free BeOS, DOS, OS/2, and Windows games at RGB Classic Games

Reply 22 of 41, by elianda

User metadata
Rank l33t
Rank
l33t

Ok I got it, there is a Adapter Interface Code Disk with a demo program and some example code for some functions. The code is put as some kind of subroutines in a TSR. I didn't needed that TSR yet and thought it is just for the Demo. Everything supporting a 8514A worked without it so far.
But mj8514A apparently needs hdiload.exe to be installed. (though the readme doesn't mention this).

So I got graphic now, although it is quite slow on the 386DX-16. Everytime I remove a pair it takes about 5 seconds, I guess because the whole screen is redrawn.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 23 of 41, by DOSGuy

User metadata
Rank Newbie
Rank
Newbie

Yes, I suspect that Ron wanted people to be using a fast 486 for this game. Glad you got it to work. Any bugs or issues?

hdiload.exe you say? I had never heard of that. Apparently there's a TSR to get the card into 8514/a mode. Downloading, and I'm going to try that Mach 32 again! Thanks elianda!

"Any application that needs the Adapter Interface will ask for a TSR program called hdiload.exe. The hdiload.exe is a TSR program that loads itself into memory and stays there until the computer is rebooted or powered off. Although the hdiload.exe program only needs 18 KB of memory, it may be unloaded from memory, allowing applications which do not require AI support to use this additional memory."

"Today entirely the maniac there is no excuse with the article." Get free BeOS, DOS, OS/2, and Windows games at RGB Classic Games

Reply 24 of 41, by elianda

User metadata
Rank l33t
Rank
l33t

"Any application that needs the Adapter Interface will ask for a TSR program called hdiload.exe. The hdiload.exe is a TSR program that loads itself into memory and stays there until the computer is rebooted or powered off. Although the hdiload.exe program only needs 18 KB of memory, it may be unloaded from memory, allowing applications which do not require AI support to use this additional memory."

This just is applicable for programs that are programmed on top of the routines given by the TSR. As I said mj8514 is the first program (except the IBM 8514 Demo itself) I know that uses the hdiload routines.
For Win 3.x or the Dosshell driver it is not required...

The game itself ran and I couldn't see any graphical flaws.
I don't know if all accelerated functions of the 8514A have implementation in hdiload but for me it seems that mj8514 uses the line or polyline acceleration but not Bitmap Transfers. As the most pixels of the tiles are bitmaps they are transfered 'classical'.
In comparison the Win 3.x driver implements alot of the acceleration functions and on the 386DX-16 this really shows at 1024x768x256.
Quarterdeck Manifest gives a list of them (someone interested?).

Call it a 2D GDI acceleration with hardware of 1987 (still some years to go until Win 3.x reaches release).

Reply 26 of 41, by DOSGuy

User metadata
Rank Newbie
Rank
Newbie

I just found this writeup that apparently came with a program called QuikMenu.

The 8514/A card simply provides a high resolution of 1024×768 with 16 or 256 colors in this mode, depending on the amount of memory installed on the card. This card works on any Micro Channel system unit that has an adapter slot with the video extension connector. The 8514/A card only functions in that slot because it only has a high resolution processor and not a VGA compatible processor. When the system is running applications in VGA mode (or lesser resolutions) the 8514/A card simply passes the VGA information from the motherboard VGA controller through the Auxilliary Video Extension (AVE). When applications require high resolution, a TSR program called HDILOAD (provided with the adapter) installs the 8514/A Adapter Interface (AI) code. The 8514/A AI is basically a gateway to the 8514/A adapter. Since IBM never published the hardware register information for the 8514/A, all applications had to write to the AI, which in turn writes directly to the hardware on the card. The 8514/A can not function unless it has a video system to supply VGA mode (and lower) video signals.

It seems to be saying that IBM's 8514/a card was an MCA card that relied on the onboard VGA for all other resolutions. HDILOAD loads the AI so that it can be called by programs that use it. Competitors like ATI sold standalone VGA cards that also supported 8514, but wouldn't by default because HDILOAD uses up 28k of memory.

Anyway, I'm not aware of any other 8514 games. Ron Balewski told me that he had made a big bet on VGA before it was a broadly adopted standard and the bet paid off. He made the same bet on 8514 and lost. It seems that he was unaware of any other 8514 games. In January 1991 he wrote, "I'd like to have one of the first (if not THE first) games on the market that uses the 8514/A standard."

Games may have been in development, but it's likely that most game programmers would have waited for a reasonable installed user base before making games that would require an 8514/a. It makes sense for CAD software to quickly adopt since businesses could easily afford 8514 hardware and would pay big bucks for the higher resolution. Ron was just writing a shareware program that he hoped a small percentage of users would send him $25 for. If the standard had replaced VGA, it would have been worth his effort and he would have had a lead on everyone else. There may have been other shareware or independent authors who got all the way to actually releasing a game, or Ron might have been the only one.

MoraffWare was always at the leading edge for graphics and claimed to be the first to feature SVGA resolutions in their games. They skipped 8514 and went directly to the various SVGA chipsets. If they didn't use it, it's quite possible that no one else did.

Version 0.6 of MJ8514 was released on April 19, 1991, and I've just found a newsletter from September stating that IBM would discontinue the 8514/a on October 2.

"Today entirely the maniac there is no excuse with the article." Get free BeOS, DOS, OS/2, and Windows games at RGB Classic Games

Reply 27 of 41, by elianda

User metadata
Rank l33t
Rank
l33t

Hmm IBM probably kept their direct hardware access to the 8514A secret for quite awhile, so the programmer had to use the hdiload interface which comes on one of the 8514As Disks. (documented)

In the vgadoc version 4 is a textfile included with the 8514As direct hardware register description. I don't know at what time this information got public in the first place. (but my guess is, that it was already in SVGA time)
Especially interesting is register 0x9AE8 that takes the draw_commands:

9AE8h W(W):  Command Register (CMD)
bit 0 WRTDATA. If set VRAM write operations are enabled. If clear
operations execute normally but no writes to memory is performed.
1 PLANAR defines the orientation of the display bitmap.
0=Through plane mode, 1=Across plane mode.
2 If set the last pixel of a line command (CMD_LINE, SSV or LINEAF)
is not drawn. This is used for mixes such as XOR where drawing the
same pixel twice would give the wrong color.
For rectangle commands the effect is different depending on the
INC_X and INC_Y fields:
CMD_RECT
If INC_X is set then the rightmost column is not drawn,
if clear the leftmost column is not drawn.
CMD_RECTV1
If INC_Y is set the bottom row is not drawn,
if clear the top row is not drawn.
CMD_RECTV2
No effect
CMD_BITBLT
If INC_X set the rightmost column is not drawn,
if clear the leftmost column is not drawn.
3 LINETYPE.
0: Bresenham line drawing
CMD_LINE draws a line using the Bresenham algorithm as
specified in the DESTY_AXSTP (8AE8h), DESTX_DIASTP (8EE8h),
ERR_TERM (92E8h) and MAJ_AXIS_PCNT (96E8h) registers
1: Vector line draws.
CMD_NOP allows drawing of Short Stroke Vectors (SSVs) by
writing to the Short Stroke register (9EE8h).
CMD_LINE draws a vector of length MAJ_AXIS_PCNT (96E8h)
in the direction specified by LINEDIR (bits 5-7).
4 DRAW. If clear the current position is moved, but no pixels
are modified. This bit should be set when attempting read or
write of bitmap data.
5-7 LINEDIR. When a line draw command (CMD_LINE) with LINETYPE=1
is issued, these bits define the direction of the line
counter clockwise relative to the positive X-axis.
0 = 000 degrees
1 = 045 degrees
2 = 090 degrees
3 = 135 degrees
4 = 180 degrees
5 = 225 degrees
6 = 270 degrees
7 = 315 degrees
5 INC_X. This bit together with INC_Y determines which quadrant
the slope of a line lies within. They also determine the
orientation of rectangle draw commands.
If set lines are drawn in the positive X direction (left to right).
6 YMAJAXIS. For Bresenham line drawing commands this bit determines
which axis is the independent or major axis. INC_X and INC_Y
determines which quadrant the slope falls within. This bit further
defines the slope to within an octant.
If set Y is the major (independent) axis.
7 INC_Y. This bit together with INC_X determines which quadrant
the slope of a line lies within. They also determine the
orientation of rectangle draw commands.
If set lines are drawn in the positive Y direction (down).
8 (Pixel Data Enable) PCDATA.
If set the drawing engine waits for read/write of the PIX_TRANS
Show last 18 lines
           register (E2E8h) for each pixel during a draw operation.
9 16BIT. If set the PIX_TRANS register (E2E8h) is processed
internally as two bytes in the order specified by BYTSEQ.
If clear all accesses are 8bit.
10-11 Reserved(0)
12 Byte Sequence (BYTSEQ). Affects both reads and writes of
SHORT_STROKE (9EE8h) and PIX_TRANS (E2E8h) when 16bit=1.
If set take low byte first, if clear take high byte first.
13-15 Draw Command:
0 = CMD_NOP. (Should be used for Short Stroke Vectors).
1 = CMD_LINE
2 = CMD_RECT (Fill rectangle in X direction)
3 = CMD_RECTV1 (Fill rectangle in Y direction)
4 = CMD_RECTV2 (Fast filled Y direction rectangle)
5 = CMD_LINEAF (Outline)
6 = CMD_BITBLT (Copy rectangle)
7 = illegal

Reply 28 of 41, by DOSGuy

User metadata
Rank Newbie
Rank
Newbie

Awesome find! It would great to have real 8514 emulation in DOSBox so that users don't have to run an emulator within an emulator.

"Today entirely the maniac there is no excuse with the article." Get free BeOS, DOS, OS/2, and Windows games at RGB Classic Games

Reply 30 of 41, by DosFreak

User metadata
Rank l33t++
Rank
l33t++
DOSGuy wrote:

Awesome find! It would great to have real 8514 emulation in DOSBox so that users don't have to run an emulator within an emulator.

What users? 😉

How To Ask Questions The Smart Way
Make your games work offline

Reply 31 of 41, by Kreshna Aryaguna Nurzaman

User metadata
Rank l33t
Rank
l33t
DosFreak wrote:
DOSGuy wrote:

Awesome find! It would great to have real 8514 emulation in DOSBox so that users don't have to run an emulator within an emulator.

What users? 😉

If he used the word "clients", then we would start sounding like consultants working on Vogons Consulting; that is, the IT consulting firm that helps the client to run very old applications on new systems! 😁

Never thought this thread would be that long, but now, for something different.....
Kreshna Aryaguna Nurzaman.

Reply 32 of 41, by elianda

User metadata
Rank l33t
Rank
l33t

I don't think thats a rare find, according to the changelog of the vgadocs it was already in the initial release in Dec. 1991. So IBM probably unlocked their information after 2. Oct. 1991.
As for a 8514A emulation in DosBox, I think DosFreak is right - who should use this?

For myself I use the 8514A driver in WfW 3.11 but thats because the machine has no SVGA card.
If you got a SVGA Emulation (with 1024x768x256), you don't need 8514 Emulation anymore.

Is there any software that runs on 8514 only?

Afterall I guess, I put some of the information I gathered in the last year on my homepage. It seems some is hard to find.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 33 of 41, by elianda

User metadata
Rank l33t
Rank
l33t

updated http://mail.lipsia.de/~enigma/neu/ibmpc.html

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 34 of 41, by WolverineDK

User metadata
Rank Oldbie
Rank
Oldbie

DOSGuy: you aren´t talking about the DOSBox frontend called DOSShell ? since that gave me some error to some games in DOSBox, or are we talking about the real DOS Shell

http://en.wikipedia.org/wiki/DOS_Shell ?

Reply 35 of 41, by DOSGuy

User metadata
Rank Newbie
Rank
Newbie

WolverineDK: I'm not sure what you're talking about. Did I mention DOSShell?

elianda: There is at least one piece of software that runs on 8514 only. I'm not, by any means, suggesting that a lot of effort should be put into playing just Mah Jongg -8514-, but if someone has the knowledge and inclination, I would at least make the request. I am very grateful, and have already expressed my gratitude to the DOSBox crew, and to vasyl for the Multiple SVGA Chipset patch, for allowing me to finally play the game in DOSBox using RIXAI. It's been on my hard drive for a couple of years and it was fun to finally play it.

Edit: Oh, it was elianda who mentioned DOSShell. I'll let him answer that one.

"Today entirely the maniac there is no excuse with the article." Get free BeOS, DOS, OS/2, and Windows games at RGB Classic Games

Reply 36 of 41, by elianda

User metadata
Rank l33t
Rank
l33t

I just said that there is a 8514A *.vid driver for Dosshell that comes with MS-DOS 5 (but I guess it works on other versions too).
The real Dosshell. Anyone used this really? ok looks it is from the style a predecessor of the win95 explorer app.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 38 of 41, by elianda

User metadata
Rank l33t
Rank
l33t

there is no norton commander 7

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool