VOGONS


First post, by JimLarimore

User metadata
Rank Newbie
Rank
Newbie

I have recently been working on getting the PCJr version of "Jumpman" to work in all its 16 color glory. The problem is that the game is checking for PCJr. bios, and if a positive is returned, the game will attempt to set video "Mode 8" which to my understanding is a 16 color 160x200 resolution mode that was unique to the PCJr. This mode was apparently not supported past the PCJr (who knows why).

I can modify the game's source code to always return a positive bios check, but that does not change the fact that current computers/video cards (or even a 386 as DosBox emulates) do not support this video mode. Is there any chance that DosBox could be modified to support this video mode?

Yes, I know you guys are trying to emulate a 386 not a PCJr, but I really do not see what harm would be in supporting a video mode that was fairly well used and then abandoned for no good reason. Fix the mistakes of yesteryear!

-Jim

Reply 1 of 20, by zorach

User metadata
Rank Newbie
Rank
Newbie

IIRC, this mode was fully supported by the 6845 CRTC used in the CGA; in fact I think you could even get it on a CGA, but you had to set up the mode yourself (as there was no BIOS support). I was always tempted to go digging through my Beeb's MOS to dig out the setup info and see if I could make it work on the PC, but didn't dare risk the damage to my card and monitor.

Confusing the issue: it appears the Herc's high-res mode was also mode 8. Shouldn't be a barrier to DOSBox given that there's already the "machine type" option.

Reply 3 of 20, by jal

User metadata
Rank Oldbie
Rank
Oldbie
zorach wrote:

IIRC, this mode was fully supported by the 6845 CRTC used in the CGA;

Sorry, you're wrong on that. You mean the 160x100 16 color textmode, not the PCjr 160x200 graphics mode.

JAL

Reply 5 of 20, by jal

User metadata
Rank Oldbie
Rank
Oldbie
JimLarimore wrote:

This mode was apparently not supported past the PCJr (who knows why).

Well, there is no "past PCJr", that's why. The PCJr is an evolutionary dead end, although the Tandy "clones" took of quite wel in the US.

JimLarimore wrote:

Is there any chance that DosBox could be modified to support this video mode?

No, since it's already supported 😀. DOSbox has PCJr support, but it's called "Tandy" support. I'm not sure what BIOS check your game uses, DOSbox might even run an unpatched version if it does a BIOS call.

JimLarimore wrote:

Yes, I know you guys are trying to emulate a 386 not a PCJr,

DOSbox tries to emulate a PC, in all its varieties, including PCJr/Tandy. I'm pretty sure that's also listed on the website.

JimLarimore wrote:

but I really do not see what harm would be in supporting a video mode that was fairly well used

Well, if it wasn't supported yet, lack of time would be a good "harm". Remember DOSbox is a volunteer project, and supporting a new type of videocard is not exactly easy!

JimLarimore wrote:

and then abandoned for no good reason. Fix the mistakes of yesteryear!

It was abandoned for a very good reason: EGA/VGA. A couple of years after the release of the Tandy 1000, EGA/VGA became mainstream and there was no point in continuing an "inferior" card (EGA already had more capabilities than PCJr/Tandy, VGA improved even further).

JAL

Reply 6 of 20, by JimLarimore

User metadata
Rank Newbie
Rank
Newbie

So even after setting the machine type to Tandy the game will not run in 16 colors at 160x200. The screen just turns black. Are you guys sure the S3 or whatever card you are emulating is capable of displaying this video mode?

Reply 7 of 20, by zorach

User metadata
Rank Newbie
Rank
Newbie
jal wrote:
zorach wrote:

IIRC, this mode was fully supported by the 6845 CRTC used in the CGA;

Sorry, you're wrong on that. You mean the 160x100 16 color textmode, not the PCjr 160x200 graphics mode.

No, I mean the 160x200 graphics mode. The 6845 *did* support it; the CGA BIOS did not.

Reply 8 of 20, by jal

User metadata
Rank Oldbie
Rank
Oldbie
zorach wrote:
jal wrote:
zorach wrote:

