First post, by kraileth
- Rank
- Newbie
Hi everybody!
I've been recording quite some videos lately using dosbox so I might well say thanks for providing this feature at all! Apart from the occasional graphic glitches it all works fine. At least for low resolution games. But I ran into a problem with higher resolutions. Now I wondered if there's perhaps a way to optimize things? The wiki article about video recording is not too detailed to say the least and I also didn't find a topic about what I'm looking for in the forum, so I thought I'd start a new one. Please don't bash me just now - I already did apply standard conf optimizations and stuff. 😁
What this thread is about is collecting ideas of what could be possible. If somebody knows of a nice way to help me improve performance now, I'd of course be happy, but I've become interested in how things could be improved in theory, too.
Now the thing is, when I try to record a game in 640x480 mode - let's say any build engine game like duke3d - the performance is really low and the game becomes laggy. Playing in 800x600 while recording is totally unplayable.
I'm on a Intel i7 2.8GHz machine with 8GB or ram running Ubuntu maverick 64-Bit. Now this pc should be strong enough to properly emulate dosgames and record videos in resolutions higher than 320x200/240 but with only one core used, it isn't. What could be done about that? I had a few ideas of what could be tried but I'd really like some thoughts on it be people who know more about it...
1) Coding in virtualization to speed up emulation on the same platform. Yeah, I know, this is a "if you want it, do it yourself"-type thingy and it's not going to happen anytime soon. But I wanted to list it, too, because it is rather obvious. And apart from it not being in dosbox - can anybody estimate how much of a boost this would actually be on a pc platform? I'm just curious.
2) Adding multithreading support to dosbox so that the recording could have it's own core. Same thing as for 1), I guess. Won't happen but would be of great help in this case as the game runs fine without recording, wouldn't it?
3) I'm not a person with coding skills reaching above doing a lot of quickbasic and a little pascal with DOS 6. But as far as I know dosbox uses a zip-like codec to keep the videos a bit smaller. I've read somewhere that a well known recording software for windows (forgot the name, though) saves it's videos uncompressed. Now as disk space is usually not an issue today, I thought about disabling compression for the dosbox videos. And while I don't know if this is possible with dosbox at all, I wonder if it would increase performance. Does anybody have an idea how cpu intensive dosbox's video codec is and how much of a difference it would make to record uncompressed? The increased amount of data (it's only 800x600 or 1024x786 and not 1600x1200 or something) to be written on the disk should not be a problem with todays harddrives, should it?
4) I created a dual-boot on my machine with a second os just for my recording. The idea was to get rid of any process that I don't need to give dosbox as much cpu as possible. Now I wonder: Is there any os "best fit" for dosbox? That it's a cross-platform program doesn't mean that it runs equally fast on each system. Or am I wrong here? If no: What system should be recommended to gain the best performance possible?
5) If linux is not a bad choice (see 4)), could performance be improved by using some special means like using a low latency kernel? Could it be worth the effort to compile dosbox yourself, say on a Gentoo system, optimizing everything for your machine?
6) Forgetting about the possibility to speed up programs by compiling them for your specific machine, what about creating a live-cd "emu-os" that's totally optimized for dosbox purposes? Can anybody think of any optimizations on system level that would make this possible (or rather reasonable)?
Now this is just some random thoughts. Please feel free to add anything you can think of about this topic. It doesn't need to be "practical" right now or in the near future. Some dreaming also doesn't hurt anybody and sometimes can be inspiring to somebody else.