-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ideas for running "The Elder Scrolls: Arena" with JEMMEX #16
Comments
I don't have that game, so cannot try by myself. You might try MAX=32768 to offer 32 MB EMS, also X=C000-FFFF to ensure no UMB is supplied, and MAXEXT=64M to restrict XMS to 64 MB. |
@Baron-von-Riedesel Thanks for these ideas! I tried all three parameters. The game is freeware, officially published by Bethesda now. It would mean a lot to me to get this one working, really. And since it's a freeware game, you can take a look, should you want to. |
I tried it - and found no real problems. I used MS-DOS 7.1 ( Win98SE ) and JemmEx: DEVICE=C:\DIV\JEMMEX.EXE MAX=32M MIN=48 I=B000-B7FF I=TEST First, I launched a.exe - the game started, without sound. The machine was a AMD ryzen 3600, with 16 GB and onboard HDA sound. |
Thanks for more ideas! I have both MS-DOS 6.22 and FREEDOS installs, but not MS-DOS 7.1. |
Very unlikely.
Perhaps, if I find a USB stick with FreeDOS - might take some time, though ... |
I am trying to replicate your configuration (instead of making you replicate mine... I don't want to waste your time). I installed MS-DOS 7.1 from CD image, but upon boot I see: |
If JemmEx displays "JemmEx loaded", it has loaded fine and the crash is likely to happen with some driver loaded into an UMB. To "debug", avoid loading JemmEx in config.sys ( press Shift-F5 in the menu ) and instead load it from the command line, with "JemmEx load /v". |
Great, thanks.
...which I have just after That's strange, isn't it?? |
After removing the
...But running Arena's I can briefly see "DIVIDE ERROR" when running |
This makes DOS load in conventional memory, reducing that kind of mem to ~ 500 kB. Nevertheless, I also tried that ( MEM.EXE reports 498 kB free mem then ), and a.exe still starts the game. The problem might be your BIOS - perhaps you should run MEMSTAT, supplied with Jemm, to see what regions in the first MB are marked as "reserved"... |
No. Only the first MB is interesting here. In your case, the BIOS tells that region F0000-FFFFF is reserved. For Jemmex, this means that region C0000-EFFFF may be potentially used for UMBs and the EMS page frame. Jemm scans that region to exclude ROMS ( usually finding the VGA ROM at C0000 ) and RAM ( displaying a warning and ignore such regions ). IOW, Jemm relies on the BIOS that it reports ALL reserved regions in the first MB - if the BIOS doesn't do that exactly, errors like yours are likely to occur. In that case, you'll have to manually exclude the "missing" reserved regions ( using the X= option ). |
@Baron-von-Riedesel Ah! So this is a BIOS problem, it seems... Also, what areas should I exclude in JEMMEX X=... exactly? Or is a BIOS fix needed here even with X=...? |
I don't know ( it's actually a guess only ). You'll have to try - perhaps start with X=E000-EFFF... |
That doesn't work. What would be the progression? |
Hey guys, I'm the maker of the TinyLlama. I am however, not the "author" of its BIOS in the traditional sense. I've taken the Coreboot/SeaBIOS version modified by DMP back in 2013 for the Vortex86EX CPU and enhanced it slightly. Haven't touched any memory mapping.
Looks like the e820 map is somewhat lacking, but the "space available for UMB" line might be of interest? Try excluding the areas outside of |
@eivindbohler Thanks for chiming in! |
Yeah, ideally every reserved area should be included in the e820 map, but what I meant was try to manually exclude the areas around that "space available for UMB" that aren't already in the map: |
Tried passing |
@Baron-von-Riedesel Are multiple X parameters supported? |
Why don't you just try it out? You won't cause any damage. You might also try option NORAM, which causes Jemm not to provide any UMBs ( but it will still search a suitable EMS page frame ). |
@Baron-von-Riedesel As I said earlier, I already tried I have the same configuration as you do: DOS 7.1 and JEMMEX. |
@eivindbohler I have gathered more information on the TinyLlama memory map using Checkit, please take a look: Do you think some of those areas should be excluded from Jemmex memory management manually? Also, there used to be options to manage IRQs in the BIOS: what did those do? Game-breaking bugs could be related to that. |
I've had a similar problem, and "kind of" found the solution. Recently I installed FreeDOS in 86Box, which I configured to emulate a 486DX2 PC, and tried to run the freeware floppy version 1.06 of Arena that Bethesda distributed a while ago. But the FreeDOS preset that boots JEMM386 with EMS support would result in the game hanging with a black screen whenever I tried to enter the first dungeon or load a saved game (although the main menu and character generation worked fine). I tried rolling back to the old FreeDOS EMM386 from 2006, but to no avail. Then I decided to try the Arena CD version 1.07 (also freeware, available from GOG), and it worked just fine in FreeDOS with the same JEMM386 preset. So I guess the solution to running Arena under FreeDOS and/or with JEMM(EX) is to use this version, not the floppy one. UPD: Version 1.06 actually also works with JEMMEX, please see the comment below. |
@SenhorFlibble Did you try to run the game on MS-DOS (any version) instead of FreeDOS? I'm doing: MS-DOS seems to be more compatible with some games than FreeDOS (Realms of Arkania 2, for example), so I think it's a better option for DOS games. |
@Baron-von-Riedesel Elder Scrolls: Arena and Ultima Underworld both fail with JEMMEX (Ultima UW shows a black screen while music plays),
The key is using the I have QEMM of course, but I'd prefer JEMMEX to be my choice since it's free and opensource :) |
But isn't the RAM option just there to tell Qemm that it is to provide UMBs? That's at least the meaning of this parameter in MS Emm386. |
Also, I tried Ultima Underworld I and II ( found a CD that contains both games ). Both work with Jemmex - however, only UW I has sound, UW II is silent. But this is very likely no Jemm issue, instead might be a VSBHDA incompatibility. |
@Baron-von-Riedesel That's specially interesting. Both TES:Arena and UW only seem to work with QEMM only on the Tinyllama, but they work with JEMMEX on your computer. |
I don't know. The best settings of JemmEx for late 80s/early 90s DOS real-mode games using EMS are: DEVICE=JEMMEX.EXE MAXEXT=14M NODYN MIN=7M I=B000-B7FF MAXEXT limits XMS to 14MB - so it's ensured that all memory is below the 16MB barrier. Result: a machine with 7 MB EMS and 7 MB XMS, all addresses 24-bit, compatible with ISA DMA. |
@Baron-von-Riedesel Ok, thanks. I tried
Could it have to do with the incompatibilities I am seeing on this Vortex86 SOM? |
If I add Having to add |
Lemmings 2 doesn't work on my machines. At best it "hangs", and the debugger shows it loops while accessing the disk with int 25h - I guess some sort of copy protection... using l2-fix doesn't help. |
What machines have you tested JEMMEX+Lemmings 2 on? Also, does it also hang in the "Sound Initializing" message for you? |
AMD Ryzen 2 and Intel I5 Gen 3.
No, I tested without sound. It simply hangs after reporting how much memory is free. However, I can run the game with sound by launching DosBox under HX DOS extender... |
Do you mean you emulate DOS on DOS to run the game? |
Also, Lemmings 2 seems unbreakable under DosBOX! |
Looking at the 0MHz collection (tailored for FPGAs), they seem to to this to load Lemmings 2 on the AO486 core:
This is the specially interesting part: Any idea on how to know what memory areas should be excluded on other systems? |
Well, I know what Jemm does:
|
@Baron-von-Riedesel So, if I theorize that |
There's the MEMSTAT.EXE tool contained in the Jemm package. |
Ok, I ran MEMSTAT.EXE and I got this:
I don't quite know how to interpret that information: Should I explicitly exclude (X=...) any regions on this machine with JEMM/EMM386 by looking at that? Also, I disabled sound, and with JEMM/EMM386 loaded Lemmings 2 does this: lem2_ems.mp4Without JEMM/EMM386, it loads fine. So, enabling EMS seems to breaks Lemmings 2 graphics... I theorize EMS is overlapping with graphics memory on this system, does that make any sense? |
No, JemmEx will exclude region F0000-FFFFF automatically.
No, JemmEx will never automatically put the page frame into region A0000-BFFFF. Btw, launching JemmEx from the cmdline will tell you the address of the 64kB page frame. |
@Baron-von-Riedesel Yes, it says:
I'm out of ideas about Lemmings2+EMS on this system :( |
Ok, I think we can close this - IMO the problems with Lemmings2 are not specific to Jemm.
|
Hmm.. Maybe the Lemmings 2 executable could be edited with an hex editor to remove the word write access at offset 0xFFFF then?? |
Hi there
I just discovered that JEMMEX offers superior compatibility vs QEMM, etc
So I was trying to run "The Elder Scrolls: Arena" with it on my Vortex86-based mini computer (Tinyllama2: https://github.com/eivindbohler/tinyllama2)
The game needs EMS.
This is how I have my CONFIG.SYS and AUTOEXEC.BAT (DOS 6.22 here for max compatibility!):
CONFIG.SYS
AUTOEXEC.BAT
However, if I boot with EMS, Arena simply goes back to the C:> prompt, no errors, nothing.
Any ideas about options or parameters for JEMMEX to get it going, please?
The text was updated successfully, but these errors were encountered: