English version | Version Francaise |
AL GRABS COME FROM WAZP3D / WINUAE
![]() |
Short:
CPU only Warp3D implementation
Author: thellier@free.fr (Alain Thellier) Uploader: thellier free fr Type: driver/video Version: beta 53 (July 2012) Replaces: driver/video/Wazp3D.lha Requires: RTG system,68020-40,fpu Architecture:m68k-amigaos >= 3.0.0 |
FPSE (Playstation emulator) showing Street Fighter EX
Plus Alpha support "Renderer:Composite2D" now. For FPSE-OS4 use those Wazp3D-Settings
DESCRIPTION
Wazp3D : Alain THELLIER - Paris - FRANCE
Wazp3D is a library intended to be compatible with the famous Warp3D.library
for AmigaOS 68040
LICENSE
GNU General Public License (GNU GPL)
MOST IMPORTANT FEATURES
o Compatible with the famous Warp3D.library for AmigaOS
o StormMesa compatibility
o The 97 functions from the latest Warp3D.library v5 are presents :-)
o Sources included (...so Wazp3D has been ported to AROS)
o Software only (=slow) : no need to have 3D hardware
o Work in UAE so can serve to test your 3D softwares inside UAE
o Wazp3D can lie and pretend to have a "perfect hardware driver"
so the 3D-softwares will not fail due to a lacking feature.
o Full Documentation, faq and grabs at http://thellier.free.fr/Wazp3D.htm
o Unlike QuarkTex you can run multiple Warp3D applications concurrently
o Built-in debugger
o Inside WinUAE & AROS can also render in hardware
o Demo-program http://aminet.net/package/dev/src/StarShip to use with
Wazp3D (StormMesa libraries needed)
INSTALLATION
Wazp3D-Prefs should be copied to your SYS:Prefs directory
Rename existing LIBS:Warp3D.library to LIBS:Warp3D.library-save
If you are not using WinUAE but a real OS3 Amiga 68k or another emulator
then just
copy Wazp3D.library-full TO LIBS:Warp3D.library
If you are not using WinUAE but a real OS4 PPC Amiga
copy Wazp3D.library-ppc TO LIBS:Warp3D.library
If you are not using WinUAE but a real OS4 PPC Amiga with altivec
copy Wazp3D.library-altivec TO LIBS:Warp3D.library
(only compiled with altivec options for gcc)
If you are using WinUAE then
copy Wazp3D.library-winuae TO LIBS:Warp3D.library
copy soft3d.library TO LIBS:soft3d.library
and PC side copy soft3d.dll to the WinUAE directory
WinUAE need "Miscellaneous panel/Native code execution" to be
enabled
If you are using Aros then
It is already in LIBS:Warp3D.library
Warning: upper/lower cases are important for libraries names
If Wazp3D-Prefs dont works then your install is not good...
It is recommended to use Wazp3D-Prefs BEFORE starting your-3d-program
for the first time
you can also use Wazp3D-Prefs when your-3d-program is running (so impossible
with screen-blankers)
But as Wazp3D now save/read the Prefs you may encouter problems if
the settings were not good
when your-3d-program was first started (typically using a too slow
"renderer:soft to bitmap" option)
In this case the better is to delete the file Waz3D.cfg in your-3d-program
directory
Then start Wazp3D-Prefs. Set your favorite settings. Close Wazp3D-Prefs.
Start your-3d-program
In Wazp3D-Prefs all options with a '+' like "+Renderer:hard" are intended
to be setted
BEFORE starting your-3d-program for the first time
If you change such an option during play then it will only have effect
next time
(ie when modified Waz3D.cfg will be read )
HISTORY
Wazp3D was first created to test the "Tales of
Tamar"'s 3D Map inside WinUAE.
I have no time left to work more on this project. So i release the
source ? library
"Tales of
Tamar"'s 3D Map inside WinUAE/Wazp3D
VERSIONS HISTORY![]() Changes from previous version |
Beta 53
o Now bufferize W3D_DrawTriangle/Line/Points so badly written apps that use those slow functions are faster now (need Renderer:hard + Use StateTracker ON) (typically StormMesa apps on WinUAE like GleXcess,Cube... ) o Enhancements for PPC version Renderer:Compositing2D Fix: Was crashing if several tasks use Renderer:Compositing2D (Blender) Patch: remove repeated texturing (wallpaper) as CompositeTags() dont support them (Quake) Some other transparency effects are now supported (GleXcess,Turrican,etc...) Use "Force IndirectMode:ON" & "Use StateTracker:ON" for better performances (But Blender need "Force IndirectMode:OFF" + "Renderer:Soft to bitmap") Now Turrican,Giddy,FPSE,Aquaria works o Now Maximum screen size is 2560x2560 (...so allow a 1280 double height screen) o Bug fix about textures structures not freed |
What is StateTracker ?
OpenGL and Warp3D use "states" to disable/enable the differents
effects like Texturing,Gouraud,etc...
Wazp3D before v47 (or QuarkTex) was just converting a given Warp3D
state to the OpenGL or Soft3D equivalent state
Example: W3D_SetState(context,W3D_TEXMAPPING,W3D_ENABLE); -->
glEnable(GL_TEXTURE_2D);
Now the StateTracker analyse very smartly if the current states
have really changed.
If they really changed then Soft3D or OpenGL equivalent states
are updated
If they dont changed then Wazp3D do nothing : it dont call Soft3D
nor OpenGL
So now the x86 (or Aros Mesa) calls are minimized
So better performances in hardware mode
So well written Amiga games like "Cube" are now very fast with
"renderer:hard overlay"
Note: If you have display problems then "Use StateTracker OFF"
but it will be slower
What is Compositing 2D ?
Amiga OS4 got the new graphics.library/CompositeTags() function.
This function allow hardware accelerated "Porter & Duff Alpha
compositing" (used in OS4 menus/windows transparency)
But CompositeTags() also allow to draw textured triangles with
corrected perspective and filtering.
So as a Proof of Concept the latest Wazp3D v52 can use Compositing
as renderer
BUT keep in mind that CompositeTags is NOT a real 3D Driver:
Unlike Warp3D CompositeTags dont have Zbuffer...cant draw lines/points...dont
support 156 BlendModes...
dont have TexEnv modes (=Coloring GL) like Modulate/Blend/Decal.
Note: Corrected perspective still got a bug in GLeXcess demo
Note: LodePaint & "I have no tomatoes" still need "Hack Texs|No
(safe)"
Note: D3gnop need "Force IndirectMode:OFF"
Note: StormMesa2010 display bug when several StormMesa progs are opened
Note: FPSE dont (yet) support "Renderer:hard overlay"
FPSE (Playstation emulator) showing SoulBlade support
"Renderer:hard" now. For FPSE use those Wazp3D-Settings
Beta 51 (AmiKit only)
o Flickering on WarpTest,Engine,Payback: fixed
o Fog works for "Renderer:hard" (Cube,etc...). Fog is slightly false
for "Renderer:soft".
o "Dump .OBJ(scaled)" works again. It allow to dump the displayed scene
as a wawefront .OBJ/.MTL file
o NEW: "Hack Texs: RGBA" option that convert all textures to RGBA32
so faster with "Renderer:Soft to Image"
Note: Playstation emulator FPSE + gpuw3d plugin works but in "Renderer:soft
to bitmap" mode only
Beta 50
o NEW: Hardware OpenGL(Mesa) can be used in AROS (Option Renderer:hard)
but dont works well
due to the fact that ArosMesa cant render in a specific bitmap
as Warp3D do
Option Renderer:hard is still bugged as the ArosMesa display
is offseted to window's position
Option Renderer:hard overlay almost works
Wazp3D-Aros works better in "Native driver" mode with LockBitmapTags()
implemented
o Bug fixes to make Blender/MiniGL/Warp3Dv5/OS4 works:
W3D_FreeTexObj(tex) with tex still used in context->CurrentTex[n]
: fixed
MiniGL Set ZCompareMode but dont enable Zbuffer: patched
Bug for some ZCompareMode/Zupdate values: fixed
Need to flush pixels if texture was freed : fixed
In Soft3D the DrawLine function was not good : almost fixed
Menus partially drawn: patched with "Force IndirectMode:OFF"
option in Wazp3D-Prefs
Bugs in W3D_DrawArray() W3D_DrawElements() W3D_ClearBuffers()
W3D_GetScreenmodeList() W3D_SetTexEnv(): fixed
... So Blender now works on OS4 machine without 3D-drivers
:-)
(Just remember that Wazp3D is limited to 1024x1024 screens)
o Bug fixes to make QT/MiniGL/Warp3Dv5/OS4 almost works:
Fixed a bug in the blending function (transparency) W3D_ONE,W3D_ONE_MINUS_SRC_ALPHA
o In WinUAE the option "Renderer:hard overlay" now works fine
overlay is now locked to current window so avoid to lock to
shell-window like this "glExcess_os3 > nil:"
o Cube & TuxRacer for 68k/OS3/StormMesa now works in WinUAE.
Need StormMesa libraries
Use also latest StormMesa2010 from Aminet + set VERYFAST + LOCKMODE2
in StormMesa-Prefs
in Wazp3D-Prefs set "Renderer:hard overlay" + "filtering" +
"anti alias" Enjoy :-)
http://aminet.net/util/libs/StormMesa_Libs68K.lha
http://aminet.net/util/libs/StormMesa2010.lha
http://dasixk.free.fr/tuxracer-0.61.lha
http://dasixk.free.fr/cube_16_10_2002.lzx
Wazp3D v50 for AROS that support now hardware rendering
(Wazp3D -> Mesa) (Photo from AROS boot CD)
Beta 49
o Bugs fixed about pointers (may had cause crashes).
W3D_SetBlendMode() is now perfectly emulated.
Some optimizations: so drawing a simply textured object(CoW3D)
on a 32 bits screen is now faster. Etc...
o New Wazp3D.library-ppc (port to Amiga 0S4 PPC). Very slow
so can only serve for debugging OS4-Warp3D programs
(Tested & working: Cube, AmiDark engine, Feather demo, TuxKart,
GlGlobe, Glsmoke, etc...)
o On OS4 machine the new Wazp3D.library-ppc can be used from old 68k
programs (=legacy 68k compatibility)
o The option Renderer "hard" is now faster (Warning:
This option still ONLY works on 32 bits BGRA)
o Warp3D V5 implementation (but only compiled for Wazp3D.library-ppc)
so compatible with latest MiniGL
o AROS to OpenGL(Mesa) sources joined but not compiled yet (see soft3d_opengl.c
& build-PPC.sh)
o New Wazp3D-Prefs rewriten a more os-friendly way
o The game "I have no tomatoes" works now (disable option "Hack RGB/RGBA/ARGB
texs")
o Code clean-up so the sources can serve to write your own .library
or .DLL
AmiDark is a game engine for AmigaOS4 (Grab from Wazp3D/Sam440)
Beta 48
o Bugs fixed: vertices having a bad color (Blitzquake) + culling
defaulting to CW (CoW3D) + Zbuffer clear value (WarpTest)
o Early OPENGL32.DLL support: Like QuarkTex the latest Wazp3D/WinUAE
is now hardware accelerated :-)
Now can choose in Wazp3D-Prefs
the Renderer: soft or hard (then will use hardware OpenGL)
Many hanks to the QuarkTex Author & WinUAE Team for
their usefull sources
GLeXcess for OS3 (need stormmesa) in hardware in WinUAE
using Wazp3D->OpenGL32.DLL
Can see hardware filtering & antialiasing on the
nearer pixels
Beta 47
o New fast native soft3d.dll for WinUAE so all the drawings
are maded with the X86 cpu
o Quake's perspective works now (so BlitzQuake is nearly perfect)
o Simple Linear-filtering (a few bugged ? very slow)
o Option "DoMipmaps" works now (it use more memory)
o StateTracker: If the states dont really changes then dont call soft3d
and continue to bufferize the output (faster)
StateTracker cant works if Wazp3D-Prefs is still opened (cause
the user can change states any time)
o Enhanced Wazp3d-Prefs Gui
Beta 46 (not released)
o PayBack, ApoolGL, TiltNRoll works now :-)
o All BlendModes (transparency effects) are implemented so W3D_SetBlendMode()
is now 100% emulated
so better transparency emulation for GLeXcess,GlTron...
o Option "Directly draw in Bitmap" (default) supports now 15/16/24/32bits
modes
Beta 45.6 (only AROS ? AmiKit release)
o a fatal bug from version 45.5 fixed (SC=NULL)
o recompiled for 68020/68040 68881 for AmiKit
Beta 45.5 (not released)
o GLeXcess for OS3 works almost perfectly :-) (some new BlendModes
implemented )
Beta 45
o Zbuffer 100% emulated : (All Zbuffer functions ? all ZCompareModes
are implemented)
(So can do multipass texturing: BlitzQuake looks much
better now with lightmaps. MesaDemo's UnderWater works now)
o Support big texture sizes > 256x256 (GnuJump use 1024x1024
ones)
o Window resize works perfectly in any case
o Misc: MesaDemo's texcyl bug fixed. TexEnvMode/BlendMode cleanup and
better emulation. Skulpt works again. FPS display fixed
MesaDemo's UnderWater in beta45 is an animation that
use multipass-texturing
Beta 44
o New Option "Simu Perspective" that use two quadratic-aproximations
per raster to simulate the texturing in perspective
o So some Games/Demos using perspective works now perfectly (GLtron,
Warp3D's Engine,etc..)
o GnuJump(SDLJump) ? BeastieWorker games ? the StormMesa demo GLflare
works now
o Various hits and StormMesa bugs have been fixed (Many thanks to Kas1e,
Bernd Roesch, Matthey, Wawa for their bugs-reports)
o Some bugs concerning the current TexMode?ColorMode relative to W3D_SetState
have been fixed too (Many thanks to Kas1e)
o Zbuffer and Fog use float now
o Debugger new options:
Debug Adresses (memory adresses for all Warp3D's
functions)
Debug as JSR (display calls to Warp3D as an assembly
JSR)
Step DrawPoly (Pause after each polygon drawn)
BeastieWorker(AmiBeastie) a very slow program
GnuJump(SDL Jump) use big textures up to 1024x1024
Beta 41
o Mainly BlitzQuake enhancements (light glows, menus)
o Additive blending. It fully emulate W3D_SetBlendMode(context,W3D_ONE,W3D_ONE)
o "Directly draw in Bitmap" works
better . Use it now for a better StormMesa emulation on a 32 bits screen
(window-resizing works now).
o GlTron works now but distorted.
o "Smooth Textures" works well now
o Smarter coloring (never do a stupid flat modulate with white, do
gouraud only if color truly change) : Faster for simple coloring, fadein/out,
etc...
o Default texenvmode is now W3D_MODULATE (OpenGL compliant)
o Less texture distorsion (but still distorted)
o Two new options are implemented "Do MipMaps" ? "True Perspective"
but they dont works :-(
o Skulpt no more works :-(
Beta 40
o Quake now WORKS :-) (BlitzQuake from Aminet)
o Fix a bug related to MiniGL implementation of DrawArray/DrawElements
(D3GNOP,Quake,...)
o TexEnvMode full implementation (W3D_REPLACE/W3D_MODULATE/W3D_DECAL/W3D_BLEND)
o New Options "Use Coloring GL" "Use
Ratio Alpha" "Use AlphaMin?Max" "Debug
Tex Number" "Use Quake Patch"
o Fog seems to works now
Beta 39
o New option "Directly draw in Bitmap"
that can be faster ? more compatible in some case
o New option "Display FPS" that count the frames per second
o New demo-program "StarShip"
to use with Wazp3D (StormMesa libraries needed)
o The old option "Only Fast RGB24" is changed to "Only
TrueColor 24?32"
o Full documentation also in french on http://thellier.free.fr/Wazp3D_fran?ais.htm
o French article on Web-magazine "Obligement" http://obligement.free.fr/articles/wazp3d.php
Beta 38
o StormMesa Works :-) (nearly 200 demos works now especially
the impressive Atlantis
and
GlutMech
demos)
o More compatible : some functions have been seriously debugged ? cleaned
o New option "Dump Object" to dump all as
an .OBJ/.MTL text file
o New option "UpdateClearZ" to force a ClearZbuffer at each update
(only for Enforce)
o New option "Debug Sepia Image" that colorize
in red the part that Wazp3D drawn
Beta 37
o Four new games are working now: Alybox, D3gnop, Sopoblock,YAPMG :-)
o New option "Reload Textures" to load
a new texture set (to change ugly originals textures)
o Library also builded without debugger (smaller version)
o New option "Hack ARGB" to convert directly ARGB textures data
to RGBA (for Tamar 3D) = economize memory
o Obsolete option "Clamp UV[0.0 1.0]" is removed (textures are allways
W3D_REPEAT)
Beta 36
o Nicer ? a few faster with some new optimised pixels functions
o Texture-repeat works (Bzone)
o Smooth Textures options
o More compatible : Fog or coloring works now on partially transparent
faces (like trees in Tamar 3D) = new pixels functions
o Fog works better (not perfect yet)
o New options "Use ClearImage" ? "Update At UnlockHardware "
to enhance update for some programs like gears(screen),Engine, sKulpt or
TheVague.
Beta 35
o Code clean-up and library enhancements from Gunther Nikl
o "Hack1 tex RGBA" works again (draw a textured-triangle as a Gouraud
untextured one = faster)
o "Hack2 tex RGBA" works again (draw a textured-triangle as a
Flat untextured one = faster)
Beta 34
o Brand new pixels functions that allow to render lighted textures
:-) so looks now very nice
o Corrected a very bad bug concerning pixels-buffering.
o New Bug has appeared :-/ so 4D-clock ? other StormMesa stuffs now
crash...
o Library is smaller :-)
Beta 33
o Full Documentation at http://thellier.free.fr/Wazp3D.htm
o Corrected a very bad bug introduced in beta 32 concerning memory
freeing (beta 32 line 644)
o Corrected a very bad bug in W3D_UpdateTexSubImage
o AROS port from Matthias Rustler
o Various pointer==NULL bugs corrected by Matthias Rustler
o ClampUV (if disabled allow texture_repeat)
o Perspective correction (disabling)
o Zbuffer enhanced = ReadZSpan/WriteZSpan/etc...
o Code CleanUp (no more ULONG used as pointers to texture)
o Bug fix in GetDriverTexFmtInfo : now if use UseAnyTexFmt is ON then
return supported
o More compatible with new 3Dprogs (BattleZone,Lamintro,4D-Clock,StormMesa
examples, etc)
o Support rectangular textures
o Bug fix in Alpha blending on 32 bits texture but no zbuffer
Beta 32
o No more warnings when recompiling
o Perspective correction (cant be disabled)
o 3D-Clipper works
o Less bugs (even some few fatals one)
o Fog works (not perfect)
o First Culling (CCW/CW face order) implementation (still bugged)
o "Hack1 tex RGBA" works (draw a textured-triangle as a Gouraud untextured
one = faster)
o "Hack2 tex RGBA" works (draw a textured-triangle as a
Flat untextured one = faster)
o "AntiAlias Screen" new ? works (3x3 median per pixel) (slow)
o Library is smaller :-)
o More compatible with new 3Dprogs
Beta 31 (first public one)
o New tracked memory allocation
o Project's name changed to "Wazp3D"
KNOWN BUGS
A lots of works has been done to remove Wazp3D
bugs
Now more than 200 programs works well with
Wazp3D
But there are still some bugs...
BlitzQuake: quake patch = menu not transparents (texture1 ? texture9
to 32)
Mesa Demos: Demos that use W3D_updatetexture() sometime crash
Tamar3D: dragon gold = All Fogs are false
WazpTest: Fog is false (opengl fog use a standard z (=1/w)) (start
4.0 end 1.33 density 0.949999 GL=0.25 0.75)
WarpTest: Fog is false (use curious fog_end w=0.20 -> 1/w=z=5.0???)
(start 1.0 end 0.20)
TheGoonies: use too much memory ? crash
Skulpt: works now :-) but 3d-preview got bad colors
4Dtris: dont display well (Zbuffer related)
Mesa demo spheremap ? Quake: polygon's edges dont ovelarp
GeoFace: DumpObject dont works well (resulting file seems not good)
LamIntro: crash at close
GlMatrix: Program use bad blending mode => use glmatrix patch
BlitzQuake in v41 with options Smooth Texture ? Quake
Patch. Demonstrating the new additive-blending (halo of lights)
GLtron works now perfectly with the new "Simu. Perspective"
? "Use ColoringGL" options
(GL) 117 is a flight simulator that works 95% with Wazp3D
glSokoban ( from the Warp3D MiniGL package) a boring
game but very playable with Wazp3D (need a big stack value)
GLeXcess for OS3 (need stormmesa) Use ColoringGL + Simu
Perspective
AlyBox works and is playable inside WinUAE/Wazp3D
Blitzquake in hardware in WinUAE using Wazp3D->OpenGL32.DLL
Can see hardware filtering & antialiasing on the
nearer pixels
![]() 4D-clock a StormMesa program that run (need StormMesa libraries) |
![]() BattleZone a tank simulations that works near perfectly now in beta36 |
IMPORTANT
Wazp3D is not perfect but it was good enough for me :-)
This Wazp3D binary is intended to be used within a very fast 68040
AmigaOS (= UAE emulator with JIT like WinUAE)
This Wazp3D binary is compiled for 68040-68881 (adjust your WinUAE
settings)
Also need "full screen RTG" ? JIT both to be activated to obtain enough
speed
(also need picasso 96/cybergraphics and an RGB24 screen)
Wazp3D is NOT an UAE hack and so (should) not depend on a particular
UAE version
But it only need much speed for his software rendering
Some 3Dprogs need a big stack to be able to
run without crash (glsokoban,etc...)
IMPLEMENTED FEATURES
Texturing
Zbuffer
Goureaud shading
Alpha blending
Color blending
All Fogs
All primitives
All vertex formats,etc...
WarpTest the official Demo from Warp3D package
( perspective correction ? coloring)
UNIMPLEMENTED FEATURES
Stencil masking
Color masking
Alpha masking
Stippling
Mipmapping
Filtering, etc...
Enforce demo works again in beta 49
TESTED SOFTWARES
Mostly those programs are on Aminet
http://aminet.net/search?readme=warp3D?arch[]=m68k-amigaos
WORKING PROGRAMS![]() |
|
WarpTest | works |
Engine | works (need to enable "Simu. perspective" ? "ColoringGL" |
Sokoban | works and is playable :-) |
Gears_68k-window
Gears_68k-small |
works |
Gears_68k(screen) | works |
"Tales of Tamar"'s 3D Map (not publicly available) | works (no fog) |
TheVague DiskMag
Lamintro |
works perfectly (Use ClearImage OFF,Use ColoringGL) |
4D-Clock | works (need StormMesa libraries) (need a big stack) |
Battlezone1.3 | works ( need to enable "Simu. perspective" ? "ColoringGL" ) |
NeonBars | works (need AmigaAmp running) |
glmatrix | works (need OS 3.5). It is a Matrix like screen-saver Need "glMatrix Patch". Need Quake?glMatrix patch |
AlyBox | works and is playable :-) Use MiniGL
Need a working AHI installation Need Lucyplay.library in LIBS: Need to enable sound emulation in WinUAE Need to add option -forcejoy in scripts (can works in a 640x480 window) Need to enable perspective correction |
SopoBlock
Y.A.P.M.G d3GNOP |
works Need same configuration as AlyBox |
MenoBox
MenoBox Xmas ImuBox |
works (Use StormMesa) Need StormMesa libraries |
Earth
3D-Fraktal RocketCar Planet |
works (Use StormMesa) Need StormMesa libraries |
PaperBox | works |
GLDemos_Exe68K.lha
(22 StormMesa demos programs) Atlantis,GlutMech,Texas,GlutPlane,etc...
|
works
(Use StormMesa) Need StormMesa libraries |
StMesa_Demos168K.lha
StMesa_Demos268K.lha StMesa_Demos368K.lha StMesa_Demos468K.lha StMesa_Demos568K.lha (aproximately 200 StormMesa demos programs) |
works
(Use StormMesa) Need StormMesa libraries |
BlitzQuake
http://www.quake3arena.com/games/quake/quake/index.php?game_section=demo http://aminet.net/package/game/shoot/BlitzQuake_68k |
works Need "Use Quake Patch" ? "Smooth Textures"
glquake68k_blitz -windowmode +map dummy -guardband -particles
64 -hicontrast -gamma 0.5 -bpp 32 -width 320 -height 240 -mem 16
-zone 1024 -audspeed 5513 -nojoy -nocdaudio -nopsx -litfiles lm_RGBA
|
GLtron | works Need "Simu.Perspective","Use ColoringGL", "Smooth Textures"
(need to rename some files after installation) |
GnuJump(SDLJump) | Works. Need "Directly write in Bitmap","Use ColoringGL", "Smooth Textures"
"No Perspective"
Use AlphaMin?Max = OFF for better text display |
BeastieWorker (from AmiKit Addon ArtiGames) | Works for the latest version. Need a recent ixemul.library. Need "Use ColoringGL", "Smooth Textures" |
Skulpt68k alpha 28 (4 oct 2000) | the 3D preview got bad coloring
(Only this old sKulpt version works ) (need also .BMP datatype) |
Payback demo | Works Need "Use ColoringGL", "Simu Perspective" |
4DTris | Works but little Zbuffer problem |
GLeXcess for OS3 | Works almost perfectly. "Use ColoringGL", "Simu Perspective" "Poly
Hack More"
(Use StormMesa) Need StormMesa libraries. Better to resize to a small window to gain speed For FullScreen :type " setenv glut/force_fs 1 " before running the demo. Skip to next demo with space. |
TiltNRollDemo | Works almost perfectly. "Use ColoringGL", "Simu Perspective"
Only the "non threaded" version works well. Need a big stack Need "Use ColoringGL", "Simu Perspective" Only the levels testing.lvl and tough.lvl are working. Crash at exit |
ApoolGL | Works but slowly with a little Zbuffer problem. . Need StormMesa libraries |
TheVague2 DiskMag | Works perfectly |
Enforce (game demo)![]() |
Sometimes worked in beta 49
Very unstable but works well and fast when it works |
I Have No Tomatoes![]() |
works (disable option "Hack RGB/RGBA/ARGB texs") |
OS4: Cube, AmiDark engine, Feather demo, TuxKart, GlGlobe, Glsmoke, etc.. | Works but very very slowly :-/ |
Ports from Wawa: 117, LodePaint,etc.. | Works |
DONT WORKING PROGRAMS | |
Some rare StormMesa demos programs | Works partially for some rare demos
(Use StormMesa) Need StormMesa libraries StormMesa can also render as software :
|
![]() |
![]() |
![]() |
YAPMG
![]() |
D3GNOP (a 3D Pong)
![]() |
The Vague (the First Warp3D based DiskMag) in windowed
mode
glMatrix
BlitzQuake in v45 with options ColoringGL, Smooth Texture
? Quake Patch. Demonstrating multi-texturing (lightmaps on the walls)
TiltNRollDemo
ApoolGL
WAZP3D-PREFS
The Wazp3D-Prefs tool allow to change some parameters of the Wazp3D
library emulation
There is no perfect solutions in Wazp3D-Prefs you can always select
between speed and features . Of course nice features are slower (or less
compatible with original Warp3D)
In Wazp3D-prefs
All Options with a + MUST be selected BEFORE
launching the program
'HardwareDriver Lie' & 'TexFmt Lie' are a way to lie to the
3Dprogs.
Some 3Dprogs ask about the driver possibilities (with W3D_QueryDriver,
W3D_GetDriverTexFmtInfo or W3D_Hint) and Wazp3D can lie in this case
If the 3Dprog can adapt to the lacking features of Wazp3D then better
to set those flags to FALSE
If not and the 3Dprog just quit due to a lacking features of Wazp3D
then better to set those flags to TRUE
Example: a 3Dprog ask for texturing + fog + mipmapping but Wazp3D
cant do mipmapping
Two possibilities
1) The 3Dprog adapt itself and decide to not use mipmappingthen better to set HardwareDriver Lie to TRUE there will be no mipmapping but the 3Dprog will run
2) The 3Dprog dont adapt and fail .... :-/
Idem for textures some 3Dprogs ask about the supported texture-formats
Example: a 3Dprog want a 16 bits texture-format like W3D_R5G6B5
but Wazp3D use only RGB or RGBA textures
Two possibilities
1) The 3Dprog adapt itself and load or create RGB/RGBA texturesthen better to set TexFmt Lie to TRUE so Wazp3D will convert textures itself (and will use much more memory) but the 3Dprog will run
2) The 3Dprog dont adapt and fail .... :-/
Conclusion: if it works with HardwareDriver Lie and TexFmt
Lie to FALSE dont change it. If it fail try with TRUE ;-P
NOTES
If HardwareDriver Lie is not set then W3D_QueryDriver, W3D_GetDriverTexFmtInfo or W3D_Hint returns the real possibilities of current version of Wazp3D Wazp3D cant lie about using a chunky screen : it really cant use it :-/ |
Engine (from Warp3D package) in beta36 with the
new lighting
(16bit screen, Use Coloring + Perspective correct.+Antialiasing
+ Update At UnlockHardware )
Why prog xxx builtin renderer is faster than
Wazp3D ?
Often built-in software renderer use only 8bits textures . Wazp3D use
32bits coloring/texturing ==> 4 time slower
Where can i found documentation about Warp3D
programming ?
Here is the official Warp3D doc
http://zerohero.homeip.net/~zerohero/autodocs/os4/toc_warp3d.html
Can you more explain about directly soft to
Image/bitmap ?
Will it reduce cpu speed, or it will be faster
even with MinUpdate/etc with NO ?
1) soft to Image
Wazp3D alloc/use an RGBA buffer (i called it the "Image" = in french
the picture) that is the size of the context bitmap.
Wazp3D draw all inside this RGBA buffer.
It is more easy for Wazp3D Because Wazp3D is sure to manipulate RGBA
pixels When a "finishing-frame" function occurs (clearzbuffer,flushframe,etc...)
Then it call DoUpdate() that mainly do an WritePixelArray() Image -->
bitmap
MinUpdate YES
Do the DoUpdate() for only the rectangle that Warp3d has drawn on Image : copy this rectangle to the bitmap MinUpdate NO Do the DoUpdate() for full Image : copy all to the bitmap |
When a frame is finished the prog3d can do W3D_ClearDrawRegion or clear
the bitmap an other OS way.
So Wazp3D dont know if the prog has cleared the bitmap to begin a new frame (most progs) or continue to draw (The vague) UseClearImage YES
|
Conclusion for soft to Image
There is no RGBA buffer
So it use the bitmap memory as "Image" so works
To draw some pixels (say) textured ? blended:
- Read the pixels values (bitmap format-> RGBA) from the bitmap
in a small buffer (inside a lock/unlock bitmap)
- Do the texturing/blending/etc on the small buffer
- Write the pixels values (RGBA -> bitmap format) from the small
buffer to the bitmap(inside a lock/unlock bitmap)
Conclusion for soft to bitmap
With Wazp3D you can
Why a GPL License ?
I wish that people will ports Wazp3D to others AmigaOS-like. So i release
the sources :-)
But i dont want people to make money with my code and my work
So i needed a Free Source License (but i am not a lawyer and
dont know much about Licenses) so i have preferred the most famous
one.
But GPL will forbid existing programs
to use Wazp3D ?
NO if you only use dynamical-linking (ie use only normally the Wazp3D.library
binary)
http://en.wikipedia.org/wiki/GNU_General_Public_License
A key dispute related to the GPL is whether or not
non-GPL software can dynamically link to GPL libraries. The GPL is clear
in requiring that all derivative works of GPL'ed code must themselves be
GPL'ed. However, it is not clear whether an executable that dynamically
links to a GPL code should be considered a derivative work. The free/open-source
software community is split on this issue. The FSF asserts that such an
executable is indeed a derivative work if the executable and GPL code "make
function calls to each other and share data structures,"[26] with others
agreeing,[27] while some (e.g. Linus Torvalds) agree that dynamic linking
can create derived works but disagree over the circumstances.[28] On the
other hand, some experts have argued that the question is still open: one
Novell lawyer has written that dynamic linking not being derivative "makes
sense" but is not "clear-cut,"[29] and Lawrence Rosen has claimed that
a court of law would "probably" exclude dynamic linking from derivative
works although "there are also good arguments" on the other side and "the
outcome is not clear"[30] (on a later occasion, he argued that "market-based"
factors are more important than the linking technique[31]). This is ultimately
a question not of the GPL per se, but of how copyright law defines derivative
works. In Galoob v. Nintendo the Ninth Circuit Court of Appeals defined
a
derivative work as having "'form' or permanence" and noted that "the infringing
work must incorporate a portion of the copyrighted work in some form,"
but there have been no clear court decisions to resolve this particular
conflict.
Since there is no record of anyone circumventing the
GPL by dynamic linking and contesting when threatened with lawsuits by
the copyright holder, the restriction appears de facto enforceable even
if not yet proven de jure.
1) Using Wazp3d.library
You cant say that a 3D-program that only dynamically-link to
Wazp3D is a "derivative works" from Wazp3D
In fact the 3D-Program was created/compiled to use/link with
Warp3D not Wazp3D
Dynamically-linking to Wazp3D not incorporate (inside the 3D-program)
a portion of the copyrighted work in some form
"'form' or permanence" is not etablished especially if Wazp3D.library
is not distributed with the 3D-Program
2) Using the sources
Of course if you modify the Wazp3D's sources then the new version must
be in GPL
You said that program xxxx works but it crash
for me
Try to increase stack
Setting 'HardwareDriver Lie' ? 'TexFmt Lie' to TRUE
is safer
I try to test it on my winuae config (2.4 /
geforce).
GeForce wont help as it is a CPU only rendering.
6-7 fps only is here. It's pretty strange,
becouse 2.4 cpu i think very powerfull for this little calculations.
One thing to keep in mind : there is few calculations in the 3Dprog
"gears"
BUT on his side Wazp3D do a lot of work only to draw a pixel (texturing)
Gears ( from the minigl package)
Gears full screen, and .. it's like crazy slideshow
:)
1 fps maybe + i just can see any redrawing
and screen-buffer fliping.
Yes there is still a problem with full-screen-refreshing
- Warp3D draw directly in the bitmap
- Wazp3D draw all in an internal RGBA32 buffer then
try to detect the best moment to copy
the buffer to the bitmap (ie when the 3Dprog have
really finished to draw)
Sometime it works well cause the 3Dprog software call FlushFrame()
or SetDrawRegion() or ClearZBuffer()
to finish the drawing... Sometime it dont works... (1)
sKulpt from Stephane Guillard (need BMP datatype)
sKulpt still got color problem
(But only this old version of sKulpt truly works)
It's must be like this or it must be fast on
my configuration ?
Seems that some PC and/or WINUAE versions seems to be faster with JIT
and Wazp3D than others
For me the old WinUAE 0.8.22 release 4 seems to works especially
fine
Anyway Wazp3D is slow : just keeep in mind that it is the 68040 (JIT-emulation)
that compute each pixel one per one
(Wazp3D it NOT an UAE hack ===> it dont use directly the Intel CPU
but the 68040 emulated one)
Have you ever seen a fast CPU only 3D program on an Amiga4040 ? (2)
NeonBars (3D plugin for AmigaAmp) (need a texture called
floor.ppm, here chrome.ppm has been renamed to floor.ppm)
Fog looks like not perfect ?
Seems that the fog-formula used is not the same as the Warp3D one
If someone know how Warp3D compute the fog ...??
Why "Engine" is distorted ?
Wazp3D-beta31 was lacking perspective-correction
Beta32 looks better but Engine still got a problem
Is it the long awaited software-driver for
Wazp3D ?
Not exactly Wazp3D is a full implementation of Warp3D not only
the 3d-driver part.
So you dont need to install the original Warp3D-package : you only
need to install Wazp3D.library
Of course you can install the Warp3D demos like Sokoban
What the difference with QuarkTex ?
QuarkTex is a nice WinUAE hack but it need WinUAE and OpenGL and a
3D card. Also it dont works for everyone...
(it never worked perfectly for me :-/ ) but is much faster as it use
the 3D hardware
If QuarkTex works well for you dont try Wazp3D
Warp3D: 3Dprog-->Warp3D-->AmigaOS-->Driver-->3Dcard
QuarkTex:3Dprog-->Warp3D-->AmigaOS-->WinUAE-(Windows)->Warp3D.alib-->OpenGL-->Driver-->3Dcard
Wazp3D: 3Dprog-->Warp3D-->AmigaOS-->68040
Note: Unlike QuarkTex you can run multiple Wazp3D applications concurrently
WarpTest (from Warp3D package) (need Use Persp.Correct)
There are lots of Warnings when recompiling
Sorry
No more warnings with beta32 : code has been cleaned :-)
Why a beta 32
Much (and more than i imagined :-) ) people seems to be interested
in the Wazp3D beta31
So i tried to remove some bugs for all those people that said "Wazp3D
is Cool"
What is new with beta 32 ?
Mainly no more warnings when recompiling
See here for the list of new features
What is new with beta 33 ?
Mainly the bad memory-bug was fixed
AROS port from Matthias Rustler
See here for the list of new features
What is new with beta 34 ?
Mainly the new pixels functions that allow to render lighted textures
:-)
See here for the list of new features
What about AROS version ?
Wazp3D is now in the AROS CD (It is LIBS:Warp3D.library)
So you can write 3D progs for AROS now :-)
PaperBox
How fast it is ?
Slow but usable on a fast WinUAE-JIT
For example you can play Sokoban or AlyBox smoothly or watch MiniGL
demos like gears
Engine ? WarpTest seems to be faster than a real A4040+CV64/3D.
Here it is some speed results
--> Coloring use much CPU
--> AntiAliasing the screen use much more CPU
What is
DumpTexture/ ReloadTextures ?
With the debugger enabled and DumpTextures enabled then all textures
ares saved as RGB or RGBA
.RAW files in T:
You can reload texture(s) with the debugger enabled and ReloadTextures
(see example 1 , example2)
The new textures with modified pixels must
What is "Debug Sepia
Image" ?
With the debugger enabled and "Debug Sepia Image" Wazp3D colorize in
red the part it drawn
So you can be sure if Wazp3D is really used and not an other renderer
MenoBox with SepiaImage : A StormMesa 3Dprog that truly
use Wazp3D beta 38
What is Dump
Object ?
With the debugger enabled and Dump Object enabled then all that
is drawn is dumped as text
This output represent an .OBJ and .MTL file very common in various
3D-Softwares
(Usage: copy the text-output and save it in two files )
Use it with DumpTextures to obtain textures too
ImuBox works now in beta 38
Gears in beta 34 showing a gear and a lighted gear
The Vague (the First Warp3D based DiskMag) (Use ClearImage
OFF)
(1) I hope someone will enhance Wazp3D
as i have no time left to work anymore on this project
(2) Perhaps a very smart ASM programmer
will enhance speed a few but there will be no miracle :-)
(3) All grabs from WinUAE/Wazp3D
Function | Status |
CreateContext | works |
CreateContextTags | works |
DestroyContext | works |
GetState | works |
SetState | works partially |
Hint | works |
CheckDriver | works |
LockHardware | works (There is no hardware so do nothing) |
UnLockHardware | works (There is no hardware so do nothing) |
WaitIdle | works (There is no hardware so do nothing) |
CheckIdle | works (There is no hardware so do nothing) |
Query | works |
GetTexFmtInfo | works |
GetDriverState | works (There is no hardware so do nothing) |
GetDestFmt | works |
GetDrivers | works (only one driver) |
QueryDriver | works (only one driver) |
GetDriverTexFmtInfo | works (only one driver) |
RequestMode | works |
RequestModeTags | works |
TestMode | works |
AllocTexObj | works partially |
AllocTexObjTags | works partially |
FreeTexObj | works |
ReleaseTexture | works |
FlushTextures | works |
SetFilter | do nothing usefull (=only update internal settings) |
SetTexEnv | works |
SetWrapMode | do nothing usefull (=only update internal
settings)
works partially as textures are allways W3D_REPEAT |
UpdateTexImage | works |
UpdateTexSubImage | works |
UploadTexture | works |
FreeAllTexObj | works |
SetChromaTestBounds | do nothing usefull (=only update internal settings) |
DrawLine | works (and support textured lines) |
DrawPoint | works (and support pointsize >1) |
DrawTriangle | works |
DrawTriFan | works |
DrawTriStrip | works |
Flush | works |
DrawLineStrip | works |
DrawLineLoop | works |
ClearDrawRegion | works |
SetAlphaMode | do nothing usefull (=only update internal settings) |
SetBlendMode | works |
SetDrawRegion | works |
SetDrawRegionWBM | works |
SetFogParams | works(?) |
SetLogicOp | do nothing usefull (=only update internal settings) |
SetColorMask | do nothing usefull (=only update internal settings) |
SetPenMask | do nothing usefull (=only update internal settings) |
SetCurrentColor | works (?) |
SetCurrentPen | works (?) |
SetScissor | works |
FlushFrame | works |
AllocZBuffer | works |
FreeZBuffer | works |
ClearZBuffer | works |
ReadZPixel | works |
ReadZSpan | works |
SetZCompareMode | works |
WriteZPixel | works |
WriteZSpan | works |
AllocStencilBuffer | works |
ClearStencilBuffer | works |
FillStencilBuffer | works |
FreeStencilBuffer | works |
ReadStencilPixel | works |
ReadStencilSpan | works |
SetStencilFunc | do nothing usefull (=only update internal settings) |
SetStencilOp | do nothing usefull (=only update internal settings) |
SetWriteMask | do nothing usefull (=only update internal settings) |
WriteStencilPixel | works |
WriteStencilSpan | works |
DrawTriangleV | works |
DrawTriFanV | works |
DrawTriStripV | works |
GetScreenmodeList | works |
FreeScreenmodeList | works |
BestModeID | works |
BestModeIDTags | works |
VertexPointer | works |
TexCoordPointer | works |
ColorPointer | works |
BindTexture | works |
DrawArray | works |
DrawElements | works |
SetFrontFace | works |
Warp3D V5 | |
SetTextureBlend | works partially (only the TexEnvModes) |
SetTextureBlendTags | works partially (only the TexEnvModes) |
SecondaryColorPointer | do nothing usefull (=only update internal settings) |
FogCoordPointer | do nothing usefull (=only update internal settings) |
InterleavedArray | works |
ClearBuffers | works |
SetParameter | works partially (classic fog, point size) |
PinTexture | works (?) (implemented but not compiled in this version) |
SetDrawRegionTexture | works (?) (implemented but not compiled in this version) |
Lamintro (Use ClearImage OFF)
"Tales of
Tamar"'s 3D Map inside WinUAE/Wazp3D
The Vague (the First Warp3D based DiskMag) (Use ClearImage
OFF)
"Tales of
Tamar"'s 3D Map with AntiAlias Screen + Smooth Textures
The debugger in action tracking SopoBlock
Bzone with some new textures demonstrating ReloadTextures
options (+ Coloring + perspective)
Enforce has worked sometimes in
beta38 (need new option ClearZbuffer at Update)
Perhaps need (?) AmigaOS3.9 and WinUAE1.4.6
StorrmMesaDemos like RollerCoaster works in beta38
(+ Coloring + perspective)