VOGONS

Common searches


First post, by Pseudopode

User metadata
Rank Newbie
Rank
Newbie

Hi to everyone,

Many users of DOSBox, and especially me, don't understand some of the features of DOSBox. So I would like to know if someone could help us. 😉

The processor emulation can use four modes : simple, normal, full and dynamic.
Do you know what is the difference between each of them ?
Until today I thought it was :
- Simple = 80286,
- Normal = 80386 (inclunding EMS emulation),
- Full = 80386 + PFU,
- Dynamic = simple, normal or full according to the requirements of the game.
But the processer is always considered as a 486 DX, whatever mode I choose.

The MPU-401 emulation can use one of these devices : default, alsa, oss, coreaudio or win32.
Once again I'm not sure to understand the way it works.
- Alsa = Alsa device under Linux,
- OSS = OSS device under Unix,
- coreaudio = internal DOSBox device ?
- win32 = internal generic Windows device ? or device used by the drivers of the sound card ?
- default = ?

I must admit that I'm pretty lost. 😉

Thank you very much in advance for your help.

Reply 1 of 10, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

coreaudio => midi under mac os x

normal core= default core can do anything

full core = also a core capable of doing everything but slower, but reentrant so it's used internally when running normal core to deal with pagefaults. (uses a different decoding system then normal)

dynamic core= translating core. beta quality but +/- 3 times as fast as normal core.

simple core= same as core_normal but the paging capabilites have been left out. Should give better results on systems with small cpu caches and other endian.

simple will switch to normal if it detects that paging has been activated. (if everything goes as we programmed it)

HTH

Water flows down the stream
How to ask questions the smart way!

Reply 2 of 10, by Guest

User metadata

Hi Qbix,

Thanks a lot for these informations.
Because I'm not a specialist, I will try to sum up what I understood :
1. Midi options
- Alsa : uses the Alsa device driver under Linux OS,
- OSS : uses the OSS device driver under UNIX OS,
- Win32 : uses the sound card device driver, under Windows OS,
- Default : uses automatically the good device according to the OS.
2. Processor options :
- simple : 80x86 processor with XMS/EMS, without virtual memory
handling, suitable for low-end systems,
- normal : 80x86 processor with XMS/EMS, with virtual memory
handling,
- full : 80x86 processor with XMS/EMS, with different virtual memory
handling, slower than normal mode,
- dynamic : 80x86 processor with XMS/EMS, faster than normal and
full mode but less compatible.

When you say that simple will switch to normal if it detects that paging have been activated, you mean activated by a game ?

Reply 3 of 10, by Pseudopode

User metadata
Rank Newbie
Rank
Newbie

Guest was me... Once again I forgot to log in. 😒

I'm not sure to understand : if paging is refering to virtual memory, what is designed for ?
- For machines with low-end memory ?
- For games which require a lot of memory ? In fact more than the amount avaliable under DOSBox ? cf memsize option.

Sorry to bother you with all these questions. I promise these are the last ones ! 😀

Reply 5 of 10, by Pseudopode

User metadata
Rank Newbie
Rank
Newbie

Hi Kaminari ! 😉 Thanks for these precisions.

I made some researchs about dynamic translation.
I finally found this site : http://www.byte.com/art/9711/img/117cpua2.htm

If I correctly understand, dynamic translation works in this way :
- there is a cache where compiled code is stored,
- when the emulator has to translate a hardware instruction, it checks in a lookup table if there is a compiled code which corresponds in the cache,
- if yes, the instruction is emulated by this code,
- if no, the code is compiled and sent into the cache for the next time.
Instructions which are often called can be executed faster than in normal mode.

Reply 6 of 10, by Pseudopode

User metadata
Rank Newbie
Rank
Newbie

OK, like my friend Victor says, I think I complicate too much things.
If I had to sum them up :
- from simple to full, the emulation is more complete/complex but performances can decrease,
- dynamic, the emulation is less stable but performances can increase.
Do you think it's correct ?

Reply 7 of 10, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

no not completely.
simple -> normal is an increase in emulation capabilities.
although simple will switch to normal if it detects that paging is used.

full is just a completely seperate thing. We could even hide it from the end-users but as it's completely different it might run a game that doesn't work with normal or the reverse. (not that likely as they share a lot of code as well)

about dynamic you are correct

paging is not only used for games that want more memory then dosbox provides. Quite some games used for on demand loading of files as well. as there are very little games that need 64 mb memory ,
but many games use paging.

I noticed that sum up thread of you.

midi
alsa linux midi (new system 2.6 kernel for sound)
oss linux midi (old system for sound)
Win32: default midi device under win32. cvs has support for any device under win32

full is almost correct. it's a different 80x86 emulation technique but using the same virtual memory handling. but that are mere details.

Yes I do mean activated by the game.

Water flows down the stream
How to ask questions the smart way!

Reply 8 of 10, by Pseudopode

User metadata
Rank Newbie
Rank
Newbie

Thanks again Qbix for your patience and for your help.

I think I can sum it up correctly this time :
- Simple : 80x86 processor emulation, does not include virtual memory handling,
- Normal : increase capabilities of simple mode, includes virtual memory handling,
- Full : different way to emulate processor, includes virtual memory handling,
- Dynamic : another different way to emulate processor, increase performances but can be less stable.
Simple mode switches to normal mode if a game requires more memory than avaliable under DOSBox (memsize option) or demands loading of files.
A game which doesn't work on a core mode, could work on an other.

I think these (very) precious informations will be usefull for everyone, including the DOSBox Wiki Page. I'll include them in my french guide too.

Reply 10 of 10, by Pseudopode

User metadata
Rank Newbie
Rank
Newbie

OK, the game "believes" all the files it needs are loaded into memory, but when it attempts to access one of them, a pagefault happens and the file is loaded into memory. On-demand.
Files are kept on the hard drive and called into memory only when the game needs them.

I understand now why you corrected me, pagefaults are not only designed to create virtual memory. And by the way, that's the method used by most of the games installed on hard drive ! I don't know why I didn't notice that before. How stupid I am... This "on-demand" method is also used for sound, and can be accelerated with buffer and prebuffer. Am I correct ?

Thanks again mister bix ! 😉