IIRC, this mode was fully supported by the 6845 CRTC used in the CGA;

Sorry, you're wrong on that. You mean the 160x100 16 color textmode, not the PCjr 160x200 graphics mode.

No, I mean the 160x200 graphics mode. The 6845 *did* support it; the CGA BIOS did not.

Well, the 6845 is rather versatile, as it was used for both the Hercules and CGA. However, it is mainly concerned with the control of the CRT, not with the memory layout (banking etc.) and the color producing, afaik. I'm not sure whether the 6845 potentially can do a 160x200 graphics mode - I wouldn't be surprised if it could - but CGA cannot. This has little to do with BIOS: even when directly programming the hardware registers, it cannot be done.

JAL

Reply 9 of 20, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The CGA 160x200 graphics mode was only through enabling the color burst bit and using the composite ouput, on the regular screen you just saw 640x200

Reply 10 of 20, by jal

User metadata
Rank Oldbie
Rank
Oldbie
Harekiet wrote:

The CGA 160x200 graphics mode was only through enabling the color burst bit and using the composite ouput, on the regular screen you just saw 640x200

True, I forgot about the infamous composite mode 😀.

JAL

Reply 11 of 20, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

Unfortunately there is no way to do a RGB 160x200 mode on a standard CGA card, despite the fact that the CRT controller had no problem with it and the 16KB of memory on the card could contain it. Otherwise someone would have found it by now.

Reply 12 of 20, by jal

User metadata
Rank Oldbie
Rank
Oldbie
Great Hierophant wrote:

Unfortunately there is no way to do a RGB 160x200 mode on a standard CGA card, despite the fact that the CRT controller had no problem with it and the 16KB of memory on the card could contain it. Otherwise someone would have found it by now.

Yeah, well, that's what I said already 😉. It is unfortunate though, but understandable from IBM's point of view: they were making a business machine, not a games computer. Their version of the home computer, the PCjr, corrected this (but introduced many stupidities making it fail hopelessly).

JAL

Reply 13 of 20, by taiken7

User metadata
Rank Member
Rank
Member

If you can provide a 'working' executable, I can add support for the videomode.
I'm also interested in the PcJr bios test -- I should probably
address that as well, since other programs may make use of it.

Reply 14 of 20, by JimLarimore

User metadata
Rank Newbie
Rank
Newbie

Here you go. Attached is "Jumpman" for the PCJr. in all its glory. Within the attached zip is the executable and the source code if you want to take a look.

-Jim

Attachments

  • Filename
    Jumpman.zip
    File size
    151.99 KiB
    Downloads
    180 downloads
    File comment
    Includes working executable and the source code.
    File license
    Fair use/fair dealing exception

Reply 15 of 20, by JimLarimore

User metadata
Rank Newbie
Rank
Newbie

BTW this is completely legal as the guy who wrote this game worked for a company called Epyx who at the time had a clause in its contracts that seven years after the game was marketted, ownership of the rights would be transferred to the author. So, the original coder owns the rights to the game and has given his blessing to get this thing working on modern systems.

-Jim

Reply 16 of 20, by robertmo

User metadata
Rank l33t++
Rank
l33t++

when i set machine=cga and choose composite monitor in game i have at least 9 colours: white, yellow,orange,red, gray(robot's hands), light green, dark green, dark blue, violet and (black)

Attachments

  • jumpman_000.png
    Filename
    jumpman_000.png
    File size
    2.02 KiB
    Views
    1917 views
    File license
    Fair use/fair dealing exception

Reply 17 of 20, by taiken7

User metadata
Rank Member
Rank
Member

Thats almost exactly what PcJr setup does.. good work there Rob 😎
(it tweaks CGA registers / selecting composite-tv output)

Ok, so now the other easter egg is the groovy tunes -- still not sure
how to get these going, it seems if you hard code a few things others break; dosbox freezes at 'Query_Joystick' following --

search replace "26803EFEFFFD 74 1D" with "26803EFEFFFD EB 1D"
ie 0:3E0d5 = was "74" now "EB" (mnemonic "JE" becomes "JMP")