EMM386's RAM and NOEMS directives can coexist fine. It will create UMBs but not set a pageframe.
Depending on the chipset, UMBPCI + HIRAM might be a better option in that case though.
I've been noticing on a lot of mid 00's laptops, that there are 'important things' living between D000-D3FF, and E400-EFFF on them, even though there seems to be no option roms there. (Been mucking about with sbemu on them, trying to find the best fit, and ideal memory configuration. Noting that including the other halves of those spaces causes lockups and instabilities. Systems from the pentium 90 era have unambiguously free upper memory addresses though, and are better fits.)
An EMS pageframe needs a contiguous block of 64kb of upper memory addreses though, and emm386 is a bit top-heavy. In the case of at least one of the '00s laptops I am prodding, thete is a nasty PXE bios living right where it is most inconvenient, at E000-E3FF, ruining my picnic.
"Sometimes" you can expunge these option roms with a forced include, because of how EMM386 does it's thing, and that is what I have done. Just be aware that this must be an explicit include, and cannot overlap with another 'block', and might not work reliably.
EG, in my case 'something important' lives at D000-D3FF, so it gets excluded. There is an unallocated block of address at D400-DFFF. Then there is the annoying PXE boot rom I will never use at E000-E3FF, and then 'something important' at E400-EFFF.
I can't just tell emm386 to I=D400-E3FF. It will throw an error about ranges overlapping and option roms being detected.
HOWEVER, I can instead tell it to I=D400-DFFF I=E000-E3FF, and exclude the 'mystery secret sauce lives there' areas with X=D000-D3FF X=E4000-EFFF, then manually set the pageframe in the resulting 64k chunk with FRAME=D400, and it will happily do it without complaint.
This:
device=C:\Windows\emm386.exe RAM X=D000-D3FF I=D400-DFFF I=E000-E3FF X=E400-EFFF FRAME=D400
NOT THIS:
Device=C:\Windows\emm386.exe RAM X=D000-D3FF I=D400-E3FF X=E400-EFFF FRAME=D400
It's annoying, but that's how it is if you want to expunge a ROM. Just with where-ever the rom to be expunged is.
If you have the win9x CDrom handy, 'microsoft diagnostics' (msd.exe) is found on it, and can be copied off.
Running it with no memory managers or drivers loaded will let you have a look at the upper memory's layout for your system, and can point you in the right direction on what you can include for UMBs.
Debug will let you look inside an option rom's address to see what it is, so you can decide if you want to try expunging it or not.
in the above example, dropping in NOEMS instead of FRAME=D400, would give me an instant 64k of UMB. (And without the expunging of the rom, only 32k of UMB).