QUOTE (Offler @ Dec 26 2007, 07:42 AM)

Usually users do not need emm386 in windows 9x if they dont want to use dos programs. Emm386 provides EMS, UMB and Protected mode. UMBPCI provides only UMB which is mostly better choice just because it is not so fat as EMM386 Managing...
As far as I'm aware in all the documentation I've seen in the past, EMM386 was never a protected-mode providing driver, so to speak. Usually, in anything to do with protected-mode, there's always an accompanying driver that the software is designed to work with. CWSDPMI is an example that was given, DOS4GW is another one. I've seen generic Dos Protected Mode Interface (DPMI) providing drivers (and I could probably look in my DOS stuff and see if I could find you one). EMM386 is not one (at least according to PKZIP/PKUNZIP 2.04g when I ran it).
I think the confusion lies in this: EMM386 is a
VCPI client . Basically put, VCPI is what enables programs to see all the memory as either EMS or XMS memory (unlike DOS 5.0 or so when the EMS driver tied up memory, etc). VCPI has nothing to do with protected-mode programs. If you don't use EMS memory, then you don't need VCPI, which means if you don't need EMS memory, then you don't load EMM386.
To summarize:
VCPI is not protected mode!QUOTE
I need Protected mode. Not because i want to use it, but just because some dos applications are programmed for it - therefore i can use dos4gw without trouble and no other dos stubs are needed.
All DOS4GW requires is a XMS memory provider. I've run many games which use that without EMM386.
QUOTE
these two functions of EMM386 are crucial for wide spreaded compatbility. UMB managing which EMM386 provides is really a disaster for upper and conventional memory. i try some other configurations... and i hope i find another better solution.
As was said, EMS works by swapping 64KB chunks of memory into the UMB. So #1: Your UMB handling needs to be through EMM386, and #2: You'll get maybe 30KB at the most aftewards - you either get the gobs of upper memory to load drivers, or EMS, not both. There's no way around both of these facts.
(And I don't think you'll find anything different/better for an EMM386 driver. When I looked at OpenDOS last, it was using virtually the same EMS driver as MS-DOS)
As was said, you'll want to use either UMBPCI.SYS or EMM386.EXE, not both. If both will load, one of them will be a waste in memory. Besides, you should be able to load the SB emulation driver without using much conventional memory, anyway. If you wish, I can look at my old configs and see what I did with my emulation driver load back in the 98 days - I didn't have a problem getting enough memory to run anything in DOS back in those days.