Blitz Hardwired - DirectX 9 Userlib (Part II)

Community Forums/Showcase/Blitz Hardwired - DirectX 9 Userlib (Part II)

Ploppy(Posted 2013) [#1]
Hello all, just a little something today, firstly a new thread (finally). Also, as you can see, a new name, and finally a logo...



Tommorow, it gets repackaged and I will reconcentrate on coding...

Rick, I saw your last message. My fault, I had updated the dll without updating the demo files. Nothing was wrong with the dll itself, it's just that I had changed the syntax of a few commands.

I have now uploaded correction - demos should work now. Nothing new in dll tonight though, haven't had time...


Hotshot2005(Posted 2013) [#2]
Well Done for making New threads for part 2 but the picture of itself is Huge!

Reduce the picture in half the size would be Better for good viewing!


Ploppy(Posted 2013) [#3]
Ok, you're right too, rather big - done...


Hotshot2005(Posted 2013) [#4]
That is Better! :)

Picture that you have made is very good :)


Rick Nasher(Posted 2013) [#5]
hehehe, Blitz Lightning!


Guy Fawkes(Posted 2013) [#6]
OMFG! IM IN LOVE WITH THE LOGO! I CANT WAIT TO USE THIS PROJECT WHEN THERE'S TOTAL COMPATABILITY FOR SAVING B3D / X / 3DS ANIMATED MULTI-TEXTURED MESHES! :O


Rick Nasher(Posted 2013) [#7]
After playing with it(the code) I found some weird results.
Our main character(let's call him "Neil") has developed some strange space sickness(the shakes) when taking him for a spin in space using:
dxTurnEntity neil,diff/60.0,diff/60.0,diff/60.0,1
I also found that appears the dxTurnEntity command doesn't turn in all directions yet(or perhaps a side effect).

Am I doing something silly to make his mission go horribly wrong? Or is it just Neil. (full code below, media needed was provided by Yue in previous post)



Ploppy(Posted 2013) [#8]
It's the war wounds, mate -it's affecting Neil's coordination. Poor guy, leave him be, he's been through so much already. He may have the shakes but is still a valid and important member of society and should be revered for his heroic space missons to save hamunity from the evil teapots.

He may be suffering from gimbal lock poisoning, at a guess. i will look into it.


Rick Nasher(Posted 2013) [#9]
cool! :-)


virtlands(Posted 2013) [#10]
It's nice to see Part Deux.


Ploppy(Posted 2013) [#11]
Hello again,
New version out, please use the link below, older links will point to older version as I have changed the filename and it's nature.

Download me!

The userlib is now packaged in it's own installer. The installer will request your desired Blitz3d folder (prorgam files\blitz3d by default, of course). It will install the dll+decls automatically to your blitz3d along with the test files and all media concerning.

These test files can be found in your blitz3d folder, under samples\blitz_hardwired (only one test file in it for moment).

The installer will also add two new categories to the blitz help system, DX9 2d Commands and DX9 3d Commands. Dx9 commands have now their own help page, just like for b3d commands. Please note, these help files are for the moment copies of their b3d equivalents - I will refine this at a later date. Have a look and you'll see what I mean....


As for the dll itself, no new commands, but much bug correcting. Textures are the right way round. You can now inverse scale without hitch (thanks Rick for the tip). .x models, teapots and cylinders are now editable meshes, you can access them with standard dx commands (dxvertexcords, dxflipmesh, etc...).


Guy Fawkes(Posted 2013) [#12]
I <3 u Ploppy :3 XD


Ploppy(Posted 2013) [#13]
No installation problems, I hope...?


Guy Fawkes(Posted 2013) [#14]
Not that I noticed :)


Rick Nasher(Posted 2013) [#15]
Very nice! And I see you you've cured the spacesickeness, many thanks.

One little 'bug' I found: in "Command Ref" the Scancode Picker is no longer working.

Also some small requests/suggestions:
1) would be nice if you could add a version number for each update, so we can see if we're up to date with the latest.
2) a marking for which commands are already active/created/useable.


Ploppy(Posted 2013) [#16]
Hiya,
Version number is on the install window - first pane that you see. Thought I'd start with somthing small to identify - v0.001. That way, if I increase it by 0.001 each time, I can release 999 versions before getting to the release version (just kidding, don't plan to do that many updates at all)....

As for marking commands that are useable, best thing for me is that I let you know on the forum when a command is usable/improved, at the least for the moment.


virtlands(Posted 2013) [#17]
The installer seems to have installed okay.

When I run test6.bb, I get a user lib not found error.



{ Keep in mind that I don't have Blitz3D installed in "C:\Program Files".
I use "C:\Blitz3D\Blitz3D v1.94" instead ... }


Ploppy(Posted 2013) [#18]
Version 0.002 out now (already). New command out,

dxCheckUpdate()

This will check the internet for an update -if a newer version is found, hardwired will inform the user with a text message when dxFlip is called, and the ten seconds following this first call. If this command is not used, no version check will be made. I put this in to enable users to have another method of checking if there is a new version available or not. I have put this command in test6.bb, if you run it you'll see a message if new version available. This however does not replace forum message, that I will still post for new updates.

Example:


See the message on left mid screen... will pop up if a new version found on the net (only after a dxCheckUpdate call)....


Rick, I have a feeling you haven't downloaded the blitz docs pack - if this pack is not up to date, then you will not have the scancode picker. Docs pack is available on the blitz website, under account tab....


Ploppy(Posted 2013) [#19]
Virtlands, did you select your blitz3d folder in the installation program, or leave as program files\blitz3d default??


Guy Fawkes(Posted 2013) [#20]
Ploppy, ur a LEGEND in Blitz3D! My GOD I love this! :D Can't WAIT to see full support for exporting / saving the 3 main 3D formats, B3D, X, & 3DS. Particularly, I could go for full support only for B3D, but I see that others want the other 2 so why the heck not? Lets go all the way since you are anyway it seems! =)


Yue(Posted 2013) [#21]
perfect!!





@VirtLands: Copy files (.dll) to directory sample!!


Rick Nasher(Posted 2013) [#22]
@Ploppy: I actually had some doc pack "b3ddocspatch199" installed.(dunno where I dragged that from).
Also noticed help file colors(blue became white) and font size(larger) had changed. Dunno if this was intentional though.

In reference to my versionnumber remark: I meant in docs and hadn't noticed the versionnumber during install(I was multitasking), but I guess that will do just fine too.

Overal pretty smooth.


Ploppy(Posted 2013) [#23]
New update, nothing much done - have been working on the easier commands to fill up hardwire's vocab, so to speak. Here's the list...

dxStringWidth%(string$) - fully functional
dxStringHeight%(string$) - fully functional
dxCreateBrush(red#,green#,blue#) - fully functional
dxFreeBrush(brush%) - fully functional
dxBrushColor(brush%,red#,green#,blue#) - fully functional
dxBrushAlpha(brush%,alpha#) - fully functional
dxBrushShininess(brush%,shininess#) - fully functional
dxBrushFX(brush%,fx%) - fully functional
dxBrushTexture(brush%,texture%,frame%,index%) - fully functional
dxBrushBlend(brush%,blend%) - fully functional
dxGetEntityBrush%(entity%) - fully functional
dxNameTexture(texture%,name$) - new function, can now rename a texture if so desire, not obliged to 'stick' with filename
dxTextureName$(texture%) - fully functional
dxTextureCoords(texture%,coord_set%) - fully functional
dxTextureWidth%(texture%) - fully functional
dxTextureHeight%(texture%) - fully functional

That's all for tonight. No demo update, no help file changes - but with these extra commands you have even more compatibilty and freedom to create your own tests/demos if you so desire.

See you tomorrow...

Download


siredblood(Posted 2013) [#24]
Thanks again for all your work Ploppy, pretty epic!


Ploppy(Posted 2013) [#25]
More commands....

dxScaleTexture(texture%,u_scale#,v_scale#)- fully functional
dxPositionTexture(texture%,u_position#,v_position#) - not yet working
dxRotateTexture(texture%,angle#)- fully functional
dxEntityAlpha(entity%,alpha#)- working a little - try playing with alpha on pumpkin for example, this works but with others not yet
dxGetEntityAlpha#(entity%)- new command, get an entity's alpha value
dxPositionMesh(mesh%,x#,y#,z#)- fully functional
dxMeshWidth#(mesh%)- fully functional
dxMeshHeight#(mesh%)- fully functional
dxMeshDepth#(mesh%)- fully functional

Renderer has been altered too, colors are more correct now. Test6.bb updated (a little)...

Download


Guy Fawkes(Posted 2013) [#26]
AWESOME!

Hey Ploppy, now that you're on the subject of Meshes, can you add full B3D anim / multi texture support?

Thanks alot!

Keep up the GREAT WORK!


Rick Nasher(Posted 2013) [#27]
Thanks Ploppy, awsome! Can't believe the speed at which your are doing this. Gathered the commands you've published on the forum up till now and it's a pretty huge list(counted 182, correct me if I'm wrong). I dunno how many commands Blitz3D currently has, but I appears you're well on your way of doing the complete rewrite!




LineOf7s(Posted 2013) [#28]
Hey Thundros,

Why don't you just keep asking and asking and asking and asking and asking for the same thing over and over? If you do it nice and passive-aggressively* you'll even be able to deny you're doing it.

*acknowledgement of irony


Guy Fawkes(Posted 2013) [#29]
Ignoring that comment, how's the B3DX9 coming, Ploppy? :)


LineOf7s(Posted 2013) [#30]
You mean apart from the constant communication, the daily updates and the almost 200 commands already implemented (including your bloody shaders)?


GaryV(Posted 2013) [#31]
LineOf7s: Best not to feed the troll.


Ploppy(Posted 2013) [#32]
Gotta say that I was hoping someone else would notice the amount of times GF has been asking for the same thing. I agree with LineOf7s, Guy Fawkes is about as subtle as an aircraft carrier in a garage sale. This must be as least four times(no kidding) GF repeated himself. First time fine - noted; but when insistant such as this it just becomes rude. Sorry Guy Fawkes, but your power of persuasion needs some work - may I suggest a hynotic gif, perhaps this could function...



I am happy to recieve suggestions or requests but I have a good enough memory that once is enough. It's great to have feedback but please remember guys that I'm am under no contract or commitment whatsoever. I work at my own pace and am principally doing this for my own benefit, for my appreciation of B3D and simply because i'm having fun putting this together. If this ceases to be fun, I will let it go, which for the moment I do not intend on doing at all. Let's keep this fun, please. I do take suggestions on board, I really do, and like them - gives me ideas. But if I am not going in the right direction with hardwired for anyone or not working fast enough all I can do is suggest you write your own.


TeaBoy(Posted 2013) [#33]
Ploppy,

Your work is most appreciated, without talented peeps like yourself, most of us wouldn't be able to indulge our game creation fantasy.

:-)


Yue(Posted 2013) [#34]
I would like if possible that installing the lib, examples are not placed in the root folder of Blitz3D, if not in program files in the root and the decls install the lib and examples lib.

Well just about appreciation.

And excellent job.


Rick Nasher(Posted 2013) [#35]
Ploppy, the amount of work you did already is simply stunning, very much appreciated and once you're done it will be invaluable to Blitz3D's existence. This is one of the most exiting and spectacular projects ever to hit this community.

Mainly due to the shear ease of use (everyone who knows Blitz syntax/commands can use it just like before) but now with much more power.


rickychus(Posted 2013) [#36]
* * *

Some of words...
The best way to help is not to get in the way... :D
Patience is a gift that is developed... ^^

* * *

Interesting your work Ploppy, recently discovering your project...
Courage! and keep it up ...
Ricky.-


Ploppy(Posted 2013) [#37]
No update tonight - playing with alpha values - trying to perfect transparency and blending - should be more tomorrow.

Yue, I'll see if I can improve the installer so that you can choose where to install the demo files...


RemiD(Posted 2013) [#38]
Ploppy>>A suggestion :
With Blitz3d, it is possible to create a fake skeleton with fake joints by creating several pivots, one parent pivot and each other pivot child of another pivot, good.
It is also possible to create animation sequences, good.
It is possible to animate the fake skeleton (its fake joints) by playing the animation, good.
It is also possible to set one or several mesh as a child of the pivots of the fake skeleton and if the pivots are part of an animation sequence, the meshes will animate when playing the animation, good.

However, it is is not possible to create a real skeleton with real joints, and it is not possible to set the influence of a real joint over some vertices, and consequently not possible to create skinned animated meshes with code.

The only way i know is to write a new .b3d file and to load the new .b3d file with loadanimmesh(). Doable but not easy, not practical, and slow.

The possibility to create a real skeleton with real joints and the possibility to set the influence of some real joints over some vertices can be really useful to create a custom character mesh or a custom vehicle mesh made with several parts.

(By "real joint" i mean what Blitz3d considers as a joint in a skinned animated mesh)


GaryV(Posted 2013) [#39]
Keep up the great work, Ploppy! You are doing an awesome job!


Yue(Posted 2013) [#40]
The feeling is strange, the only thing I see is that with the work of Ploppy is: I'm not a programmer, and that's frustrating.


Rick Nasher(Posted 2013) [#41]
Hmm, a mysterious update?(just got a msg there's one avail)


Ploppy(Posted 2013) [#42]
Big news!! (well at least for me). I have got alpha blending working in the renderer. Means that now transparency is now possible for entities and surfaces. Check it out in updated demo... sorry ,pumpkin is still there...



New commands too, here we go....

dxEntityPitch#(entity%,global%)- functions, but only in global mode and on meshes for the moment
dxEntityYaw#(entity%,global%)- functions, but only in global mode and on meshes for the moment
dxEntityRoll#(entity%,global%)- functions, but only in global mode and on meshes for the moment
dxFreeSurfaceAttribs(surface%)- new function, will delete any attrbutes given to a surface that will take precedence on entity attributes
dxSurfaceFx(surface%,fx%) - new function, will change a surface's fx value, same params as entityfx
dxSurfaceBlend(surface%,blend%):"dSurfaceBlend" - new function, will change a surface's blend value , same params as entityblend
dxSurfaceAlpha(surface%,alpha#) -new function, will change a surface's alpha value , same params as entityalpha
dxSurfaceWireframe(surface%,enable%) -new function, will render a surface in wireframe, takes precedence to entity's wireframe value
dxSurfacePointframe(surface%,enable%)-new function, will render a surface in pointframe, takes precedence to entity's pointframe value
dxSurfacePixelShader(surface%,pixel_shader%):"dSurfacePixelShader" - new function, can set surface to a chosen pixel shader
dxSurfaceVertexShader(surface%,vertex_shader%) - new function, can set surface to a chosen vertex shader
dxSurfaceColor(surface%,red%,green%,blue%) - new function, sets a surface's global color
dxGetSurfaceBrush%(surface%) - new function, sets a brush to a surface's attribute according to color, fx, blend, shininess, and textures
dxPaintEntity(entity%,brush%):"dPaintEntity" - fully functional, just like blitz3d command
dxPaintSurface(surface%,brush%) - fully functional, just like blitz3d command


It looks as though I have done a lot as far as new commands are concerned, but most of these will probably not serve the majority of users. I decided to give more mesh manipulation power to hardwired than b3d currently has, that is to say the possibility to customise surfaces.

The rules go like this. If you wish, you can carry on according to the old blitz rules, the dxentitycolor, fx, blend will do as normal. if, however you wish to control independantly the surfaces and their attributes you can now with their own surface commands. If you set nothing for the individual surfaces, the renderer will render just like b3d, otherwize a surface command will override an entity setting. You can also remove a surface setting at any time and go back to an entity setting by using the comannd dxFreeSurfaceAttribs(surface%) which will remove all individual surface settings. Hope I'm making myself understood. I will go into it in more depth when I get the docs done (won't be just yet :D)


Ploppy(Posted 2013) [#43]
Sorry Rick, went to eat before updating forum....

Oh yeah, by the way - Yue, thanks for the compliment (and all of you in fact) - but I'm not a programmer either. You know what I do for a living?? I work in a hotel stockroom - nothing to do with programming. If I have got as far as I have with hardwired it is mainly thanks to obsession and my general pig-headedness. Gotta have a hobby, I guess ;D Nevertheless, it's very nice to have these encouragements...


Guy Fawkes(Posted 2013) [#44]
Ploppy, you're awesome! =D


Rick Nasher(Posted 2013) [#45]
Wauw, this is wonderful stuff. I think this is a very good way to implement the extras. (and godda love the ghostly pumpkin. :-) .


col(Posted 2013) [#46]
@Yue


The feeling is strange, the only thing I see is that with the work of Ploppy is: I'm not a programmer, and that's frustrating.



I wouldn't worry about that. Different people work at different speeds, some very fast, some people are not so fast ( I've been working on an editor for well over a year! ). It takes lots of different people for the world to be a good place, so keep smiling, be happy and keep coding at your own speed. :)


Ploppy(Posted 2013) [#47]
Just few new commands tonight, have been working after all...

dxSurfaceTexture(surf%,texture%,frame%,index%) - will atrribute a texture to a surface, same syntax as dxEntityTexture
dxWritePixel(x%,y%,argb%,buffer%) - fully functional apart from on frontbuffer
dxLockBuffer(buffer%)- fully functional
dxUnLockBuffer(buffer%)- fully functional
dxWritePixelFast(x%,y%,argb%,buffer%)- fully functional apart from on frontbuffer
dxReadPixelFast%(x%,y%,buffer%)- fully functional apart from on frontbuffer


Ploppy(Posted 2013) [#48]
May come in handy, just found a nice dx function that may be of use to some, so have just added to hw.

dxTextureSave(texture%,filename$,type)

This will save a texture to a filename of choice

Parameter type is the image filetype of the saved file...

0 -bmp,
1 -jpg,
2 -tga,
3 -png,
4 -dds,
5 -ppm,
6 -dib,
7 -hdr,
8 -pfm

Man, this is just getting tooo big....

Download


Rick Nasher(Posted 2013) [#49]
LOL, no it's actually getting FANTASTIC. Thanks very much Ploppy, this indeed will be very useful. For instance when a texture of an entity has been changed(scorched terrain or building for example) and want to save game state to continue later. Could save lot's of hassle and dazzle, if this the correct way of using it. Could also make damage to buildings in a warzone more permanent without having to put scorch sprites on them, holding unnecessary resources. Very nice.


Guy Fawkes(Posted 2013) [#50]
I agree, EXCELLENT work, Ploppy! =)


SabataRH(Posted 2013) [#51]
I hardly come to these forums anymore but this thread has given new reason too.. :) nice work on this lib and thanks for sharing your progress....

long live b3d!


Rick Nasher(Posted 2013) [#52]
Right now with all these powerful new commands we could already create a little space/planetary demo I guess, but I think we need a dxCreatePivot() command for that right?(wink-wink).


Ploppy(Posted 2013) [#53]
Yes, I will get round to doing that command, promise.

I have done a lot of work on the renderer the last two days, some is noticable, some isn't. Multitexturing now works, this is the major improvement of the day, this you can see in the test6.bb demo, sporting a dot3 normal effect on the planets. Keys 'o' and 'p' change textureblend for this texture, just for fun.

Other stuff....

dxCopySurface%(surface%,parent_entity%) - new command, will create a copy of a surface and assign it to an entity
dxCopyMesh%(entity%): - just like b3d command
dxCreateImage%(width%,height%,frames%) - fully functional, like b3d command
dxFreeImage(image%):"dFreeImage" - fully functional, like b3d command
dxImageWidth%(image%):"dImageWidth" - fully functional, like b3d command
dxImageHeight%(image%):"dImageHeight" - fully functional, like b3d command
dxImageBuffer%(image%):"dImageBuffer" - fully functional, like b3d command
dxCopyImage%(image%) - fully functional, like b3d command

--- stop press, just released another quick update, now the render engine will render correctly depending on distance from camera (furthest drawn first). This will still take entity order into account, which overrides distance priorities.... leaps and bounds.... goodnight all (or morning, depending on where you are...)

Download


Rick Nasher(Posted 2013) [#54]
Wauw, you just won't stop to amaze me..


Rick Nasher(Posted 2013) [#55]
Will this allow multitexturing with alphablending without detroying z-ordering?
For instance a world with multitextured Blitzterrain, with alphachannels on vegetation, sky objects(clouds,hemisphere,sun) and such, which in standard(DX7) Blitz3d apparently didn't work very well?

E.G. BlitzSky (by Krischan), which is very nicely done, but hardly leaves room for anything else to be combined with(of course you can, but limited in my experience and I have high demands LOL).


Ploppy(Posted 2013) [#56]
Yes, Hardwired processes each entity order at a time, from the highest to the lowest. A list is made for each index, and then each list is sorted itself by real distances from the camera - drawing the furthest first; and all this for each camera viewport rendered....


Rick Nasher(Posted 2013) [#57]
Again, and this time with capitals: WAUW.


Ploppy(Posted 2013) [#58]
Sorry, after reflection I will need to work on dxentityorder a bit more.. I think it may act like b3d in this respect - must test...


Ploppy(Posted 2013) [#59]
Hey guys, just tested and found out something AMAZING. Hardwired WORKS with blitzplus!!! In fact my demo test6.bb didn't work at first and I thought my dll was incompatible with B+, but not at all. It turns out that the syntax of Print is a little different in B+ than in B3D. I had programmed the line

Print

in my code, just in order to create a new line. In B3D, this works, but in B+ for the same effect you need

Print ""

Once this line is changed, all runs perfectly!!! I will change this line for the new releases of course.

I will have to work on a new installer, which I will do. I wish henceforth to branch out - why not. The installer could ask if you are installing to B3D, B+ or both and then do the necessary.

I am very happy about this compatibility, mainly because so many more people will be able to access Hardwired and 3d capabilities. And people that do not have blitz can download B+ for free on the blitzbasic site - it's being given away by Blitz Research, meaning basically that anyone that wishes to can use Hardwired. What more proof do you need that my userlib doesn't use any b3d routines whatsoever ;) Sorry, but this news I just had to share....

I have decided to compile a demo of test6.bb, on both Blitz compilers. This is available on the link below, I have tested and both work fine (at least for me they do). You will notice in the download 2 versions of the same program, test6_blitz3d.exe and test6_blitzplus.exe. Please note the difference in filesize, significant indeed. This is because compiled blitzplus programs do not have all blitz3d dx7 routines resident in them.

Check out demo, see for yourself...
Download demo!

UNBELIEVABLE!!!


Ploppy(Posted 2013) [#60]
Not much tonight, just the following command, haven't had much time to work on it...

dxCopyRect%(src_x%,src_y%,src_width%,src_height%,dest_x%,dest_y%,src_buffer%,dest_buffer%)- works fully on textures, images and backbuffer, still nothing works with frontbuffer for the moment

test program incorporates a test for dxCopyRect (patch on planets, for example - also press Return for dxCopyRect mayhem), watch it in all its splendour if you dare....


Wolf1870(Posted 2013) [#61]
If possible, please also dxCopyRectStretch% (src_x%, src_y%, src_width%, src_height%, dest_x%, dest_y%, dest_width%, dest_height%, src_buffer%, dest_buffer%) - Ploppy, Great job!!


Rick Nasher(Posted 2013) [#62]
Don't worry Ploppy. Wouldn't mind living without installer until final release. Actually prefer it, gives bit more control, but please do what suites you best(we're not worthy) ;-)

Even a single command is a welcome addition.


LineOf7s(Posted 2013) [#63]
Just wanted to make a quick post to check to see if I'm not missing something significant, regarding the news that Blitz Hardwired is confirmed to work with BlitzPlus:

* Blitz-friendly language syntax
* A later and arguably more advanced version of Blitz than Blitz3D (eg smaller .exe sizes, built-in GUI capabilities etc)
* Free (language and userlib)
* Blitz3D-style 3D commands
* DirectX 9

For hobbyist peeps on a little-to-no budget who develop on and for Windows and care not for cross-platform stuff, why would one NOT be jumping out of one's pants for this?

Just thought I'd ask, since it seemed to slip past unnoticed.


Ploppy(Posted 2013) [#64]
Like the point about GUI, it's true that b+ incorporated windows/gadgets, etc. In quite a lot of respects, it's probably better to run HW on B+ than on B3D although both of them are compatible. Bit ironic really since B+ is older.


xlsior(Posted 2013) [#65]
Bit ironic really since B+ is older.


Except it isn't:

B3D was released in 2001, Blitzplus is from 2003.

(Although BlitzPlus is similar to BlitzBasic / Blitz2D, which was released in 2000... )


GaryV(Posted 2013) [#66]
The compiler was also rewritten for B+ so some core things are faster in B+ than in B3D.


Ploppy(Posted 2013) [#67]
Ah, okay, I always thought B+ was older. I guess I was getting it mixed up with Blitz2D...


Yue(Posted 2013) [#68]


Other model for You :D

https://dl.dropboxusercontent.com/u/39767349/Robot.rar


Rick Nasher(Posted 2013) [#69]
Nice, but I think it feels a bit naked. :-)


Ploppy(Posted 2013) [#70]
Looks good, I like the model. Would like to be able to animate, but do not yet have the code to do so, may be in a month or so - we'll see...

New update out, not much tonight, no new commands. However have changed renderer a bit - for the moment, I have disabled my z-order sorter for I have a few unexpected calculation problems. I will sort that out.

To make up for it, I have updated the dxLoadXMesh so that you can play with it's alpha element (couldn't do that before, I had badly configured it). Update out, should now be able to render a texture using it's own alpha values for transparency (see demo)...


Yue(Posted 2013) [#71]
For this weekend would be skeletonized and lively. I would like the official model of lib.

Skeletonize try this afternoon, but I am not sure I have not much time at work.







rickychus(Posted 2013) [#72]
Hey Ploppy,

REALLY good news that your project is compatible with B+.
I tell you I was thinking to use B+ on a school project with students (if all goes as I hope :D).
It would be really great to add your project in the future when you've completed... It will be quite a challenge :D.

Keep it up! Do not lose the motivation!

* A suggestion for when you have time:
* A simple page/blog official of your project, where you can document everything that you think important.

Ricky.-


Ploppy(Posted 2013) [#73]
I'd be honored to think that my dll could participate as a tool in teaching students (if I ever get it complete enough ;D ). This thought alone gives me a lot of motivation.


Why0Why(Posted 2013) [#74]
Hey Ploppy, just wanted to add this this is great work and I think that it is awesome that you are doing this!


Rick Nasher(Posted 2013) [#75]
Ploppy, can it be that the current z-order issues are inherited from DX7 into DX9?


Ploppy(Posted 2013) [#76]
No, actually I have been doing a bit of research about this. Okay, I can improve the z-order rendering technique in some respects compared to blitz, for I'm not far from being able to render from back to front whilst taking into account the dxentityorder index. However, I have discovered that the dx system, and other 3d engines also have a lot of difficulty rendering transparent objects that overlap each other. You need a lot a lot more processor time to separate the two. A z-buffer will automatically sort you out for rendering colours to your backbuffer/wherever. You can even tell directx to render objects in any order you like, and directx will only render objects if they haven't been yet rendered at the depth or below. That's the beauty of the z-buffer, it holds a record of every rendered object, and updates itself with every new object drawn. This unfortunatly is only viable with opaque meshes. With transparent meshes, the z-buffer will only be able to indicate well if the current rendered object does not overlap with one already rendered onto the current frame.

Please check out http://en.wikipedia.org/wiki/Painter's_algorithm for a more detailed and clear explaination.

I'm working on the z-buffer, will release more soon...


Rick Nasher(Posted 2013) [#77]
Thanks for the explanation, very interesting.
Hope you can pull it off.


Ploppy(Posted 2013) [#78]
New commands

dxSetFilters(max%,min%,mip%) - will set direct x filters to pixel blending defaults for calculating texels. Will explain later (wife angry)
dxRenderToTexture(texture%) - You can now render to a texture (see example)
dxRenderToScreen() - You must use this command to tell hardwired to reuse screen...

Set texture flag to 128 to signal hardwired that texture will be used as a rendertarget, otherwize this will not work (see test6.bb for demonstration)

Later...


virtlands(Posted 2013) [#79]
Hi plop, just tried your Blitz_Hardwired demonstration, (from the ChipMunkPlayer link)
and it works fine, at 13fps.

The place where I use the internet installed this dumb program recently called Barracuda Web Filter,
and it's annoying because it detects so many useful things as "viruses" even when they are not.

It reports that about 20% of everything on sourceforge.net is a virus.
It reported that your Hardwired_demo is a virus, and it wouldn't let me download it.

So, I used a proxy technique to download your file.

Its quote : " The URL: http://chipmunkplayer.free.fr/Hardwired_demo.zip was blocked
The link you are accessing has been blocked by the Barracuda Web Filter because it contains a VIRUS.
The name of the virus is: Win.Trojan.Vbiframe-38 "


I guess the simple solution is to encrypt the contents of the zip so that BWF can't scan it.

I can continue using proxies to bypass BWF.
----------------------------------------


virtlands(Posted 2013) [#80]
=== update for Mr. Ploppy ===

I think there is indeed a glitch in your setup.exe .

I finally got test6.bb to run though. Had to do an unusual experiment, which confirms the following :::

If you installed it in "C:\Program Files\Blitz3D" then it behaves, and it gives you an updated DLL,

otherwise, if you install it in some customized directory such as "C:\Blitz3d\Blitz3D v1.94"
then it ignores you and doesn't give you a DLL at all, (but it shall give you a DECLS).

[This screenshot shows the new DLL, & includes dSetFilters; the old DLL didn't have it.]




My only hunch is that setup.exe is hard-coded to like "C:\Program Files" more than other directories.

Thank goodness for the everything machine, which allowed me to quickly find your files.
-- Everything --> http://www.voidtools.com/


Rick Nasher(Posted 2013) [#81]
That's why I don't like installers or .exe files..
Anything can come down with these type of files, so had to make an exception to my policy for this. ;-)

I must mention that on one occasion the installer for this one froze during installation, which was bit odd, but happened only once and in an early version. It disappeared when I retried though.

I tend to be a bit paranoid about these things, which kept me safe so far, even though I like to experiment. I will *always* prefer a good ol' zip over installers. So if Ploppy would present the option for downloading a zip or installer that be great, however that might be bit much to ask cos he's quite busy; just look at what he's done sofar already, half way rewriting Blitz3d!


virtlands(Posted 2013) [#82]
...It's time to update your installer.


Ploppy(Posted 2013) [#83]
I am at work for the moment, so I can't do much with hardwired now. I have read your comments and what I can say is that I have had a bit of trouble with my userlib and my antivirus in the past as well. I have avast antivirus which I pretty much swear by - it will give me a warning for hardwired when I try to install it, saying that this file is a threat. There is nothing harmful in my dll (promise), but antiviruses (antivirii??) will flag up potential threats as well. An antivirus will scan any exe or dll file it doesn't yet know to see what kind of calls it makes to the operating system. If it doesn't like the kind of calls it makes, the av will consider it risky. I think the reason that antiviruses don't much like hardwired for the moment is that I have inlclded the command dxCheckUpdate(). This is the only command that accesses the internet in any way, and does so to check the current version availale on the net. The antivirus sees that as a potential threat because you can do a lot of things accessing the internet if you want to; if you were malicious and clever with your program you could use the net for exmple to send personal info gathered off the host machine to another pc. An antivirus generally isn't clever enough generally to see exactly what a program does (far too complex that would be). However, looking at the kind of calls it make to the operating system gives it an idea of the way the application could go and the kind of access it has to the host machine's lower level functions. Direct hardware access, or registry editing api calls would also be considered risky.

In any case, I think I will take out this update routine. It didn't take me long to make, so it won't upset me to take it out. I think after that, it should be more welcomed by antivirus software. I was probably being a little too clever with hardwired there. For my next update, the command will most likey vanish, and you'll just have to see if there is an update by checking the net from time to time.

As for the installer, I take your points on board, and I will check them out. But as Rick says I am quite busy at the moment with HW, work, family stuff and christmas preparations so this is not my priority (sorry). The thing is that using an installer for me is useful, as I can get a new version bundled up in a matter of two minutes. The script is already there, all I need to do is recompile it with the installer app and the new app exe is ready to be uploaded to my site. It is partly for my ease of use that I decided to go this way, but also eventually to make it easy to install for people that are not so familiar with blitz3d and the pc file system as we are.

I use innosetup, by the way as an installer. It is a great tool, have rave reviews and is very powerful (and free of charge, that's what is really interesting!!). If it is not giving you the results you wish for, it is probably not innosetup's fault but the script I fed it. I haven't refined the script yet to make the installation faultless, but I will work on it.

You may not get a new update tonight (it six o'clock in the morning here in my part of the world at the moment), as I am working quite hard in getting some equations nailed down - takes time, research and far too much thought (thought is a very bad habit to get into for my general wellbeing but there we go). I am currenlty working on two things - sprites and landscapes, and I hope to get them out soonish. I will quickly follow up sprites with a particle system for I have a few good ideas of which direction to take with these. Watch this space...


Ploppy(Posted 2013) [#84]
Virtlands, 13fps?? Really?? Was it this slow before I added the dxCopyRect or dxRenderToTexture code 'cos 13fps is really bad. If you really get such a low fps, it kind of suggests that my userlib isn't as good as that, and somewhere there is a routine that needs some serious optimising. Personally I'm getting about 250fps.. please confirm or is this a typo..?


Rick Nasher(Posted 2013) [#85]
Round here it's on avarage 99fps in Vista 32bkit(original OS of laptop, am using dual boot for Win7 64bit and didn't kick off Vista yet LOL).

Also noticed a strange thing of which I don't know if it's a glitch in my OS:

Invisible files in Windows Explorer:
I while ago I expirimented with the code and modified the file
"C:\Program Files\Blitz3D\Samples\Blitz_hardwired\test6.bb"
Then saved it as "test6.1.bb" in the same directory, which works and reloads fine using the fileselector from Blitz.

But when I check that same location using windows explorer then it can't see this file even though I'm using the exact same path.

Does anybody have a clue?


Ploppy(Posted 2013) [#86]
I think this might be the answer to your mysterious happenings...

http://www.vistaheads.com/forums/614507-post2.html


Rick Nasher(Posted 2013) [#87]
Indeed likely that has something to with that(thought so myself), but not shcwing in Program Data too, even with normal admin rights nogo. Tried built in admin account by entering in elevated CMD window: net user administrator /active:yes
But nothing shows up.

Was even thinking alternate datastreams, but would really be odd.
Anyway this is off topic(before I get beat up) :-) .


GaryV(Posted 2013) [#88]
Did you look in your virtual store?

Blitz3D does not ship with a proper manifest file to control UAC prompts, so you can't write to c:\program files\. Samples and projects you are working with should not be installed there.

When working with legacy apps like B3D, UAC Trust Shortcut may be of help.

UAC Trust Shortcut 1.0 (x86)

UAC Trust Shortcut 1.0 (x64)


Also, UAC Controller Tool may be helpful

UAC Controller Tool v1.0


Rick Nasher(Posted 2013) [#89]
Yep found it here:
AppData\Local\VirtualStore\Program Files\Blitz3D\Samples\Blitz_hardwired\

VirtualStore apparently was the location. Very interesting, didn't know it worked that way. Learned something new today, many thanks. :-)


virtlands(Posted 2013) [#90]
A recent review shows that test6_blitz3d.exe [from your Hardwired_demo]
does run around 36 fps on my laptop, {1.6 GHz dual-core Centrino}

Now I remember, I was previously converting a video to MP4, and running your test simultaneously,
which resulted in a burdened CPU that could only display 13 FPS at that time.
Scared you, didn't I?
-------------------------------------------------------------------

Some ideas for Ploppy: ======


Instead of installers, send us your completed files through DropBox shared folders.

(EXEs and DLLs that are troublesome for antivirus programs may be zipped & encrypted ahead of time.
Antivirus programs cannot read encrypted Zips.)

https://www.dropbox.com/help/274/en
http://www.howtogeek.com/howto/16310/user-guide-to-dropbox-shared-folders/
https://www.dropbox.com/home

Changes to the contents of a shared folder are synced with other members almost instantly.
This way, we become like one large hive, or collective, being synced and updated by - you.
-----------------------------------------------------
... I have included the command dxCheckUpdate(), for purposes of updates and version checking..."

Another idea I had was that you could package the updater as a separate program,
and perhaps encrypt it first, so that it won't trigger alarms.

The "updater" shall read the targeted program to determine if it may be updated,
(by checking its date/time, CRC or any method you choose).

Your "MainProgram.exe" can check for the existence,
of "Updater.exe", and if the updater exists then call it like this ::

ExecFile( "Updater" )
Delay(900)
END
;;

{"Updater.exe" may be encrypted ahead of time, by any method you choose,
rendering its code to be mush and therefore unreadable by
Web Filters and antivirus programs.
The "MainProgram.EXE" may decide to call "Updater.exe", but in this case,
it must decrypt it first before it runs it. }
------------------------------------------------
As a last resort you can experiment with dynamic code encryption
whereupon a portion of your EXE is encrypted

(and is decrypted at the last moment before running).

The part to be encrypted is dxCheckUpdate(), of course.

I don't have experience with dynamic code encryption but you can read
and learn it.

-- Dynamic Code Encryption as an Anti Dump and Anti Reverse Engineering measure
http://syprog.blogspot.com/2012/03/dynamic-code-encryption-as-anti-dump.html

-- How to hide a string in binary code?
http://stackoverflow.com/questions/1356896/how-to-hide-a-string-in-binary-code

-- executables with critical plain-text components?
http://security.stackexchange.com/questions/30473/does-a-binary-executable-have-to-have-some-critical-plain-text-components

-- Is it possible encrypt an exe file?
http://www.xtremevbtalk.com/archive/index.php/t-285786.html
http://www.hackcommunity.com/Thread-Encrypting-an-exe-file

-- How to encrypt a c++ source code
http://www.cplusplus.com/forum/windows/25528/



rickychus(Posted 2013) [#91]
Hi,
I have no problems with the demo "http://chipmunkplayer.free.fr/Hardwired_demo.zip" and no side effects.

Tested on:
Netbook: With CPU AMD e450 with ati 6320 and Win7 32bit to ~140fps (~180fps WinXP 32bit)
Desktop PC: With CPU i7 3770 with ati 7850 and win7 64bit to ~1060fps (~1290 WinXP 32bit)

Ricky.-

PS: One difference :). In the example with B+ (center of screen) there is a teapot with texture and example of B3d is not... Ploppy I catch you! :)

Update: I have noticed that B3d example is slower than that of B+ (only Win7), for some reason (~20/~60 fps, fps marker is not very stable).
Maybe this information can serve your Ploppy.-


Yue(Posted 2013) [#92]
and this, the robot skeletonized, soon I will make a small animation.



https://dl.dropboxusercontent.com/u/39767349/RobotE.rar


rickychus(Posted 2013) [#93]
Hey,
What program are using Yue? Any tutorial you refer?
really great model!
Ricky.-


Mikorians(Posted 2013) [#94]
Wonderful work, Ploppy!

I can't even imagine programming in Dx9 in C.

I'm a little 'oldskool' and have no idea what a Dropbox even IS.
-This would EXCLUDE my participation -VirtLands- Sorry!

a. (1) Zip file/installer vote from me.
b. Yue's articulated (assumed standard) b3d file - also unarticulated
-distinction of loadanim vs load -need to access submeshes in unarticulated
as per b3d standard with loadanim.
c. Joystick rumble
d. Any other relevant b3d multimedia in/on 2D/3D

Looking forward to the future!
Remember all those eager school children - we've all been there.

Happy, leisurely, lustrous Hollidays Ploppy!
Keep up the insanely fine work! O.o
We're all just itchin' for your return next year!


Guy Fawkes(Posted 2013) [#95]
^ What he said


Rick Nasher(Posted 2013) [#96]
Dunno if you're serious Mikorians but just in case:
Dropbox is a shared virtual directory in the cloud, making files accessable from anywhere on any device. But zips (or installers if Ploppy prefers) are fine by me too(at least for this project lol).

Joystick rumble is already possible ( I've put up some collected stuff for download on the forum about this little while ago) and probably still works in combination with DX9 as it is not using any gfx routines, only input, but I'm not sure. Perhaps Ploppy can shine a little light on that one.

As with all the extra stuff; would be nice to have build in, but already happy if DX9 gets completed, cos it's a fantastic job if he can pull it off.


John Blackledge(Posted 2013) [#97]
Installed ok, but....
I really want to try this, but it won't function in _any_ folder.

My original is E:\Blitz3D - no joy.
I copied everything to C:\Program Files\Blitz3D - no joy.
I copied everything to C:\Blitz3D - no joy.
Each time, "Userlib not found".

Any hints?


John Blackledge(Posted 2013) [#98]
Sorry, as above, but forgot to mention: running on XP.
So no virtual drive problems.


virtlands(Posted 2013) [#99]
Please run Ploppy's [test6.bb] Setup program first, (if you haven't already)
--> http://chipmunkplayer.free.fr/setup.exe
It shall set up the corresponding DirectX Blitz3D Help update.


Mikorians(Posted 2013) [#100]
Thank you for your understanding reply, Mr. Nasher!
And for including the ff link.

But, uh... Yeah... We don't 'Cloud' anything around here.
Call us old-fashioned.


Rick Nasher(Posted 2013) [#101]
Old-fashioned and more safe, well at least if they don't use the age old backdoors in Windows.. ;-)


John Blackledge(Posted 2013) [#102]
Thanks, VirtLands, but again no luck.

Installation is to C:\Program Files\Blitz3D\samples\Blitz_hardwired
DLL and decls are in C:\Program Files\Blitz3D\userlibs

Still the same error message.<sigh>


virtlands(Posted 2013) [#103]
Copy this DLL - https://www.dropbox.com/s/lg1p4gf04tp79dt/BlitzDX9.dll

into your C:\Program Files\Blitz3D\samples\Blitz_hardwired folder.


Ploppy(Posted 2013) [#104]
Hello all, been a while,
I have taken out the dxCheckUpdate for the moment, so if you want to find out if there is a new one available, you'll have to go back to the old method at least for the time being, looking on the forum.

I have been working a lot on writing to different buffers these past few days, tying up loose ends if you like. It is now possible to draw text, lines, ovals, rects to the backbuffer, frontbuffer, texturebuffers and imagebuffers - just like you would in blitz3d. CopyRect, Read/WritePixel works with all kinds of buffer as well.

Please note the frontbuffer access (reading as much as writing to it) is terribly slow. I have included all access as you would find in b3d to continue my wish for as much compatibility as possible, but you will find that frontbuffer access is not a viable method for smooth running of a program. All other buffer accesses work smoothly and fast, but mainly due to the directx9 and graphics hardware architecture frontbuffer manipulation is very impractical. I will try to improve my routines for frontbuffer access, but do not expect any miracles. My advice to you is to avoid frontbuffer reading or writing. For most good programming (especially game programming), you don't need to acces this buffer anyway. Everything can be done with the backbuffer, and then flipped.

New test7.bb out, just a modif of the test6.bb with a nice example of dxRenderToTexture - just a good proof of HardWire's power. Move camera towards cube in centre of screen to see what I mean, pressing space will currently render all line, rect and oval commands directly to texture tex, check it out.... Smooth!!

New stuff...

dxCreateSprite%(parent) - fully functional
dxSpriteViewMode(sprite%,view_mode%)- not yet fully functional
dxScaleSprite(sprite%,x_scale#,y_scale#)- fully functional
dxHandleSprite(sprite%,x#,y#)- fully functional
dxUseDirectX11(enable%)- dormant, have included this command to prepare my code for future development - ignore this for the moment as will do absolutly nothing
dxDirectX11Used%() - see above
dxSeedRnd(seed%) - hardwired equivalent of SeedRnd
dxRnd#(low#,high#)- hardwired equivalent of Rnd
dxRand%(low%,high%)- hardwired equivalent of Rand

As you can see, I have included some random functions. Thuese work just like the Blitz3D functions. You may ask, 'why did he bother doing this, the blitz3d commands did exactly the same job'. It is true, and so does blitzplus. The problem is that blitzplus and blitz3d use different algorithms for the same random seeds. So you will get different values for the same program run on each compiler. This is why rickychus saw different positions for the teapots between the two versions of the demo. If however you use my own random functions on either B3D or B+, results will be identical for any seed.

I probably have done other stuff too, but can't remember it all, I still have got a lot of loose ends to tie up.. ;D

Due to popular demand, my userlib updates are being distributed in a zip file. Installer is on hold - will be back for release version (if I ever get there...)

Download demo here!

Updated userlib here!


virtlands(Posted 2013) [#105]
I was able to download the updated userlib link, but was not able to download the new Harwired demo link.

I received the same virus warning as last time. The Barracuda is now also blocking any proxy attempts too.
--
If however you use my own random functions on either B3D or B+, results will be identical for any seed.
So, by that you mean that your random numbers are the same as the Blitz3D random numbers.
How did you discover the algorithm for Blitz3D random numbers?


Rick Nasher(Posted 2013) [#106]
I am stun. The quality of this stuff is just too good. This can be used I so many ways: icing on wings, liquid effects on objects, blood/damage, just fantastic work Ploppy!

Can't believe so many exiting things happening after such a long wait/quiet period. I think Mark should hire you guys(if he can afford you lol). I bet even he's exited, time for him to speak up hehehe.

Question for you:
I noticed that in the beginning you were accidentally mixing some stuff of DX9/11, does this mean DX11 would also be feasible, or is this a whole different beast altogether/what is the difference?(sorry, just haaad to ask ;-)

BTW: worked fine for me VirtLands.


Ploppy(Posted 2013) [#107]
Yes, DX11 is totally feasable, and the gooooood thing is that once my DX9 routines are done, a DX11 version will be so much easier to incorporate. The structure of my code will remain the same, but the calls will be made to directx11 instead of the dx9 equivalents. I plan to release the DX11 version in the same userlib. My aim is that the dxUseDirectX11 will signal hardwired to do such. So, the importance will be to call this commande before a dxGraphics3d to avoid any clashes between directx versions, which would of course result in a horrible crash. Can't be greedy with directx, it's either one or the other- put both on your system at the same time and there will be bloodshed for they are not on good terms.

Virtlands, I haven't had any info on Blitz3d's random number generator. I'm sure that my algorithm produces completely different rersults than both b3d and b+. My aim isn't to match either but to have a random number generator that both compilers can use - meaning that the result of any calls made will be the same. My algorithm is by the way a variation of the mersene twister algorithm for anyone that is interested.


John Blackledge(Posted 2013) [#108]
Ploppy,

Still the same problems here, except that now with your new files test6_blitz3d.exe gives an error message of 'This application has failed to start because d3dx9_43.dll was not found. Reinstalling the application may fix this problem'.
...followed by 'User lib not found.'

Just installed all you new files (mentioned above) over the old files.
Still the same error message.

This is not an installer problem, it's about Blitz3D not being able to find the DLL. But which DLL?


Ploppy(Posted 2013) [#109]
Hi John, I know this problem, I came across it a while ago. Your directx 9 is not up to date, quite simply. Download it or reinstall with windows update....


Ploppy(Posted 2013) [#110]
Rick, BTW I really don't get the impression the Mark is even aware of what's going on. I would however like the he did, and even better, that he approves of this. ALthough I myself and quite excited of how hardwired is going, I still feel as though I am 'standing on the shoulders of giants' so to speak. After all, if Mark hadn't had the forethought of including a way of being able to let users make their own userlibs to extend blitz in any which way they choose, all this would be irrelevant. Respect, Mr Sibly.


Rick Nasher(Posted 2013) [#111]
Very, very interesting. This would put Blitz3d/plus right back on the map at where it used to be: groundbreaking, innovative, smart, flexible and a massive timesaver for rapid game development. Right where it should be.


virtlands(Posted 2013) [#112]
Well Ploppy, I was finally able to download your Hardwired_Demo using this web proxy:
https://www.filterbypass.me/


virtlands(Posted 2013) [#113]
Update: Got test7.bb running just fine, @15 fps
( I had to remember to copy BlitDX9.DLL into userlibs. )


John Blackledge(Posted 2013) [#114]
Ploppy, as you advised, I downloaded and installed the latest Dx9C from MS and rebooted.

I made sure that your latest DLL is in Blitz3d\, userlibs\, and Blitz_hardwired\ folders - to be sure.

No joy - all the same error messages I'm afraid.


virtlands(Posted 2013) [#115]
...progress...sweet...progress


John Blackledge(Posted 2013) [#116]
This is the latest BlitzDx9.dll from Ploppy's release.zip.

Now also copied into the \bin folder (as well as everywhere else).

And _still_ the same error message.
It seems that the first dx call in the code causes this error.
The decls is in \userlibs....
Why can Blitz3D NOT find this dll?


John Blackledge(Posted 2013) [#117]
Hey I just noticed, it fails on dxCountGfxModes3D.
That means it's already executed some calls in the dll.
Is that call now missing?
But I _have_ installed the latest dll that you posted. (?)


rickychus(Posted 2013) [#118]
Houston have a problem! :)

Hi Ploppy!
I tell you that I have been testing the link "Updated USERLIB here!" and does not work for me. I put "BlitzDX9.dll" and "BlitzDX9.decls" in directory "userlibs" on B+. I have not managed to work any example... Have I forgotten to do something?
I quickly looked at the examples (test.bb, test2.bb, ... test6.bb), I have not seen any reference to "include" files...

The link "Download demo here!" Everything works fine... ~110fps in both examples.

See you!

PS: heee... Talking about "see"ing :)

Behind the camera, in the example of B3D, there is a teapot that is jealous of her sister in the example of B+. She said she feels naked... :)
Ploppy I catch you! Again! :)

Update:
A few minutes later, I'm still poking...
I canīt find the include files "includes\cam_generic.bb" and "inludes\gfx_generic.bb". Your updates are incremental? I need to install previous versions?
I'm just trying with B+.

Sorry if my questions are silly or already been spoken, I have not had time to read all :(.
Sorry about my English is limited... Apologize if to read, hear a cat scream occasionally. I do my best :)


Ploppy(Posted 2013) [#119]
John, try running this program in b+, b3d...

print filetype("c:\windows\system32\d3dx9_43.dll")
print filetype("c:\winnt\system32\d3dx9_43.dll")
waitkey
end

run the program, if it outputs two zeros on the screen, it means you don't have the latest DirectX on your system.


John Blackledge(Posted 2013) [#120]
d3dx9_43.dll is NOT there.
(d3dx9.dll IS there.)
That's after a fresh download and install from MS.
Houston we have a problem.


GaryV(Posted 2013) [#121]
John: Are you on a 64-bit version of XP?


rickychus(Posted 2013) [#122]
John,

You can search and download the "d3dx9_43.dll" file, and then put it in the same directory where your project/example, or put it where Ploppy said. Sometimes, Google is your best friend.

Ricky.-


virtlands(Posted 2013) [#123]
Here you go.... This is the one from 1943. Hope it works.

d3dx9_43: https://www.dropbox.com/s/thphb6g24gzcmon/d3dx9_43.zip


Ploppy(Posted 2013) [#124]
rickychus, you are completely right, I forgot to put the include files into the zip archive, the texture files and models in all my haste. This is one good reason why I liked using the installer. I have now republished the last update to include these. Should work fine now (use same link above)...

Working on pivots, parenting and local coords, and I'm getting there - it's about time I got that sorted out for good, no update tonight nor tomorrow in my opinion. But as soon as sorted, you should have a lot more freedom with model manip....


John Blackledge(Posted 2013) [#125]
GaryV: XP Home 32-bit

Ok - next chapter....

Downloaded and installed Ploppy's latest.
Put D2Dx9_43.dll in the folder. (Thanks, Virtlands)

test6_blitz3d.exe ran - Yay!

test6.bb causes 'Cannot create direct x device'
followed by Memory Access Volation on dxCreatePixelShader.

test7.bb gives 'Function dxCreateSprite not found.'


Ploppy(Posted 2013) [#126]
Have you coiped the updated dll and the decls files to your blitz3d userlibs folder??


John Blackledge(Posted 2013) [#127]
The ones that come from your installer automatically go in there, don't they?
They have a date of 05/12/2013.


John Blackledge(Posted 2013) [#128]
I've deleted C:\Program Files\Blitz3D\samples\Blitz_hardwired
and reinstalled from your latest installer.

Put D2Dx9_43.dll in that folder.

And I still get:
test6.bb causes 'Cannot create direct x device'
followed by Memory Access Volation on dxCreatePixelShader.


GaryV(Posted 2013) [#129]
What graphics card do you have? Apologies if you already answered this.


Rick Nasher(Posted 2013) [#130]
@John Blackledge:
Weird, I don't have these issues. Only things missing were some of the directories. I noticed you mentioned:

>I really want to try this, but it won't function in _any_ folder.
>My original is E:\Blitz3D - no joy.
>I copied everything to C:\Program Files\Blitz3D - no joy.
>I copied everything to C:\Blitz3D - no joy.
>Each time, "Userlib not found".

Perhaps something to do with environment variables, such as path etc: Did you just copy Blitz3d to the standard location or did you do a proper reinstall?
If the latter then copy content of my current working set of files (link here) to a directory of your choice, such as "My Documents" and copy
BlitzDX9.decls and BlitzDX9.dll to "C:\Program Files\Blitz3D\userlibs\"

Make sure to run all with admin rights and check if security S/W isn't blocking anything.
Also: did you check if you have any other dll's in your userlibs folder, and if so are they working and/non conflicting?
Lastly you may want to check your DX installation using dxdiag.exe(just enter in CMD window) and your videocard specs for DX9 support.


virtlands(Posted 2013) [#131]
You can get your updated DirectX from here::

http://download.microsoft.com/download/1/7/1/1718CCC4-6315-4D8E-9543-8E28A4E18C4C/dxwebsetup.exe


John Blackledge(Posted 2013) [#132]
@VirtLands: Thanks, already done that.

@Rick: I've checked DxDiag - all is working correctly
Thanks -
I put your release folder in \Blitz3D.
Copied the decls into \userlibs
and made sure that all the dll's were in all in
\Blitz3D, \uselibs, \release folder.

As before,
test7.bb causes 'Cannot create direct x device'
followed by Memory Access Volation on dxCreatePixelShader.

Gfx card is nVidia GeForce 6200.

<sigh>


Guy Fawkes(Posted 2013) [#133]
I'm guessing that your Graphics card is out of date & perhaps does not support pixel shaders?


John Blackledge(Posted 2013) [#134]
DxDiag has succesful test on Dx7,8,9.

with BlitzDX9.dll 'Cannot create direct x device'????


Guy Fawkes(Posted 2013) [#135]
Here are some steps I found on microsoft's forums about this particular problem:

1. Check the version of Direct X on your system :- start -> run -> dxdiag
(should be Direct X 11)

2. Upgrade(download) Direct X from the link - http://www.microsoft.com/en-in/download/details.aspx?id=35

3. Run it

If Direct X is 10 or less - it needs to be upgraded
If it's 11 & you are still getting the error - it's corrupted - so just overrun the file.

Also, make sure to check for updates to your graphics card from your graphics cards' official support website. This could also be the problem.


I added that last part.


John Blackledge(Posted 2013) [#136]
Ok, I will try all of this.
(bedtime now)
But my thought is: how do we get all of our users to do this?


Guy Fawkes(Posted 2013) [#137]
Have the installer ask whether or not they want to use the DirectX runtime installer. From what I've read, it CAN be used in commercial as well as non-commercial programs.


col(Posted 2013) [#138]

Have the installer ask whether or not they want to use the DirectX runtime installer. From what I've read, it CAN be used in commercial as well as non-commercial programs.



DirectX is a free technology, MS happily give it away but it does have some conditions ...

Somewhere within the terms and conditions of DirectX it's REQUIRED that you supply, test and install ( if necessary ) at least the version of DirectX that's needed for your application, preferably the latest version at the time you release your application.

For us devs I don't see why linking to the latest version via the 'net isn't ok, and I've done this myself. But when passing to the public you are supposed to supply and run the complete directx installer, ( binaries and source examples are supplied by MS in the SDK ) during your own installation. But who really does this apart from the BIG companies?

On to the issue with the crash on John Blackledge machine, there could be many reasons, and no doubt it's a silly one, but still you gotta to do the basics first...

1. Ploppy should be linking with the release versions of the sdk binaries. This is required to make sure any code he writes uses the DirectX End User Runtimes on the users machine ( It's unlikely they will have or want to have the SDK installed, unless they are a dev of course :) ). For release don't link to and/or supply the debug dlls/libs - this is in fact in violation of the terms and conditions. I believe Ploppy is linking to the correct binaries.

2. John Blackledge should download and install the DirectX9.0c End User Runtime installation only from MS ( from Guy Fawkes link or the link from Virtlands or directly from here ), and also update any gpu and monitor drivers.

Only after these basics have been done should Ploppy look into his code.

DirectX 7,8,9,10 and 11 can all co-exist on the same system without fear of conflicts and errors.


Ploppy(Posted 2013) [#139]
Think I'm gonna have to release this in both installer version AND zip file to please all.

Yes, by the way, my dll does not contain the debug versions of directx or any reference to it - it did but I got rid of that a good while ago...

the '43' is like a revision library for functions/methods that have been updated/corrected. It is in some respects a patch for directx. With each new update, a new d3dx9 is released. The latest version is the 43, so for me,


Ploppy(Posted 2013) [#140]
Think I'm gonna have to release this in both installer version AND zip file to please all.

Yes, by the way, my dll does not contain the debug versions of directx or any reference to it - it did but I got rid of that a good while ago...

the '43' is like a revision library for functions/methods that have been updated/corrected. It is in some respects a patch for directx. With each new update, a new d3dx9 is released. The latest version is the 43, so for me, if dx is saying that it can't find it, it's that you do not all of the latest version installed....


John Blackledge(Posted 2013) [#141]
Ok - I updated my nVidia drivers
I updated DirectX drivers.
I updated Dx9 drivers.

As before,
test7.bb causes 'Cannot create direct x device'
followed by Memory Access Volation on dxCreatePixelShader.

Right - thanks for all the help, but I'll leave you guys to it now.


Guy Fawkes(Posted 2013) [#142]
Your computer just hates you :P XD Just kidding. I'm SURE it's a DirectX issue of some sort. Try looking up more details about the error online.


Wolf1870(Posted 2013) [#143]
Hey John. Copy the BlitzDX9.dll of Ploppy in the folder where you have installed the test program. the dll need not to be in the userlibs, can also be in the program folder. is an experimental value...


col(Posted 2013) [#144]
@Ploppy...

If I could suggest that when you display an error in a window it would be a good idea to give some more detailed information, at least the HRESULT return code in hex form and maybe even a text version of the error too and for your benefit maybe the file and line information. Too much info is not enough when you're debugging blind.

The MAV is caused by using the d3ddevice when it's invalid, and it IS confirmed invalid because of the 'Cannot create device message', a check should be made to either bail out of all functions that require the device, which is pretty much all of them, or maybe make a function to return a value for the coder to check if the device is valid so to prevent further calls and MAV/EAVs. Again the HRESULT return value *may* help to understand why the device failed to be created.

Just food for thought.


Rick Nasher(Posted 2013) [#145]
Don't worry too much Ploppy. Most of us aren't that picky and are already very happy that you're doing this magnificent thing. Probably during development it's easiest to release zip's(perhaps incremental) and when final a foolproof/user-friendly installer would be great. However if you prefer to do it like that right away then we'll just go along with it, cos lets face it: we can't do whst you do and if it helps you to focus on the coding, who are we to complain? :-)

BTW: I tried on an old PC with XP Pro 32bit, Athlon, 2GB, NVIDIA Geforce4 MX440 and I couldn't even get Blitz3D to run properly there, while it used to work fine before. So, dunno but could even be a bad MS update issue(wouldn't be the first time).

What version of Blitz3D are you using John?


GaryV(Posted 2013) [#146]
BTW: I tried on an old PC with XP Pro 32bit, Athlon, 2GB, NVIDIA Geforce4 MX440 and I couldn't even get Blitz3D to run properly there, while it used to work fine before.

I wonder if those having the problem on XP could make sure they are NOT using the latest version of B3D that has the Windows 8 fix, and then try it?


Rick Nasher(Posted 2013) [#147]
Nope, wasn't the latest version. On Vista / Win7 no issues but was tested on newer system so cant compare really.


Yue(Posted 2013) [#148]
Demo:
Power full here BlitzPlus.


Power full here Blitz3D.

Nice Work you.

:D


Yue(Posted 2013) [#149]
No whether pressing the keys should change the textures or something, talking about the textures of bricks, because not envision, at least not this supposed to work quite right in pictures?


Ploppy(Posted 2013) [#150]
Yue, how come there's no textures?? Did I forget once more to include them (I am capable) or is this intentional??

Anyway, I have just released a new version yet again. This is mainly, I hope, to help sort out the dx43 problem. I have been tidying up my initialisation routines. Dll should load up quicker for I have taken out some old dependancies that I didn't need any more (no - not the debug libs, but other stuff). This may sort out compatibility problems (I hope).

With this new update, you can see the progress I'm making with parenting, as you can see that the planets revolve around the pumpkin, for they are parented to it. These routines are not yet finished so don't work completely, but give you an idea of how far I'm getting.

I have decided this time to release in both zip and installer forms, depending on your preference...


Zip file version

Installer version


Rick Nasher(Posted 2013) [#151]
You went out of your way to please the lot, pretty cool Ploppy.

Interesting developments also. Do you mean that in:
For a=1 To 12
	sphere(a)=dxCreateSphere(32,model2) ;<<<
	dxEntityAlpha sphere(a),0.8
	dxEntityTexture sphere(a),erf,0,1
	dxEntityTexture sphere(a),norm,0,0
	dxPositionEntity sphere(a),Sin(a*30)*5,Cos(a*30)*5,0,1
Next

The planets are parented to model2(the pumpkin)? But I've noticed that if the parenting in "sphere(a)=dxCreateSphere(32,model2)" is disabled, it still works unchanged.
Further down the code the following is still active:
For a=1 To 12
	dxEntityParent sphere(a),cube
Next

Shouldn't that mean the planet to pumpkin parenting is overruled by the planet to cube parenting?

I've noticed a planetwhobble, most notable when viewing the planet ring from the side. I remember Neil once suffered from space sickness. Did he contaminate *entire* planets?(evac @ 2200 Hrs..) :-)


Ploppy(Posted 2013) [#152]
Yes, I overrode the original parenting on purpose, because I wanted preferentially to try the parenting out on the cube rather than on the pumpkin. That's the only reason. It is sloppy programming in the blitz test program , I admit. The reason for this is I am continually using this this program to test whilst changing certain things in the dll at the same time. I will make changes/refinements in the bb code to see what results my userlib gives me. This will be repeated many times during my coding time. So at the end, the test.bb that I distribute will admittedly not be clear at all, I haven't even tried to tidy up this code, for that would take time to do. This is not my goal, at least for the moment, as I will be continually bending my blitz code to test out my dll - it just wont stay clear - sorry, but that's why I've called it 'test' after all, it's mainly for my benefit - to see if things work or not. I include it in the release so others can have an instant example of what my dll is presently capable of.

By the way, if anyone feels like tempting a clearer or different demo knowing of what hardwired is presently capable of doing, please do so. Would be nice to think that people are beginning to be able to get something out of HW. Don't do anything that will take hours, for I am still very much in test mode. Although the sytnax of the functions will stay the same, the dll is not complete - until it is, let's be wary. I really do intend to finish it, but who knows. After all the hours I have spent on this, would a big pity to let it go, but life sometimes springs evil suprises on you that you couldn't even begin to expect. As for the present, all is hunkydory, just hope in continues like this...

As for the jerkiness, I have sorted that out but yet realsed the update, perhaps tomorrow. Am currently working of cube texturemaps, almost done too - looking good....


John Blackledge(Posted 2013) [#153]
Copy this here, copy that there....
Guys - I've tried them all.
And none make any difference.


Rick Nasher(Posted 2013) [#154]
Sounds promising. Don't worry understand you have a life too(X-mas demands from the counterpart etc and like most of us, you don't want angry eyes in your neck lol).

I was thinking to convert a simple planetary demo of mine for people to try effects etc on, but was guessing I'd be needing the Pivot command for that, (hence my request for that one, but I can wait, ok hardly, but I will). ;-)

But it's really becoming something worth while. Do you keep an excel sheet or something to keep track of which commands are done or so?


Ploppy(Posted 2013) [#155]
Sorry, I didn't say, but the dxCreatePivot is already available...


Rick Nasher(Posted 2013) [#156]
@ John:

Which Blitz update and XP ServicePack are you on? I tried Blitz3d on an older XP PC of mine and even though BLitz3d used to work fine before it wasn't running ok, even without any extensions/dll's. I'll investigate..


rickychus(Posted 2013) [#157]
Ask for John,

1) - You can run others 3D games on your PC? (If YES, should be working fine. I have an old nvidia FX5200 and brings support for shaders 2.0... Ahh! If the answer is NO, do not read the next question.)

2) - Have the latest drivers installed?.. Remember that the nvidia 6200 series is discontinuous long time. Perhaps you're installing the latest nvidia package delivery and does not come with drivers for your 6200 because it has no more support... It's just a guess. Because you should have been notified of this by the installer... :(

3) - You can run fine compiled examples of Ploppy? Those I was kidding about the differences game.

I have an PC with a 6200LE. I'll try when I have time and I will be advising the outcome.

Regards.
Ricky.-


Rick Nasher(Posted 2013) [#158]
Wonderfull Ploppy, I'll see what I can come up with.


Rick Nasher(Posted 2013) [#159]
@ Ploppy: While converting code I've noticed a difference in syntax with Blitz3d commands e.g.:

Blitz3d:
campivot = CreatePivot()

HardWired:
campivot = dxCreatePivot


Blitz3d:
camera = CreateCamera(campivot)

HardWired:
camera = dxCreateCamera(campivot) ; gives "too many parameters".
camera = dxCreateCamera() ; ok, but I need it as above.

Blitz3d:
earthpivot = CreatePivot(earth)

HardWired:
earthpivot = dxCreatePivot(earth) ; gives "Illegal Type Conversion".
earthpivot = dxCreatePivot earth ; gives "Function 'earth' not found".


Ploppy(Posted 2013) [#160]
Oops, sorry about that one, will sort that out for you...


Rick Nasher(Posted 2013) [#161]
That be great.


Ploppy(Posted 2013) [#162]
dxCreatePivot corrected (I had badly written the decls line)

I have a confession to make; I have been all the time up till now not been making full use of dx9 as far as rendering is concerned. Wherever the camera was, my render engine would tell directx 9 to render every object in the 'world', even if it is not in camera view or even far away. This is all well and good, but to tell directx to work out if it needs to render a mesh or not is very inefficient time-wise. This has now been fixed...

I am now getting incredible results, two 'filters' have been added to my userlib's renderer. Firstly, a frustrum culling algorithm, this will tell directx only to think about rendering objects that are in the camera's view angle. The second will tell directx to render objects that are within the camera's range.

The result of these two algorithms increases hardwire's fps's result significantly. With the new update, just move the camera around, you will notice that sometimes the fps will rise (if not rendering much), sometimes it will fall (more complicated scene to draw).

I have also noticed that, although fast, dxtext will slow down the frame rate. For the new update, I have only included the first line of text on the screen, just to help improve things, and it does so dramatically.

Seriously, I am getting from 800fps (when I first run test without moving mouse and rendering clock, pumpkin and closeby teapots) to 1500fps (camera lost in space - rendering effectively nothing).


This great fps reading, however, was made possible by commenting out the following from the code...

;For a=0 To 5
;dxSetCubeFace cubemap,a
;dxRenderToTexture cubemap
;dxRenderWorld 0
;dxRenderToScreen
;Next

This code is new, and will render to a cubemap texture, slowing down the system, which is of course completely normal behavior. You can see in this peice of code that hardwired is rendering the scene six times, to each face of the cubemap texture.

So here we go, new commands,

dxCreatePivot%(parent%) - this works now
dxBufferNoise(buffer,x,y,w,h,red_filter#,green_filter#,blue_filter#,alpha_filter#) - new command, will fill an already created buffer with random pixels, you can control thier maximums with the filter parameters
dxBufferInvert(buffer,x,y,w,h) - will invert the colors of a buffer
dxSetCubeFace(texture%,face%) - same as b3d command
dxTrisRendered%() - same as b3d command
dxEntityInView%(entity%,camera%) - same as b3d command


The texture flag 128 now works for textures, as is imperative, just as for b3d to signal a cubemap texture. If you wish to render to this texture as well with dxRenderToTexture do not forget to add 1024 to the texture flag as well, or else you'll have to dxCopyRect if you wish to modify the texture in question like in b3d. It IS faster without a doubt to render directly to a texture, but up to you how you wish to attack. The texture flag 2 (alpha) now works, if you leave it out, the texture's alpha content will not be taken into consideration by the renderer.

And, well - I think that's it for tonight.

Go on- check it out...

Oh yes, rick - by the way, even though dxCreatePivot now works, you may get some unexpected results when rotating certain things around their 'parents', as I haven't fully completed this part of the code quite yet. Give it a test if you like and let me know how you get on...

Zip file version

Installer version


Ploppy(Posted 2013) [#163]
New stuff out, new test demo too (test8.bb, surprisingly)

dxMaxLights%() - will return the maximum number of light the host's gfx card can display at once
dxCreateTerrain%(grid_size%,parent%)- fully functional, same as blitz command
dxModifyTerrain(terrain%,grid_x%,grid_z%,height#,realtime)- almost fully functional(realtime wont do a thing for the moment), same as blitz command
dxTerrainSize%(terrain%)- fully functional, same as blitz command
dxLoadTerrain%(file$,parent%)- fully functional, same as blitz command
dxTerrainHeight#(terrain%,grid_x#,grid_z#)- kind of functional, same as blitz command

dxTerrainHeight will crash for the moment if you use it to test out the border of a terrain, must tidy that up - otherwise works fine...


Ploppy(Posted 2013) [#164]
Little update - dxTerrainHeight shouldn't crash anymore...


Wolf1870(Posted 2013) [#165]
!!! Great Work !!! Ploppy, can you please bring > dxflip 1 < in functional? (0 and 1 operate in the same way) :-)


Ploppy(Posted 2013) [#166]
Okay, easy one that one- forgot to do that, thanks for the reminder Wolf ;D

Just uploaded new version... later...


Ploppy(Posted 2013) [#167]
new - dxFitMesh(mesh%,x#,y#,z#,w#,h#,d#,uniform) - works like b3d commands, new test8.bb testing out terrain

Zip file version

Installer version

Compiled demo of test8.bb


Rick Nasher(Posted 2013) [#168]
Great stuff. Godda love the terrain. I it's is bit too green for Santa though, or did we give up on a white X-mas? ;-)

It's an educational experience too, cos I've honestly never even come across FitMesh. I can see it could be used to scale stuff like game characters from different sources to the same size without gambling/calculating the scalenumbers.

Was doing a one-one conversion of my old 'solarsystemish' thingy(from waaaay back in 2004 when just tested Blitz3d), but indeed with some weirdly different results. I'll get back on that one, need some analyzing to see what's going one.


Ploppy(Posted 2013) [#169]
I know what you mean - I want snow too. That's why I've been laboriously working on vertex shaders today. Not yet ready, but I promise it's already looking good and fast. Getting some amazing fx going on here, can't wait to release. HLSL is very touchy though...


Yue(Posted 2013) [#170]



Rick Nasher(Posted 2013) [#171]
Yue? is it You? :-)


Ploppy(Posted 2013) [#172]
Wow, Yue - I know you were good at 3d modeling, but this is incredible. So realistic ;)


Yue(Posted 2013) [#173]
That baby is impressed with the lib developing these xD


Blitzplotter(Posted 2013) [#174]
Ploppy, haven't been on the forums for a bit - this looks like awesome work, great progress!

@Yue - your 3D modelling is really coming on ;)


SabataRH(Posted 2013) [#175]
With the latest version I get nothing on the screen, just blank.. the previous version with the teapots showed perfectly.


Rick Nasher(Posted 2013) [#176]
All fine here last time I checked.


Ploppy(Posted 2013) [#177]
Hello, been a while, hope everyone is having good holidays and you got nice presents under the tree from lil saint Nick...

I have a new update for all...

I have been working hard on my rotation and parenting routines. Big pain they were, but I think they have been sorted out now for good. At least I hope so. Rick, give your planet demo a check - should work now, let me know if not.

Other new stuff...

dxScaleMesh(mesh%,width#,height#,depth#) - just like b3d command
dxGetConstantTableSize%(shader%) - shader command, returns size in bytes of shader's constant buffer
dxConstantCount%(shader%) - will return the number of shader constants (global varibles if you like)
dxDeclareVertexShaderWorldConstant(shader%,constant_name$) - will tell renderer to pass the 'world matrix' to a vertex shader
dxDeclareVertexShaderViewConstant(shader%,constant_name$) - will tell renderer to pass the 'view matrix' to a vertex shader
dxDeclareVertexShaderProjConstant(shader%,constant_name$) - will tell renderer to pass the 'projection matrix' to a vertex shaderdxDeclareVertexShaderWorldViewProjConstant(shader%,constant_name$) - will tell renderer to pass a product of the world, view and projections matrices to a vertex shader
dxEntityRadius(entity%,radius_x#,radius_y#) - just like d3d command
dxEntityBox(entity%,x#,y#,z#,width#,height#,depth#) - just like d3d command
dxEntityType(entity%,collision_type%,recursive%) - just like d3d command
dxEntityPickMode(entity%,pick_geometry%,obscurer%) - just like d3d command
dxGetEntityType%(entity%) - just like d3d command
dxGetFPS%() - now integrated into userlib rather than my old blitz function
dxPointEntity(entity%,target%,roll#) - kinda works
dxAlignToVector(entity%,vector_x#,vector_y#,vector_z#,axis%,rate#)- needs polishing
dxFramesRendered%() - now in userlib

The lighting routines of the renderer have now been improved. Looks nice, check out test8.bb and you'll see what I mean. Lights can now been rotated and moved freely. An unlimited number of light can be created, but if the number of lights is greater than the hardware's maximum light count the renderer will only use the lights that are closest to the cam being rendered.

Lots of shader commands here (lots more to come). Sorry, not much info on them for the moment, but I will issue a full explaination to their workings later. Vertex shaders now work, by the way, but I still have to create certain functions to help control these shaders. It's all coming along nicely otherwise...

Zip file version


Yue(Posted 2013) [#178]
User lib no found!!

Exe find d3d11.dll


Ploppy(Posted 2013) [#179]
Okay, redone - sorry about that....

Zip file version


Yue(Posted 2013) [#180]
Perfect!!


Ploppy(Posted 2013) [#181]
Just corrected a few bugs, including the lack of camera parents.


Simpson(Posted 2013) [#182]
We need a new PART III me thinks.This is getting a bit big.

Me mobile cannot handle it captain.


Ploppy(Posted 2013) [#183]
Hmmm, probably right....


Yue(Posted 2013) [#184]
yes, new treadh pls