joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.66k stars 378 forks source link

No 64bit cpu detected? #3269

Open richardFK opened 2 years ago

richardFK commented 2 years ago

Code of Conduct & Contributing Guidelines

Have you checked that no other similar question(s) already exists?

Question

I have started using DosBox-x (Jan 2022 x64 download on Windows 10) and just tried some 16 bit .exe from various (old) sources of mine.

I get the error "No 64bit cpu detected" for some exe's but the other exe's (which were only assembly compiled) appear to work OK.

Is it something simple I have overlooked?

cpu is INTEL i7 x64 (Xeon)

maron2000 commented 2 years ago

DOSBox-X (and other variants if I understand correctly) don't emulate 64-bit CPUs. It just recently added Pentium III emulation, which is still a 32-bit CPU.

There are samples that print the same error that you mentioned, so you may want to check the source code of your exe files. https://www.japheth.de/JWasm/Dos64.html

joncampbell123 commented 2 years ago

Furthermore it's extremely unlikely that any x86_64 system would have ISA slots, and the changes to the DOSBox-X CPU core would be extensive to emulate x86_64, so it is extremely unlikely DOSBox-X would ever emulate a 64-bit CPU.

There are Pentium 4 (industrial) motherboards with ISA slots though, and therefore Pentium 4 emulation may be added in the future (and SSE2).

DOSBox-X's cutoff for whether or not something is "too new" is tied to the early 2000s when the ISA bus was quickly phased out according to Microsoft "PC standards" specifications. Consumer boards dropped ISA entirely, industrial boards kept it around a bit longer. A lot of DOS gaming relies heavily on the ISA bus especially where sound cards are involved, which is why that is a general cutoff.

https://flaterco.com/kb/ISA_chipsets.html

richardFK commented 2 years ago

@maron2000

Thanks for info - my simple quick test included FreeBASIC windows X64 version .exe generated - to correct this I am now using FreeBASIC DOS version .exe generated instead.

So far, very simple/small FreeBASIC DOS version .exe work OK.

@joncampbell123

Thanks for info - now understanding the situation, I have changed my development methods to suit DOSBox-X.

Please close this issue if you want.

Torinde commented 2 years ago

ISA slot boards - if we go very niche, I see industrial boards supporting SSE4.1 Core 2 Quad Q9400 and AVX Q77/Ivy Bridge - probably using LPC/ISA bridge chips. Even the most recent computers (or Android phones?!) can get one via PCIe/PCI/ISA bridge chips and external USB/ISA adapters 1 2 - they even sell dosbox-x.conf and win9x.img files!

I wonder how do they redirect DOSbox-X to access the ISA device behind their USB bridge.

joncampbell123 commented 2 years ago

@Torinde Are you asking DOSBox-X to emulate an ISA bus connected to a USB port? :laughing:

The funny thing, at least according to someone I follow on Twitter (I think it was TubeTime?), is that those USB-ISA boards have an interesting quirk. Instead of generating a standard 8.333MHz or 4.77MHz ISA bus clock, they use the 12MHz clock of the USB port to drive the ISA bus clock. Which means if you plug an MDA or CGA card into one of those, you'll get a working card where the dot clock and sync signals are too fast.

Torinde commented 2 years ago

No, no, I'm not asking for that, agree it would be funny though...

I'm puzzled by:

Torinde commented 1 year ago

64-bit DOS programs: Necromancer's Dos Navigator, SD64 debugger of the D3X extender, maybe others, dosemu2/fdpp, Dos64-stub 64-bit DOS extenders 1,2,3, D3X, etc. PSE-36 DOS programs: XMS extension to access >4GB memory using HIMEMSX, the modified ramdisk and HDAplay PSE (or PAE?) DOS/Win9x CWSDPMI 4GB/64GB patches; PATCHMEM: Single Programs up to 2GB, but multiple Programs up to 1024GB of RAM simultaneously, RAMDISK in the extra range Multicore DOS/Win9x RLoew MULTCORE; DOS Multicore Mode Interface https://github.com/WindowsNT/asm storage side: EDR-DOS 7.01.08 support for 64-bit file systems (64 bit operations/Long SEEK), FAT+, LBA 33-bit, multiple patches from RLoew, gpttsd (GPT read/write for Win9x) Related: #4044

Especially relevant is the DOS Navigator version: [1], actual 64-bit program, version 2 used D3X extender and didn't work with JEMM and v86. Version 3 works also with VCPI and JEMM (I'm not sure about v86).

I think that Candyman made some update/extension to D3X extender to support 64b mode? But I don't know how/where/if it is pub. dcumented. One big disadvantege is it can only run from realmode DOS, not V86. Japhet solved this problem by updating JEMM to cooperate with himemsx. But it's not "DPMI64" just XMS64 :)

Is it possible to add support for NDN DOS64 version? @joncampbell123 explained before that PSE would be very difficult, but what about x86-64 Long mode? I think it can operate with PAE instead of PSE?

joncampbell123 commented 1 year ago

I don't plan on emulating 64-bit long mode in DOSBox-X. If you need that, use Bochs, QEMU, or VirtualBox.

Torinde commented 1 year ago

I understand, but pity. I prefer DOSBox-X for various reasons...

If you allow: I see NDN is good example for a "new DOS development"