There was an interesting screenshot posted in this thread
on Vogons forums. It shows Ultima V running in DOSBox with BSNES CRT.OpenGL.shader
(I found a nice comparison of different CRT emulation shaders here
, while searching for BSNES ;-)).
I managed fairly quickly to port the shader to Direct3D and make it work with existing DOSBox Direct3D framework. It is available on the download
page as CRT.D3D.fx
. You can check and modify some parameters inside the shader (like the intensity of the barrel distortion)...
It should work with any previous DOSBox builds, but there will be some garbage on the left and bottom sides when barrel distortion is enabled. D3D patch has been updated to fix this problem. Here's a screenshot
of the shader in action.
A small and quick update. I'm still here :). I still somewhat follow DOSBox development and try to help if time permits, but obviously less than previously. I'd still like to finish my 0.74+ customized build, but lack of free time has unfortunately prevented me to commit some serious time to it. Maybe someday...or after 0.75 or whatever the next version will be :)
A quick view of the status of some the patches I've included in my builds previously (not all are mine originally!):
- Direct3D - the diff on the page has been updated to latest version (Feb 2011); it fixes some minor threading issues, it seems to work very well and stable unless there are some serious issues discovered or new ideas come around I will consider this the final version
- Glide - the latest version (Oct 2010) is available in the ykhwong's
build; major bugs have been fixed, I still have some ideas for improvements but due to rapid development of the real 3DFX chip emulation
by kekko, I will try to help there if I can
- Physfs - obviously has some issues, ykhwong's build tries to solve some, but as this isn't really a very popular patch it will probably die
- Munt (MT32) - there seems to be some active development
again, thanks to some ykhwong's ideas and the commitment of sergm; it will be very interesting what comes out :)
- Coreswitch - hasn't changed in a while; this is probably everything this patch will ever be :)
I've sent some of my updates to ykhwong today and if I have more good ideas, I will send them to him so he might include the updates in his build :)
You can also check h-a-l-9000 page
, I included many of his patches in my builds.
It is out! New DOSBox cvs build :). I have spent last few days testing, optimizing, recompiling...I have updated to latest Mingw and rebuilt my compilation environment and all the libraries and finally switched to gcc 4.4.0.
I have spent much more time on the patches then I have anticipated. Although I have tried my best to test it all, there are a lot of changes. Most of the changes have been towards improving support for multicore cpus, at least dual core cpu is highly recommended.
I won't go over the changes in official cvs, read those in the 0.73 changelog (congratz to the DOSBox team for another great release! :)) so let me just summarize the changes in the patches:
- Direct3D - I have redesigned the D3D patch to run D3D calls in a separate thread; this should speed up shader operations where cpu is mostly waiting for the gpu to finish rendering
- Glide - some fixes here and there, added support for running glide in win9x emulated environment; still needs some fixes though (see this thread
- Physfs - updated to apply to current cvs, update physfs to version 2.0.0 (supports 7zip), not extensively tested (see this thread
- Munt (MT32) - updated to latest Munt code, made mt32 code threaded (this should greatly speed up Munt running with dosbox); you might have problems running MT32 on a single core cpu!
- included most of the HAL's megabuild patches except the graphics patches (are currently out of date)
- recompiled SDL and added a few fixes, mostly for better D3D support
- a lot of other stuff that I just don't remember at this time...
Although I have tried my best to test all the patches and new functionality, there still are probably some problems left because of all the changes. I'm leaving for a vacation in a few days, but if you have problems, you can PM me on the Vogons forums and I'll respond when I get back. Enjoy!
A new DOSBox build based on 0.73 sources will be available shortly. I have a few issues left to solve...the current build really looks promising :)
I have updated my dar Total Commander plugin on the misc
page. It now reads version 7 (dar 2.3.8) archives + some bugs have been fixed (returning CRC error when archive was ok). My implementation of dar archive handling was written from scratch, so some archives might not be handled properly. If you get an error while working with an archive, be sure to check it with dar before deciding it is bad :-)
What, can it really be? Gulikoza updated his page? :-)
Is Earth moving towards a black hole or something since I have the feeling time is just flying...
Anyway, although long overdue, I have updated my DOSBox build. I've fixed some bugs that were there since the last release (scalers should be working, no idea what happened the last time). I have also updated my patches. I have actually tried to redesign Direct3D to run in a separate thread. The result should be somewhat faster rendering with shaders. Although the patch works, it does not properly switch from window to fullscreen. I haven't been able to solve this issue, so no threading for D3D (yet). Glide patch finally supports getenv (setting I/O port) and disabling LFB read/writes (useful if you get pink screen in RedGuard for example). I have disabled SSE for MT32 (I think it was broken, I have AMD cpu which defaults to 3DNow so I wouldn't know :)). Config file comments also work now. Some of h-a-l-9000
patches have been added (NE2000 support, printer patch and oplpassthrough). Thanks HAL :-)
For the rest of the changes see DOSBox ChangeLog. Download location as usual, sources included :-)
I have added my customized OpenWRT
image to the misc
page. Last summer I spent a few days configuring my router and I said what the hell, I'll just make my own image with all the changes. Since then, I've flashed a lot of routers with it (well...a lot...must be about 10 or so :-)) which means I've probably saved a week of work if I'd had to customize each on it's own ;-). The image is packed with network utils, various script fixes and patches...basically whatever you'd need on a router. Actually it has been available for a while here
, but I've never bothered to add a download link to my page.
In some other news, it seems some of the scalers don't work in my DOSBox 2502 CVS (heh...it shows I mostly use the shaders not scalers ;-)). I don't know what went wrong, I'll fix it in the next release...
After a long while, there's a new DOSBox cvs version available! I have mostly just updated my patches to compile with the current cvs, the functionality is more or less the same (a few bugfixes here and there). One difference I might mention is that mt32rate config option no longer exists (you can use the generic config= option in the [midi] section to specify MT32 sample rate if desired). Also, most of the SVGA patch is in the cvs now, so I've dropped that.
But the big CVS change is that DOSBox now has a configuration GUI (thanks to alot of work by `Moe`)! You can access it by pressing ALT-Pause. The GUI is still in development, please don't bug the authors (most notably, the help system is not working yet - this includes the conf file) they will fix it before the final release. Think of it this way...if I had waited for everything to be fixed, you couldn't enjoy the preview of the next version :-)
Happy New Year everyone!
As a New Year's present, I'm releasing one final version of DXMCI. I don't have time to work on it anymore, so I'm also releasing the sources under GNU GPL if anyone will want to pick it up. This version also officially adds (a bit limited - see the README) support for Starfleet Academy DVD edition.
I wish everyone a great 2008. 2007 passed really quickly, there's so much things I wanted to do for which I have less and less time (hehe...sometimes I'm thinking I'd need a whole software team working for me)...
Hopefully 2008 will be better in this regard :-)
Updated the shader pack from guest(r). I don't have the time to test them all, but you can try them anyway :-)
I'm terribly sorry about the lack of updates, there's just so much things to do... :-)
I missed 2 DOSBox releases (0.71 and 0.72...hmm, 2007 the year of dosbox? 3 releases and counting, congratz to the authors! ;-)) and only now found some time to compile 0.72 codebase with my patches.
But the good news follows: I have included a few extra patches this time. First I'll mention my Glide
patch, which I have been working on since 2004 (has it really been that long?). It is now finally included in my build.
I have also added a couple of h-a-l-9000
patches - directlpt and opl passthrough. These 2 are mostly Win32 only, but my sources should also compile on Linux (with the features disabled of course). Enjoy!
Since I took my new job, I haven't had a lot of time for updates. But that doesn't mean nothing was done :-)
Today's DOSBox cvs compile includes a Direct3D shader of the well known HQ2X scaler. It was developed as a port of OpenglHQ
(which will stay in my builds) by a friend of mine.
The shader code has been entirely rewritten to HLSL and should be visually the same as OHQ and possibly have a slight speed advantage where Direct3D is stronger (ATi cards, Windows Vista...).
The patches for Direct3D (hq2x.fx support) and Coreswitch have also been updated. Enjoy!
Updated the shader pack from guest(r) with two new shaders (SuperEagle and Scale2xPlus).
Uploaded the latest shader pack from guest(r) ;-)
If you want to use the latest shaders, it is always best to check if they're newer than the shaders in the DOSBox archive...
Again updated the shaders from guest(r) :)
Added some other projects I'm working on. See the page here
I have updated my dosbox build. There was a possibility of some minor problems occurring.
As a bonus, I've added the SDL_net support (IPX and modem emulation can now be enabled) and updated guest(r) shader pack.
Today is the big day dosbox-0.70 is released
There's a lot of changes compared to 0.65 (almost a year has passed), most games (even the demanding ones) should run without problems
I have also taken this opportunity to release my dosbox-0.70+patches version :-)
You can read the official changes in the changelog, so I'll summarize the changes in the patches:
- Direct3D now supports Pixel Shader 3.0 shaders (the two PS3 shaders are GS2xFilter.fx and GS4xHqFilter.fx kindly provided by guest(r)), I had to use a newer DirectX SDK so dosbox.exe now depends on d3dx9_30.dll
- If you get 'This application has failed to start because d3dx9_30.dll was not found' error, install this
- Fixed a possible crash, and modified window handling a bit in Direct3D
- Modified OpenGLHQ code to support fulldouble and added some other tweaks
- Updated coreswitch patch to apply to current cvs
- Updated SVGA patch to version 20070301
- physfs and mt32 patches unchanged
That's it for now, get your build on the download page :-)
No, I haven't been lost in Vienna for 6 months :-). It's really amazing how fast time flies.
Although it doesn't seem like it, I have been working a lot on DOSBox. One of the things I wanted to do was to rewrite OpenglHQ patch to work with current SDL cvs. The other was to rewrite D3D shader handling a bit. That and updating the patches to apply to current cvs
(congratz to the DOSBox team, DOSBox is really improving at amazing speed!) took somewhat longer then expected.
There are really lots of changes to the new build, so some things might not work as expected.
To summarize some of the changes from cvs:
- new core=auto option (which will switch to dynamic core when appropriate)
- core=simple is now the default (this is also changed in coreswitch patch! CTRL-1 will change to default simple [although it will show as normal], CTRL-4 will force old normal core)
- direct host fpu with dynamic (this speeds up Tomb Rider almost 100%!)
- keyboard layouts (note to Slovenian users: Moja verzija podpira keyboardlayout=si ;-))
- HQ2X and some other scalers added
- and a lot of other changes...
My patches have been updated to apply to new cvs:
- coreswitch (see above for changes)
- Direct3D (the shaders are now "smarter" how they activate. Some shaders will be active all the time [the color ones], some will activate with sufficient scaling (eg: scale2x.fx for scaling >= 2), this can be controlled by changing 'float scaling : SCALING = 2.0' line in the shaders), also D3D should now work in W2K
- rewrote OpenglHQ to use framebuffer objects (should be somewhat faster)
- remove hqnx scaler patch (is in cvs now)
- add vasyl's svga/s3 patches
- mt32 is still the old code, I've heard there are some problems with current cvs
I hope everything works for you, find the build as usual on the download page, along with the source. Have fun :-)
DOSBox build updated again. The code is now based on post-0.65 cvs source.
I have been waiting this long for an update because I wanted to include software HQ2X scaler. This is now possible thanks to the patch made by Kronuz. The same patch also adds SuperEagle, 2xSaI, and Super2xSaI scalers to DOSBox. You can also cycle through the scalers by using CTRL-ALT-F2.
The build now also includes PhysFS patch which makes it possible to mount zip files.
guest(r) has also been kind to provide me with some additional D3D shaders..but these are not conventional scaling shaders ;-)
I have also not extensively tested this build since I'm leaving for Vienna tomorrow, but hopefully everything works ok. Enjoy!
No update for a while...DOSBox has really gone through a lot of changes these past 2 months and not all were what I would have done. So I needed some time to think how to make my next build...
Official CVS sources now include the following new features:
- New scalers and 15/16/32 bit support (makes vesa16 bit patch no longer needed)
- Some form of optimized scalers (somewhat different from the previous patch, but works the same)
- AVI capture support (activate with CTRL-ALT-F5, you need ZMBV
codec for playback)
- DOSBox icon :-)
- New sound mixer routine...sound should no longer skip, it will slow down instead
- Autocycles support (makes timesync patch obsolete)
- and many, many smaller changes...
Since the official code tree contains the same functionality as some of the patches in my previous builds, the vesa16bit, optimized scalers patch and timesync code (from the coreswitch patch)
are no longer needed.
Coreswitch patch has been updated to apply to current cvs. CTRL-= will now activate autocycles mode, the same as timesync before. Direct3D patch has been updated as well.
Today's build is also unfortunately missing the software Hq2x patch (the hardware version - openglhq - is still applied) since it has not been updated to the new scaler code.
Also, normal2x scaler no longer falls back to hardware scaling when possible, so normal2x will always
do the software scaling. To use 2x (or 3x) hardware scaling with openglhq or direct3d with shader you should use hardware2x or hardware3x
NOTE: 'scaler=hardware2x' (and 3x) are currently only available in my build!
You should use these options when hardware scaling is desired (either 'blurry' overlay, ddraw or more advanced scaling with d3d shaders (configured by a separate 'pixelshader=' option) and openglhq).
Another difference from the cvs is that 'cycles=auto' is now limited to whatever cycles were set before automatic mode was turned on. This will prevent dosbox from using all the cpu when cycles=auto. If dosbox is started with cycles=auto, the cycles are limited to 150.000 cycles. You can change the maximum with CTRL-F11 and F12.
A lot of config entries have changed, so make sure you recreate your config file with 'config -wc dosbox.conf' if you do not use the provided dosbox.conf!
guest(r) has also sent me an update to his shader pack, it's available on the dosbox page :-)
First DOSBox cvs update this year. Along with dynamic core updates from the cvs in the new build (better compatibility with some games), I've added some pixelshader effects that were sent to me. That now makes 11 available shaders for DOSBox! Because dosbox dir is getting unorganized with so many .fx files, the effects are now in a subdir Shaders. You don't need any changes in the config file, direct3d will now automatically look in the Shaders subdir for the effects files (so make sure you put all the .fx files in there or dosbox will not find them). Thanks to guest(r) for the work on the new shaders!
Welcome to my new location. Hopefully everyone will find their way here :). My old account was already suspended so I couldn't make an update there. Thanks to bLaD3 for hosting! :D
Happy New Year everyone!
I'm still looking for a new hosting place since I've cancelled my account with amis.net. I'll post a link as soon as I find something convenient :-)
I've updated my DOSBox build with some fixes. OpenGL should now work on nVidia cards and a minor bug with normal3x scaler has been fixed.
Download location as usual :-)
It's been a while since my last update. I was rather busy and haven't had the time to do a dosbox cvs update (compiling is getting increasingly more difficult because of all the patches). I have worked with Kronuz these past few days to fix some bugs in his patch. If you aren't aware of it, Kronuz made a patch that greatly speeds up the scalers. In some cases there's as much as 10x speed increase! Amazing work really! Hq2x is now much more enjoyable :). So, today's build contains all the regular patches + scaler optimize patch. I've used somewhat less aggressive optimizations than Kronuz has in his build, so my build might be slightly slower (but hardly noticeable!). As a side affect of this new patch, the FPS counter will now (almost) correctly show in-game fps ;). There are also 2 new scalers available - normal3x and tvhq2x (hq2x with tv scanlines).
1 problem is known however - surface mode does not work in fullscreen when fulldouble is set (the screen will flicker). This will be resolved later, just set fulldouble to false for now if you use surface mode.
The diffs for my patches have also been updated to better integrate with the optimized scalers patch (along with some other fixes). While D3D might compile without optscalers patch, I did not test this option.
Yep, still alive :-)
I've been in Greece in Sep so there wasn't a lot of time to do any updates until now. New DOSBox build is available. I've updated my D3D patch to (finally!) support alt-tab from fullscreen. It should no longer crash, hopefully. I've also contacted Ryan Nunn (the creator of the shader programs) and he sent me an updated scale2x shader that works on PS1.4 hardware as well (Radeons 8500 and 9000, GF4 is PS1.3 unfortunately). OpenglHQ mouse issues haven't been completely fixed yet, but I've included the version where in my opinion mouse works perfectly. That's it for now :-)
Oh, yeah...the location of my page might change in the next month or two. Stay tuned for the updated url or check the Vogons forum if you miss it...
DOSBox build has been updated with all the new goodies in the cvs + all the regular patches. As always, report any problems in the Vogons forum
I've also received a report recently that my DOSBox builds contain a trojan. I have tested all recent builds with 3 different antiviruses and nothing was found. It is also quite unlikely that any binary or dll would contain a trojan horse since these usually do not infect executables by themselves and I sure didn't put any there :)
To all the WC4 fans...after more then a year, dxmci has been finally been updated :). The new version should be more compatible, hopefully woking without problems. Get it on the download
Vacation time is over :(. The good news though is that DOSBox development has been quite active :). There has been a lot of changes in the cvs while I was gone and I even had some time to update my patches. Direct3D should be much easier to compile now. It works with all dx9 versions and since g-productions has ceased the development of MinGW DXSDK, the patch can use official Microsoft SDK as well. Coreswitch patch has also been updated (although very minor fixes). While making the new build I was thinking whether to include Improved flag, EA, LEA, and XCHG handling in dynamic core
patch or not. The patch adds about 10% speed in dynamic core but unfortunately has a bug that prevents windows31 working with dynamic core. Since win31 is still somewhat unstable with dynamic core I chose to include it anyway - so far I haven't experienced any problems with it in games and 10% boost is more than worth it (if you think there are other problems with this patch, don't hesitate to report it in the Vogons forum). Get the new build
in the same place as usual :)
There hasn't been an update in quite a while...I've been working on a lot of stuff (including my university exams ;)) so I haven't had a lot of free time. DOSBox cvs build
has finally been updated and I must say I'm quite impressed. A lot of people have worked on it these past couple of months - there's the completely redesigned OpenglHq patch (it's actually a SDL patch now), better joystick support, core fixes and I have finally added support for hardware 2xSaI filter to my Direct3D patch. It's somewhat too blurry in my opinion but hopefully someone will find it useful :). Oh yeah, my builds now also support taking screenshots with CTRL-F5. Have fun!
Wow...nVidia day :) I finally tracked and fixed a bug that was causing corruption in D3D with Ti4200 (surprisingly none of the other cards were affected, although they should be), found and fixed another bug when d3d would set incorrect resolution. Hopefully I didn't break too many things :P. OpenglHq patch has been updated as well, fixing crashes with nvidia cards, although the speed in OpenGl might be somewhat lower now than plain cvs. That and today's cvs checkout - new DOSBox build is available :D
New DOSBox build is up. This time it's packed with patches. Hq2x patch has been redesigned and now has hardware support as well (it uses OpenGL fragment programs which is similar to D3D pixel shaders). To use it you only need to set output=openglhq (if this mode is supported by your graphics card of course, otherwise it will fallback to normal opengl). Next...the same patch-pack also includes Vesa 16-bit modes and some minor adlib corrections. FPU support has been added to dynamic core - this should greatly speed up any fpu intensive games. As usual, D3D, coreswitch and mt32 are included as well. Newer CVS code now has the ability to modify dosbox parameters from the shell (no restart required): don't want ems, type ems=false, need different cycles - create bat file and set cycles 20000. Fancy :). Although not all options are supported yet (output and scaler cannot be modified). I'll probably also modify the coreswitch and d3d patch to include additional commands when support for this is complete.
There were some minor problems with the 09.04 build so I've recompiled. If you have problems, make sure your dosbox.exe is dated 11.04.
Guess what...new DOSBox build :). I've updated to latest cvs (Munt as well) and fixed some screen scaling bugs in D3D. Enjoy!
New DOSBox build is up. Besides using latest cvs I have also included today's Munt cvs. There are quite a lot of changes in the MT32 emulation. I also fixed some bugs in D3D patch and fullfixed is now handled a bit differently. See this thread
what it's all about.
I've updated the DOSBox build. Fixed a small bug I made when incorporating Munt files. CVS also fixed earth siege 1 and there's a new option for choosing midi device DOSBox uses. You can now specify which midi device to use in Windows by changing config= option in the [midi] section of the dosbox conf. You have to specify the device by number, you can get device list by typing mixer /listmidi in dosbox. This way it's no longer necessary to jump back and forth to the control panel to change midi device.
New DOSBox build is up. It now includes the MT32 Emulation from the Munt
project. The configuration is quite easy, you just have to change device to mt32 in the midi section and set the desired sample rate (of course 44100 would be best, but it's quite CPU demanding). You will also need MT32_CONTROL.ROM and MT32_PCM.ROM in your DOSBox directory. Since the legal status of these files is somewhat unclear they are NOT included in the download archive. You will have to find them for yourself and please do not mail me, I will not send them to you. Other than that there are not many changes...perhaps most notably the titlebar-not-updated bug when showcycles=false and switching from fullscreen to window has been fixed. Enjoy :)
The first time you start with mt32 enabled (and every time you change the sample rate) there will be a small delay when DOSBox starts since waveform cache has to be generated. Just in case you are running without the console window and wondering why dosbox seems to hang.
Hope everyone survived through the New Year's partying :P
For the first update this year...the d3dx9.dll file in DOSBox.zip is rather large - almost 800K (and that's compressed with UPX). I managed to recompile it, keeping only functions that are necessary for Direct3D to operate under DOSBox. This saved more than 400K! Hopefully it won't cause any problems. It's still about 360K large, so I'll try to cut it even more if possible. DOSBox.zip is now again under 1MB. I only changed the dll inside the archive, the build date is still 29.12.
Last update this year. I'm heading to Bratislava
, Slovakia, later today for the (somewhat longer) New Year's party :). Slovakia
should not be confused with my own country, Slovenia
, home of the infamous Sloncek - webmaster of the late Suprnova
page :P. It might seem the countries are similar and close together, but believe me - it looks a whole lot different from here.
DOSBox had some quite substantial fixes these last few days much improving Win3.1 compatibility. I wonder what else we'll see in the year 2005 :).
Get the newest build
and have a Happy New Year!
I had some time and finally managed to do some DOSBox benchmarks of different compile options including testing on Athlon64. I got some rather surprising results:
| ||- Athlon-XP version was faster on Athlon64 than version compiled with -march=athlon64 and -m32|
| ||- Using -mtune=i686 is even faster, not to mention it works on all older CPUs as well|
| ||- -O2 is faster than -O3. Even more, -O2 with -fomit-frame-pointer gains more than -O3 with -fomit-frame-pointer|
| ||- All that SSE and SSE2 optimizations which should make FPU operations faster don't do a thing|
| ||- Some other options, like loop unrolling and fast math do not produce any measurable boost|
| ||- Compiling with -fprofile-generate/-fprofile-use produces a small boost (~1%) and also makes the code somewhat smaller|
| ||- And finally - using the Improved flag, EA, LEA, and XCHG handling in dynamic core from DOSBox sourceforge patch page gains another 5-7% speed|
Using these findings, today's version should be faster on all machines (the previous i686 version was rather unoptimized since I didn't pay much attention to it :)) and works on all CPUs. I also fixed some stupid bugs in Direct3D, fullscreen mode should be much better now. ALT-Tabbing from fullscreen is still a bit strange...it works on my laptop but not my desktop. I'd still recommend not to use it :). The cvs also fixed mouse in Win3.1 Enhanced mode, so I guess w3.1 are finally runable in DOSBox!
Small update: I've recompiled the Athlon-XP version. I've changed some compilation flags to make it even faster. If you have already downloaded, re-download it.
Long time no update, but it's been worthwhile.
I've been often asked why bother with Direct3D output for DOSBox when all the games are 2D anyway. I've already hinted the direction of my development in the last news entry, but now I have finally managed to make a fairly stable release. The newest DOSBox Direct3D patch can use pixel shaders to scale the picture! The reason why to do it is quite simple. While a graphics card was more or less a passive component in PCs (it was only drawing what the CPU told it), these last few years we have seen a giant leap in the development of graphics processors. The newest generation of GPUs can easily compete (or even exceed!) the complexity of the main CPU, giving you virtually another processor, coupled with the fastest memory, to use in the computer. And while I have the feeling CPU development has lately come to some sort of a still (both Intel and AMD seem to have reached some obstacles in raising CPU frequency), each generation of GPUs adds 2x the speed of the previous. And since DOSBox is quite CPU intensive on it's own, why not use the power of the graphics card to do what it was meant to do - process images.
Since I am not that fluent in PS assembler or HLSL (well...don't have a clue would be a better description :)), finding some examples proved very useful. The shaders and the patch itself were modified from Ryan Nunn's 2DScaling program (find it here
). Included are effect files for Bilinear, Point Sampling, and the commonly used and very complex 2xSaI and Scale2x algorithms. The first 2 are kinda pointless since the same effect can be achieved just by setting SetSamplerState call, Scale2x is better known as advmame2x in DOSBox and 2xSaI filter description can be found here
. DOSBox running in D3D can thus use these shader effects to enhance the low-res graphics. Although I do not often use filters like hq2x or advmame2x because most of the time I prefer the original look, I guess they are sometimes useful. Filters like HQ2x can be very CPU intensive, with pixel shaders, the CPU impact is minimized. Or is it? I must say I have been kinda surprised (and somewhat disappointed) that my current scale2x implementation uses perhaps even more CPU than DOSBox's own software advmame2x filter. 2xSaI filter is not yet implemented in D3D patch (it requires multiple passes over the image, I haven't coded this yet) so I cannot test it's performance, but it might require even more CPU time. I don't know if this can be optimized or is my graphics card just too slow to render it efficiently (I have R9600XT, X800XT or GF6800 should probably kick some ass). But than again, this is just the first release...we'll see how this goes :)
Of course, new builds are up for you to test this. The code is yesterday's cvs and since the mypixels.dk forum went down, one of the few post-0.63 compiles. The builds and some (short) instructions for shaders as usual on DOSBox
What, what? Who reset the visitor counter? :)
Not much going on...except the official DOSBox 0.62 release some time ago. Congratz to the dev team!
I made also made a compile of the cvs code, there were unfortunately some bugs in the 0.62 version which have been quickly fixed in the cvs. I don't know what I did, but today's version (especially the athlon-xp sse) is blazing fast! There wasn't that much changes that would explain the speed increase (or somebody stuck an athlon64 in my box while I was asleep? :)). Doom runs with 30.000 cycles. Tie Fighter runs with 30.000 cycles in SVGA. Hello!?
It should also be noted that if you run DOSBox in D3D mode, all Direct3D options you change in the control panel will affect DOSBox as well - fsaa, ansiotropic filtering, smartshader setting, Catalyst AI, etc...although some might have no effect (like fsaa, since there is no 3D graphics to show) besides speed decrease, I found out that forcing ansiotropic filtering will force D3D to do a bilinear scaling of the display texture - therefore making dosbox slightly more blurry. Feel free to test it. Also, smartshader setting makes some useless, yet interesting no doubt, effects. Competition of the week: program a hq2x filter (or something similar) in ps2.0 :P
Find updated patches & binary builds on the DOSBox
page as usual.
I did some changes to the DOSBox patches. Not much functionality has changed, but it should make compiling more easy. Coreswitch & D3D patch have been made completely independent so now you can apply one or both of them at the same time. D3D no longer requires linking with DirectX libs, only the headers are now needed. It has also been tied to ddraw configure option so if configure does not find ddraw.h, d3d will be disabled as well. This makes it safe to patch even if D3D is not available on the system (but if directx headers are on the system, they need to be at least version 9). And last but not least, the whole Direct3D output support has been moved to it's own source file - direct3d.cpp :D
One more change I forgot to mention. By default, the debug logs in D3D mode are now disabled. Logging can be enabled by uncommenting D3DDEBUG in direct3d.h.
Long time no update. I have been quite busy with my university exams so there wasn't a lot of time to play with dosbox. Besides, cvs tree was changing daily and there's no reason to update every day. A lot of stuff has been added, including my joystick patch :).
There was some discussion on Vogons
if coreswitch patch is a big performance hit. I believe it's not that bad in Windows, but Linux (and perhaps it's noticeable with slower machines too) does suffer a bit. I changed the patch so that showing cycles in titlebar is optional, you may enable it or not depends on how much you got used to it (I did :)).
Coreswitch & Direct3d patches were updated & new builds are also up (about time!). See for yourself :)
Coreswitch & Direct3D patches updated to apply to current cvs. There's a lot of changes including a simple core (CTRL-4), which should be faster than normal but still nowhere near the speed of dynamic core. There's no new builds since I'm having some problems with current code (sfx not working in doom) perhaps it will be resolved in the next few days.
DOSBox builds have (finally :)) been updated with the latest code. It also seems I forgot to apply the joystick patch in the last builds (if you're wondering why it didn't work). This time I applied ih8regs' patch (will probably be committed to cvs soon) which uses mapper and some other enhancements over my patch (see the conf file for options). If you're joystick isn't working be sure you mapped all the buttons and axes. One potential problem I found is that both (virtual) joysticks are enabled. Some games, like Tie Fighter for example, will default to second joystick so it has to be mapped as well (at first I thought the patch wasn't working since I only mapped Joystick 1). HQ2x scaler has been compiled in as well - if you want some high quality screenshots (and no...screenshot support is not compiled in), unfortunately it is too slow for gameplay. Hope it gets better...
Silent update of the D3D patch. Code has been cleaned-up a bit, some fixes to the mouse locking and fullscreen support. I have also added the code to resume fullscreen in Direct3D from Alt-Tab, but SDL seems to be crashing, even with surface and overlay outputs. I haven't updated the builds since there are no major changes...perhaps sometime in the next few days.
I discovered the reason behind the "mysterious" dynamic texture speed increase. It uses AGP Fast Writes to update the texture. Since the pixels are generated by the CPU this is one of the rare cases where Fast Writes indeed help a lot. So, to see any speed improvement make sure you have Fast Writes enabled as well!
Another update. This time a substantial performance increase. I have done some profiling and I've found out that dynamic textures increase performance a lot. Which is quite interesting, since I've started this project with dynamic textures but it was way too slow then - I wonder why it's faster now. But here's a catch: Your card has to support it. It shouldn't be a problem on any modern hardware (DX8.1+), but on older cards the new version will probably run a lot slower. This is because I removed the d3d scaler and any scaler can be used with direct3d now. The speed is quite amazing. I can play Cyberia with Dynamic core and ~10K cycles with about 15% of cpu used! With the advmame2x scaler, CPU usage goes up to 35%, but still - that's only 1/3 of CPU used!! My real speed test (and the goal of running smoothly :)) however is Tie Fighter in SVGA. IIRC this game was playable in 640x480 on my 486-dx4/100 so dosbox should do this at least :). With overlay I can get up to about 22K cycles and the game is almost smooth but even with the latest update, direct3d still seems to be a bit slower - it only goes up to about 17K cycles (the old version did about 10K cycles).
Also, most of my builds are compiled with -march=athlon-xp. This means that the compiler is including 3dNOW! and SSE optimizations. While Intel chips support SSE from Pentium3 and above, Thunderbird and Duron CPUs do not have complete SSE support! This means that DOSBox will probably hang on startup. For now, I will make a i686 build that should run on all CPUs available as well, but I really don't like making two builds :)
Ok...I'm back :) Too bad the vacation is over. See our ship
parked in a marina in Dubrovnik
, Croatia :D
As for DOSBox, I had a few ideas...Direct3D has been improved a lot - more error checking, 16-bit output support added, non-pow2 texture size is no longer a requirement, fullscreen mode fixed (although it still might get strange sometimes). In short, it should work with most cards. If you don't want the coreswitch patch you can get a version that will apply directly to cvs.
I also fixed some broken links and updated the patches to apply with newest cvs. Today's build has DirectDraw support enabled as well, but I couldn't get it to work on my computer.
So, go ahead, check everything out!
Ladies and Gentelmen. I present to you an experimental Direct3D output support for DOSBox. It is a result of a many unslept nights :) It is far from being complete, but since I am leaving for a vacation in 2 days I said what the hell - let people test it (and fix bugs ;)). Why D3D when DOSBox already has support for a portable 3D API? Well, DOSBox requires a special NVidia extension GL_NV_pixel_data_range which is not available on non-NVidia cards! If you have an ATi card like me (or let's say a brand new X800) OpenGL is slower than ..... I also wrote it to show that native DirectX can easily be written on top of SDL, to perhaps gain a few % of speed over SDL in Windows. So, grab the .exe file, test it and if you have any optimization suggestions, don't hesitate to implement them. I'll be gone for the next 14 days, so no updates until then. All the patches have also been updated to apply to today's cvs. Have fun!
10.7.2004: (uups...how come I didn't notice June was already over :P)
A minor page redesign. Also, check out the new DOSBox
Support for Transport Tycoon Deluxe added with version 1.2! Maybe you have noticed (or not) that TTD patch also contains a dxmci.dll file. To avoid confusion my dxmci.dll can now be used with both games! It uses DirectShow instead of DirectMusic, so you midi files will sound a bit different but I like my cards wavetable synthesis more than Microsoft's DLS instruments.
I was lazy while programming and didn't bothered to check return values when calling some functions. This probably lead to some strange problems like black screen (or maybe even crashing...who'd know ;)). While quite unfortunately this version probably does not fix some on the problems I've been getting it should at least be more informative. Hopefully I didn't break too many things...
NStriker has created a fix for the VirtualProtect() Error. While this is not such an issue in WindowsXP since you can set the compatibility mode to Windows95 and it works (it's even set automatically for the CD version), it makes the game run in Windows2000 which does not have this setting! So, if you have W2K or just too lazy to set the compatibility option on, head on to the Addons
section and apply the fix :)
There seems to be another build of WC4 DVD. It is extremely rare since I got only 1 report of not working with current release (this might also indicate there are even more builds, if this is the case please send me both wc4dvd.exe and mpeg2.dll so I can examine and modify them). So, if your wc4dvd.exe is dated 25.9.1997 instead of 16.9.1997 download the alternate mpeg2.dll
. This should than make the patch work.
Also, I've got a Russian translation of the Q&A incase somebody is interested ;) here
. (Thanks to Black Joker).
Done some testing in Windows ME...read about it in Q&A
As you can see I took 5 min of my time and made a better page. Also I decided to release version 1.0. I believe that it works pretty stable thanks to some bug reports in WC4 CIC forum. Enjoy!