QuarkTex NG 1.0 beta 3
======================
QuarkTex NG gives AmigaOS in WinUAE hardware accelerated 3D: Warp3D,
StormMESA (agl.library), MiniGL and OpenGL ES 2.0 (ogles2.library) programs
draw with the PC's graphics card through OpenGL, instead of the emulated CPU
drawing every pixel.
It is an independent continuation of QuarkTex, the 3D virtualization
solution Robert Konrad released in 2003 (driver/video/QuarkTex, last
version 0.53), under the same license, the GNU LGPL v3.
What is new in 1.0 beta 3
------------------------
- New ogles2.library: the OpenGL ES 2.0 API of the PiStorm ogles2 SDK
(1.3), GLSL ES shaders included, on the PC's OpenGL 3.3. Programs built
against that SDK run unchanged, among them the PiStorm port of Quake III
Arena with ioquake3's shader renderer: 79 fps in a window and 84 fps
fullscreen in "timedemo four" at 640x480.
- Several 3D programs can draw at the same time, each in its own window.
- Fullscreen screens get the screen mode of their size. minigl.library and
W3D_BestModeID asked Picasso96 for 24-bit modes, which uaegfx does not
have; an 800x600 screen then got a 640x480 mode and WinUAE showed only
its top left (Open Golf, RTCW).
- Warp3D: W3D_GetScreenmodeList ends its list properly, W3D_BestModeID
leaves the caller's tags alone, W3D_RequestMode offers 32-bit modes for
24-bit formats.
- No more requester about the FPU's precision at every MiniGL game start;
the warning stays in QuarkTexNGLog.txt.
- Libraries and DLLs of this release only work with each other: install
all of them.
What is new since QuarkTex 0.53
-------------------------------
- Runs in 64-bit WinUAE as well (0.53 needed the 32-bit one).
- Commands go to the host in batches instead of one emulator call per
OpenGL function; Warp3D is drawn on the host with OpenGL 3.3.
- New minigl.library: MiniGL games such as Return to Castle Wolfenstein,
Jedi Knight II, OpenLara and Hurrican run on the host's OpenGL, with
multitexture, paletted textures and vertex arrays drawn by the host.
Moved to MiniGL's 29 SDK (PiStorm3D 29.1) in 1.0 beta 2: lighting, normal
arrays, a GLU and GLUT subset. Programs built on an older MiniGL SDK need
recompiling against the 29 SDK, same as on PiStorm3D itself.
- Frames are written into the Amiga's RTG display memory, so the 3D picture
shows in a window, a full window and fullscreen, scaled and filtered by
WinUAE like any other Amiga graphics (0.53: windowed mode only).
- Stencil buffer, chroma keying, mipmaps and several 3D contexts at once.
- Fixed: black fog, wrong texture colours, ignored palettes and texture
updates, broken Z-buffer reads and writes, depth writes that could not be
turned off, leaked textures, W3D_Query answers.
Performance (Intel Iris Xe, 68040/68060 with JIT)
-------------------------------------------------
Warp3D, 1.2 million triangles QuarkTex 0.53 1.34 s, QuarkTex NG 0.39 s
RTCW at 640x480, no frame cap MiniGL Classic on Warp3D 157 fps,
QuarkTex NG minigl.library about 170 fps
RTCW, data per frame to host 1.37 MB before, 22 KB now
Quake III GLES2, timedemo four PiStorm with Raspberry Pi 4 80.4 fps,
at 640x480 QuarkTex NG 79.0 (window), 83.6 (full)
Requirements
------------
- Windows with a graphics card and driver for OpenGL 3.3.
- WinUAE (tested with 6.0.3 and the 6.x betas), 32-bit or 64-bit.
- AmigaOS 3.x, a 68020 or better with FPU (68040/68060 recommended),
Picasso96 with an RTG board (uaegfx).
Installation
------------
1. Copy the two files in WinUAE/ (quarktexng-windows-x86.dll and
quarktexng-windows-x86-64.dll) into your WinUAE directory, next to
winuae.exe and winuae64.exe.
2. Copy the four files in Libs/ (Warp3D.library, agl.library,
minigl.library, ogles2.library) to LIBS: on your Amiga. Keep copies of the libraries you
replace. The libraries and the DLLs belong together.
3. Set up WinUAE as below.
WinUAE settings
---------------
Required:
- Settings, Host, Miscellaneous: "Allow native code" (native_code=true).
- Settings, Hardware, CPU and FPU: FPU "CPU internal" with the precision
"Host (80-bit)" (fpu_msvc_long_double=true). With the default 64-bit
emulation games compute values a real 68k FPU does not: in Jedi Knight II
the first person weapon never shows, in RTCW it disappears. The libraries
check this and write a warning into QuarkTexNGLog.txt.
Recommended:
- CPU 68040 or 68060 at "Fastest possible".
- JIT on, cache size 16 MB (cachesize=16384), JIT "FPU support" on
(compfpu=true). The games themselves run on the emulated 68k: with the
JIT FPU off, Jedi Knight II fell from 90 to about 15 fps.
- RTG board UAE Zorro III, 64 MB or more (needed for fullscreen).
- Z3 Fast RAM, 256 MB or more for large games.
README.md in the archive explains every setting and has the full
performance tables.
Known issues
------------
- MiniGL Classic (the Warp3D based minigl.library) crashes in fullscreen on
QuarkTex NG's Warp3D.library. Use the minigl.library of this archive.
- On planar or 8-bit screens the 3D picture is drawn in a window of its own
over WinUAE, which shows only while WinUAE runs in a window.
- The rotating passport in OpenLara's menu draws dark.
- Overlapping windows: each program writes its frame over its whole
window, also over windows in front of it.
- ogles2.library: no object sharing between contexts, no compressed
textures, no shader or program binaries; VSYNC and multisampling of the
default framebuffer are ignored.
License and source
------------------
QuarkTex (C) 2003-2012 Robert Konrad.
QuarkTex NG, changes and additions since 2026 (C) Serkan DURSUN.
Both are released under the GNU Lesser General Public License version 3
(License.txt), which builds on the GNU General Public License version 3
(COPYING). QuarkTex NG is a modified version of QuarkTex and is not made or
endorsed by its original author.
The notices of the parts made by others, among them the mingw-w64 runtime
in the host DLLs, are in ThirdParty.txt.
The source code of this release is in Source/. Left out are Warp3D.h and
Warp3D.fd, the Warp3D API includes, (C) 1998 Sam Jordan, Hans-Joerg
Frieden and Thomas Frieden, which are not under the LGPL: building needs
them from QuarkTex's original repository, as
Source/Warp3D.library/Warp3D-includes.txt explains. Amigamesa.h is from
Mesa 1.2, (C) 1995 Brian Paul, LGPL v2 or later. Building minigl.library
needs MiniGL's SDK, (C) Hyperion under the Hyperion MiniGL Open Source
License, which is not included; building ogles2.library needs the ogles2
SDK (github.com/ladislawv/ogles2, MIT headers), not included either.
Archive contents
----------------
QuarkTexNG/QuarkTexNG.readme this file
QuarkTexNG/ReadMe.txt installation and settings in short
QuarkTexNG/README.md full documentation
QuarkTexNG/License.txt GNU LGPL v3
QuarkTexNG/COPYING GNU GPL v3
QuarkTexNG/ThirdParty.txt notices of the parts made by others
QuarkTexNG/Libs/ Warp3D.library, agl.library, minigl.library,
ogles2.library
QuarkTexNG/WinUAE/ the host DLLs for 32- and 64-bit WinUAE
QuarkTexNG/Source/ source code of this release (without the
Warp3D API includes, see above)
History
-------
1.0beta3 New ogles2.library (OpenGL ES 2.0); several 3D programs at once;
fullscreen screens in the mode of their size; Warp3D screen mode
fixes; no FPU requester.
1.0beta2 minigl.library moved to MiniGL's 29 SDK (PiStorm3D 29.1): lighting,
normal arrays, a GLU and GLUT subset. Programs built on an older
MiniGL SDK need recompiling against the 29 SDK.
1.0beta First release of QuarkTex NG.
|