• Please review our updated Terms and Rules here

Opinion needed... Building MDA game.

deathshadow

Veteran Member
Joined
Jan 4, 2011
Messages
1,378
I'm working on a project where I'm making the graphics compatible back to MDA. (yes, that's a thing)... but I'm just not getting enough horsepower for the non-video aspect of it. (Audio, level sizes)

Is it a waste of time to make an MDA game that's 286+ only? It feels wrong.
 
There were 386/486 servers that shipped with MDA* so its not completely unknown.

Is the game playable on a 8088 with MDA if the sound is off? Not much point in having a game that can't be played.

* Well, Hercules clone cards since actual MDA cards were always a bit expensive.
 
Well, how do you plan to handle CGA?

Hercules (HGC) is a decent option if your game works in graphics mode on CGA and higher. I wouldn't bother with MDA in that case. On the other hand, if you are already using the 80x25 text mode, adding MDA support may be easy enough.

I don't think pure MDA was common on 286+ machines, most clones support HGC.
 
I'm working on a project where I'm making the graphics compatible back to MDA. (yes, that's a thing)... but I'm just not getting enough horsepower for the non-video aspect of it. (Audio, level sizes)

Is it a waste of time to make an MDA game that's 286+ only? It feels wrong.
Isn't the MDA a text only display adapter? No graphics at all will display, unless you found a way to hack the CRT to being able to display individual pixels, and anyway, the RAM of the MDA is too scarce to do anything. If doing a text only game, I think there would not be much problem even on the slowest 8088. Maybe you are thinking on Hercules graphics?

Regarding performance, I personally try to optimize code the maximum I'm able to (that's the main reason why my game is taking forever to be finished...) so it can be obtained results that may look like done for a far more powerful computer. Anyway, I think it's totally legitimate to make a game for 286+, but I prefer to expand it to being able to run even on 8088, even if that has a tremendous cost in time an effort needed. If I'd had deadline, I'd probably had designed my game to run on 286 or 386 machines.

Regarding audio, it's possible to make an OPL background player that takes both very few bytes of code and runs affecting negligibly the performance of the game. Also you can use the Sound Blaster's single cycle DMA to fire and forget audio effects, without affecting at all the general performance. Regarding levels, you can optimize it several ways. For instance, if you place the tile maps on the Data segment, you save far calls. If you also place a pointer to each row, you can save several MULs when accessing the desired tiles. As I'm sure you already know, there are many possible optimizations.
 
I don't think pure MDA was common on 286+ machines, most clones support HGC.

I remember having issues trying to get an original MDA card to behave itself in anything faster than a 6mhz ISA slot so, yeah, I can't imagine "pure" MDA cards are very common in machines much newer than the 5170.
 
MDA and even MGA/Herc was pretty much a 5160-ish thing. I have the Herc Graphics Plus card somewhere with downloadable fonts, but even that's an 8-bit card. When EGA clones came out, that was pretty much it, even for the Herc InColor card.
 
MDA/Hercules cards were still very common on 286 systems for business use. You didn't need color or graphics for WordPerfect 5.1. And on 386 systems running AutoCAD, power users would have an EGA or VGA display for the graphics, alongside an MDA display for typing in commands.
 
Yes, there's that rare situation of needing two cards for dual monitors. I can only speak to what I saw. Even when VGA clones came out, inexpensive VGA monochrome displays were available. Herc-capable applications were declining by then.
 
I'm working on a project where I'm making the graphics compatible back to MDA. (yes, that's a thing)... but I'm just not getting enough horsepower for the non-video aspect of it. (Audio, level sizes)

Is it a waste of time to make an MDA game that's 286+ only? It feels wrong.
Im restoring an IBM 5170 with an mda card and an amber screen. This would be great for it! Yeah keep it up.
 
I admit that I thought the OP had managed to figure out a technique to replace the IBM font with a different font and get those blocky character mode bitmaps like other computers had. If the game is fun, I don't care how it was done.
 
You can, of course, use the upper ASCII characters to create a crude form of graphics:
It would be neat if someone did something like this:
But on the MDA card. I think I asked Trixter about it and I think he said that it would be possible, but wouldn't look nearly as nice because the graphics characters in ASCII aren't as good as the ones in PETSCI.
 
To clarify, I should have said semigraphics. 3 tone 80x50. (wish you could use the 4th reliably) Though I may also mix in some 160x25.

Better than the ZX-81's 64x48. I'm actually surprised at the lack of games of the ZX-81 "style" for text mode. I mean it's even spitting distance from TRS-80 128x48, just with more than one intensity.

Honestly the 80x50 of MagicDuck put me on this path. Magis was my muse.

I think what I'm going to do is have the fancy sound option be AT only. It might even be two separate builds of the same codebase.
 
It would be neat if someone did something like this:
Or more like PETSCII robots. But then working games and actual applications always impress me more than demos. Part of why I get along with Commodore fans like sodium and water. Generally speaking I never understood much less was impressed by the "demoscene".

The moment you put user interaction and object movement that's not hardcoded / preplanned, it's a whole different ball of wax.
 
I think it would be a great idea. Although I believe it would involve more than just changing the segment from B000 to B800 to be compatible with the CGA. I’m pretty sure Magic Duck uses a 40X50 text mode to avoid video snow so the pixel layout would be different between MDA and CGA. Still minor enough problem to solve and support both adapters
 
I think it would be a great idea. Although I believe it would involve more than just changing the segment from B000 to B800 to be compatible with the CGA. I’m pretty sure Magic Duck uses a 40X50 text mode to avoid video snow so the pixel layout would be different between MDA and CGA. Still minor enough problem to solve and support both adapters
I really don't care about snow removal, and specifically am going 80x25 and using top/bottom halves so I can have regular text on the screen too. When you can get 80x50 out of the 80x25 mode (and 160x25 at the same time just not in the same character) the 40x25 is far less useful, snow be damned.

Besides if the gameplay area is limited to 50x50, you only need to blit 1250 bytes (50x24) from the backbuffer, a much more manageable amount. More so if you only change what actually needs to change, (buffer to buffer compare and enque?) when anything over 15fps is a waste of processing time at such a low resolution. Might even be able to get away with 10fps. Which would be convenient as it divides evenly into both CGA 60hz and MDA 50hz.

Could even update scores/stats/text outside the playfield and the playfield itself on separate refreshes. This is where running your own co-op time slicing pays off.

Was thinking if this flies I might port several different ZX-81 games over in addition to what I'm currently doing.

I'm also surprised none of the Apple ][ "lores" games (admittedly there are few) have PC/CGA ports. 80x50 16 colour as the tweaked 40 column mode, or with text (and snow) as 80 column mode is entirely possible. Sure the palette doesn't match, but still...

Wasn't there at one point a lib of assembly routines to mimic Apple ][ lores in GW-BASIC / BASICA? I think I remember that back in the BBS days, but my Google-Fu is failing me.
 
Back
Top