| Main > Software Forum |
| DirectDraw vs D3D for native resolutions. Aarons view. |
| << < (2/4) > >> |
| Howard_Casto:
--- Quote from: AndyWarne on August 26, 2007, 03:53:03 pm ---Absolutely cant agree here Howard. This will result in a terrible picture. If you really mean the highest resolution a standard-res arcade monitor will handle, thats 640 X 480 interlaced. Forget about anything resembling an arcade picture with an interlaced screen. Or maybe you mean non-interlaced, ie 320 X 240. (well most arcade monitors will handle up to 288 lines but theres not going to be a great deal of difference). Running all games at 320 X 240 using any available scaling method will also be poor. In the situation you mention you are forced to use scaling because you only have one resolution available. So in that situation there is little doubt that D3D is better, although the picture must be poor with any method. If you have a range of approx 30 low resolutions to choose from, then most games are a very close fit and can run with very small borders. The ones which don't fit can be run with scaling (ie D3D) but the majority look far better if run native with borders ie DDraw than they do with scaling (using DD or D3D). The difference is night and day. As an aside, your monitor might well be capable of non-interlaced arcade resolutions presumably. It must be a 15Khz monitor so no apparent reason why not. Any interlaced screen is not going to be arcade-real. Andy --- End quote --- No I didn't mean interlaced, as interlaced isn't a "real" resolution in my eyes. I did say "assuming scale mode is working properly" if you'll go back and read. If it was wrote differently or a different technique was used the scale method could be improved. I mean I don't pretend to know what's going on with mame, but my fe, which is wrote in d3d can scale an image at a very small resolution up or at a very large resolution down with little to no distortion. It can take the same skin and run it in multiple resolutions as well, even very low resolutions and the layout still looks really good considering. I'm sure the same thing could be done in ddraw as well though, I'm not playing favorites in that aspect. And I think that you think I don't get what you are saying but I do. At very low resolutions, having one line off can lead to a lot of distortion. It basically has to do with not being able to divide/double the resolution evenly, which I get. You would really be amazed though at how well d3d can scale things with the right filters and scaling techniques. If nothing else then the ddraw method of inserting lines could be used and at least that would be future proof. Again, I'm not sure what is going on inside mame, but I figure since I'm not that good of a programmer and I can find solutions to this type of problem surely aaron can think of something. :) Actually I have a lot of trouble with borders with any arcade monitor, not just that one situation. Just as an example my gorf cab has issues with certain games about clipping, offset and border size even when it's restricted to only vertical games (which it always is). See the problem isn't 90% of the games, it's that last 10 percent. The only way to play them with the whole screen showing at supported frequencies often involves manually adjusting the trim on the back of your monitor, which basically means you won't be playing those games. The only way I personally know of solving that is to never change the resolution. That's why I said assuming we could get a good scale tehcnqiue going this would be the best method, because, from the user's standpoint they'd only need one global setting. Of course there would be games where you'd have to go back and tweak the resolution manually because they don't scale well, but having a good scale could solve a lot of problems, especially on those odd-ball games we've both mentioned. It's your opinion that the games look better with borders, but it's my opinion that I'd rather them look slightly worse and have them fill the whole screen. I agree though, for most of your games the border is so small, if existant that it isn't a big deal. Like I said though, it's that last 10% that'll get ya. I hope this doesn't come off as me arguing, I just get the feeling that you are dis-missing some of what I am saying because you don't think I know what the issues involved with scaling at low resolutions are. I hope some of this is helpful in figuring out what needs to be done. |
| Cakemeister:
--- Quote from: Space Fractal on August 26, 2007, 09:25:54 pm ---Any plans to convert MAME to use OpenGL instead the slow DirectDraw? --- End quote --- Try SDLMAME. SDL uses OpenGL. |
| ahofle:
Aside from the sound issues with ddraw, I find that it's VERY difficult to get rid of screen tearing for whatever reason. Even when my monitor is running at the exact resolution/refresh rate of the original game. If I enable 'sync monitor to refresh' I get stuttering, and if I leave it off I get tearing. I just don't get it. The VS games are a good example of this - I run them at the exact arcade resolution with ddraw (256x240 at 60hz) and I still get tearing in Excitebike. Why is that? I'm a bit surprised Aaron is asking this actually. I thought a while back he yanked ddraw support from MAME and only reluctantly put it back after people bitched. The fact that it is a deprecated API and mamedev wanted to get rid of it was one of the main reasons I wanted to switch to D3D. |
| AndyWarne:
Some good points here and I will pass some of the highlights on to Aaron. Howard I don't have the view that you are arguing at all, this is what healthy debate is about which is why I started this thread. But, I am interested to know what you have in mind. Take an example, a game which runs at 320 X 225 and you want to run it at a fixed resolution of 320 X 240. How would you scale this? You have to add 15 rows of pixels somehow (ie 15 lines). theres no escaping that fact. Theres no other way to do it. You cant split them evenly over the screen. 15 of the lines need to be doubled-up. So the perfect scaling method which you mention is purely hypothetical. Andy |
| ARTIFACT:
in a D3D-only world, it would be possible for a good gpu coder, using HLSL or other pixel hader language, to write a set of shaders that emulate exactly the way dots look on old cga/ega/etc monitors (see my project thread, page 4, enlarged versions of the dig dug screenshots with true rgb dots etc ... something i've yet to see on anything other than true native res multisync tube monitors) in this type of situation (GPU pixel shaders), the highest the resolution, the better / most realistic the effect would be i have yet to hear about somene doing this, but i predict it will happen unless it has already and i missed it. this would be a whole chain of complex pixel operations done on the GPU on every frame. DX9 card or better would be the requirement. this is similar to how recent games generate sun 'bloom' on cars (etc) in real time. it is procedural and handled by the GPU. it is a very different model than the previous all pre-mapped lighting and rendering model. have you heard of existng efforts along these lines? |
| Navigation |
| Message Index |
| Next page |
| Previous page |