The new dynamic recompiler appears to be much more faster, although if you want maximum performance, make sure to set your video card to the fastest possible performance.
I was doing my typical DooM thing, and the performance was abysmal. But I did have an 8bit VGA card selected, so what would I really expect? Interestingly enough in ‘low resolution’ mode it performed quite well, but setting it to the artificial ‘fastest PCI/VLB’ speed it was performing just great.
So this is great for machines that included the seemingly useless ‘casette basic’ as you could maybe shove over something to config the machine, maybe ‘rom dos’ directly into ram to fdisk/format without using disks… Interesting stuff to say the least!
Since the last update we got some help in a few fields that have really fleshed out this ‘experimental’ port into a full fledged port. First RayerR helped us with the fun of getting us onto the latest deployment of DJGPP, 2.05 (rc1). It’s always nice to be in the latest available release. Next in a passing comment, Ruslan Starodubov had mentioned that he had gotten a much older build of our QDOS to support the Intel HDA sound chipset via the MPXPlay sound library. I wrote to the author of MPXPlay, Pádár Attila asking for us to distribute his source in our project, and he granted permission.
So at this point things were looking good. The only ‘feature’ that modern OS’s really held over us was the ability to dynamically load and unload game modules on the fly. I had tried to use DLM, but it stripped the DPMI functionality out of the MS-DOS Extender making the port really useless. I tried to build the newer DXE3 support but had no luck. I suspect now my native tool chain was interfering with the build process. But Maraakate managed to get it to not only build, but to run!
Adding in DX3 support was relatively painless. I first looked at DJGPP’s FAQ and downloaded the example code. In the example code there was small helper functions to make unions and check the symbols. If they didn’t exist a printf was spit out to alert you about it. To resolve the issue you simply just add DXE_EXPORT to the other list of missing exports.
Compiling the game code was easy, again referring to the example I saw that basically they compiled it the same, but at link time you use DX3GEN and -U flag to ignore unresolved symbols.
The biggest head scratcher was the Sys_GetGameAPI failing to find GetGameAPI from the DX3. After some piddling around I noticed that it listed GetGameAPI as _GetGameAPI inside the DX3 itself. I added the underscore and it worked!
Other things that were relatively to easy to import was R1Q2’s HTTP downloading code. Compiling CURL was kind of tricky because of the linking order, but thankfully neozeed figured it out quickly.
All of Yamagi’s Quake 2 updated game DLLs were all diff’d by hand using BeyondCompare to make sure I didn’t clash using some newer functions that weren’t available in DJGPP. I also merged their Zaero code with their baseq2 code by comparing Zaeros code to the Quake 2 SDK, marking every thing that was changed. The result is a really stable Zaero game code. If you haven’t played Zaero check it out. I think it’s a lot better than Rogue, but Xatrix is probably my favourite (even over stock Q2).
Other cool things I’m glad to get into the code was the GameSpy Browser. It took me quite a bit of work to get it where it is, but it’s really nice to just be able to ping to a master server (a custom GameSpy emulator I wrote specifically for Q2DOS. Source is not finalized yet, but will be available soon for those curious), pick a server and go! All in DOS!
So here we are at the end of the journey. Or at least safe enough for a 1.0 release.
To recap, we have:
* SVGA (LFB modes only)
* SoundBlaster and Gravis UltraSound Family
* CD-ROM music
* OGG music
* Networking (You need a packet driver)
* Loading/unloading game DLLs in DX3 format.
* Intel HDA support -hda
* Mouse wheel support with -mwheel
As always testing is very minimal, all I’ve done is installed MS-DOS 6.22 & Doom 1.1, and tested the SoundBlaster 16 emulation. And as with the pre-release versions, the adlib code is still broken. And Ive done the ‘better’ fix in this code regarding that.
I haven’t run anything else, including fun things like the PowerPC & OS X emulation, MIPS with Windows NT, or even trying anything x64 based as I’m sure it is still broken from back in the Qemu 0.90 days.
GO 16-BIT NOW – WE HAVE MADE IT EASY
8 Mhz. 2-card CPU Set
With our 2-card 8086 CPU set you can upgrade your Z80 8-
bit S-100 system to run three times as fast by swapping the
CPUs. lf you use our 16-bit memory, it will run five times as
fast. Up to 64K of your static 8-bit memory may be used in the
8086’s 1-megabyte addressing range. A switch allows either 4
or 8 Mhz. operation. Memory access requirements at 4 Mhz.
exceed 500 nsec.
The EPROM monitor allows you to display, alter, and
search memory, do inputs and outputs, and boot your disk.
Debugging aids include register display and change, single
stepping, and execute with breakpoints.
The set includes a serial port with programmable baud rate,
four independent programmable 16-bit timers (two may be
combined for a time-of-day clock), a parallel in and parallel out
port, and an interrupt controller with 15 inputs. External power
may be applied to the timers to maintain the clock during
system power-off time. Total power: 2 amps at + 8V, less than
100 mao at + 16V and at -16V. [email protected]>, our $195 8086 single user disk operating
system, is provided without additional charge. It allows
functions such as console 1/0 of characters and strings, and
random or sequencial reading and writing to named disk files .
While it has a different format from CPIM, it performs similar
calls plus some extensions (CP/M is a registered trademark of
Digital Research Corporation). Its construction allows relatively
easy configuration of 1/0 to different hardware. Directly
supported are the Tarbell and Cromemco disk controllers.
The [email protected]> package includes an 8086 resident assembler,
a Z80 to 8086 source code translator, a utility to read
files written in CPIM and convert them to the 86-DOS format, a
line editor, and disk maintenance utilities. Of significance to
Z80 users is the ability of the translator to accept Z80 source
code written for CPIM, translate this to 8086 source code,
assemble the source code, and then run the program on the
8086 processor under 86-D08. This allows the conversion of
any Z80 program, for which source code is available, to run on
the much higher performance 8086.
BASIC-86 by Microsoft is available for the 8086 at $350.
Several firms are working on application programs. Call for
current software status.
All software licensed for use on a single computer only.
Non-disclosure agreements required. Shipping from stock to
one week. Bank cards, personal checks, CODs okay. There is
a 10-day return privilege. All boards are guaranteed one year
– both parts and labor. Shipped prepaid by air in US and
Canada. Foreign purchases must be prepaid in US funds.
Also add $10 per board for overseas air shipment.
8/16 16-BIT MEMORY
This board was designed for the 1980s. It is configured as
16K by 8 bits when accessed by an 8-bit processor and
configured 8K by 16 bits when used with a 16-bit processor.
The configuration switching is automatic and is done by the
card sampling the “sixteen request” signal sent out by all S-
100 IEEE 16-bit CPU boards. The card has all the high noise
immunity features of our well known PLUS RAM cards as well
as “extended addressing”. Extended addressing is a replacement
for bank select. It makes use of a total of 24 address lines
to give a directly addressable range of over 16 megabytes.
(For older systems, a switch will cause the card to ignore the
top 8 address lines.) This card ensures that your memory
board purchase will not soon be obsolete. It is guaranteed to
run without wait states with our 8086 CPU set using an 8 Mhz.
clock. Shipped from stock. Prices: 1-4, $280; 5-9, $260; 10-up,
~Seattle (amputer Products, Inc. ~ 1114 Industry Drive, Seattle, WA. 98188
The ad is from December of 1980, and of course the PC was released in August of 1981… Its interesting to see even back then there was some clear partnering with Microsoft!
Not to shill too hard for it, but it is for sale for 10 euros, or 8 pounds sterling.. I should hope that this 1997 classic should work on modern PCs.. Which has been a pain for anyone whos owned this when it originally came out for the PC. Although as far as I can tell this doesn’t add anything from the original version … Other than some click to cheat thing but.. There you go.