v86 icon indicating copy to clipboard operation
v86 copied to clipboard

Any luck with directx on win2k or xp?

Open bit-lang opened this issue 6 months ago • 12 comments

Not an issue, just wondering if anyone tried

bit-lang avatar Jun 04 '25 10:06 bit-lang

See https://github.com/copy/v86/issues/893 and https://github.com/copy/v86/issues/1322, the same in Windows NT. Due to CPU-intensive software rendering, 3D games/apps run slowly (or very slowly).

SuperMaxusa avatar Jun 04 '25 12:06 SuperMaxusa

See https://github.com/copy/v86/issues/893 and https://github.com/copy/v86/issues/1322, the same in Windows NT. Due to CPU-intensive software rendering, 3D games/apps run slowly (or very slowly).

Thank you.

I tried windows 2000 with directx 7 on copy.sh site, it is truly very slow, but still amazing if you don't mind much about performance.

One naive question, how do I make v86 to load an image from "http://localhost/mydisk.img" at startup?

bit-lang avatar Jun 06 '25 01:06 bit-lang

One naive question, how do I make v86 to load an image from "http://localhost/mydisk.img" at startup?

If you about copy.sh/v86, you can allow CORS for https://copy.sh origin (or for all) in your localhost server and use this URL: https://copy.sh/v86?profile=custom&m=<ram size in mb>&hda.url=http://localhost/mydisk.img

If you about embedded v86, just add hda object to the V86 constructor:

var emulator = new V86({
      <...>,    
      hda: {
          url: "http://localhost/mydisk.img"
      },
});

SuperMaxusa avatar Jun 06 '25 09:06 SuperMaxusa

One naive question, how do I make v86 to load an image from "http://localhost/mydisk.img" at startup?

If you about copy.sh/v86, you can allow CORS for https://copy.sh origin (or for all) in your localhost server and use this URL: https://copy.sh/v86?profile=custom&m=<ram size in mb>&hda.url=http://localhost/mydisk.img

If you about embedded v86, just add hda object to the V86 constructor:

var emulator = new V86({
      <...>,    
      hda: {
          url: "http://localhost/mydisk.img"
      },
});

Thank you

bit-lang avatar Jun 07 '25 00:06 bit-lang

One naive question, how do I make v86 to load an image from "http://localhost/mydisk.img" at startup?

If you about copy.sh/v86, you can allow CORS for https://copy.sh origin (or for all) in your localhost server and use this URL: https://copy.sh/v86?profile=custom&m=<ram size in mb>&hda.url=http://localhost/mydisk.img

If you about embedded v86, just add hda object to the V86 constructor:

var emulator = new V86({
      <...>,    
      hda: {
          url: "http://localhost/mydisk.img"
      },
});

Followed your above instructions and it worked like a charm.

Then I was feeling smart and appended "&hdb.url=<another_image_url>" , only to find out it didn't work as expected. That is, only hda available inside the system.

bit-lang avatar Jun 07 '25 03:06 bit-lang

Found a problem using https://copy.sh/v86? profile=custom&m=32&hda.url=http://localho st/mydisk.img

There is no sound.

Chrome debug console complained about "the AudiuContext was not allowed to start. It must be resumed or created after a user gesture on the page".

How to solve this please?

bit-lang avatar Jun 07 '25 06:06 bit-lang

Click on the emulator screen, it should resume the sound, or allow autoplay in your browser settings.

SuperMaxusa avatar Jun 07 '25 08:06 SuperMaxusa

Then I was feeling smart and appended "&hdb.url=<another_image_url>" , only to find out it didn't work as expected. That is, only hda available inside the system.

Yes, only hda supported, you can try ?bios=bochs&cdrom.url=<...> with an ISO file but it currently works buggy, waiting for #1325.

SuperMaxusa avatar Jun 07 '25 08:06 SuperMaxusa

Hi there.. just my 2cts.. I 've managed to get my fav. direct-x 9c application running after a live-cd boot..

The live-cd is based on win2k3 files and runs the amiga-emulator-winuae from ramdisk..

As it lacks audio ( need to transfer sb16 regsettings from running v86-win2k3 system) the experience is not 100% yet.. but it looks promising..

I vastly believe a componentized build of a XP-like system (with PEBuilder or WinBuilder or even my custom XPEBuilder) forms an excellent base for testing direct-x on v86 and as such is proven to be functional..

This particular ISO live-cd was about 80MB in size and needs minimal resources yet can run with (1792MB ram and 256MB vgamem)-80MB so snapshots can be saved..

Image

PTz0uAH avatar Aug 04 '25 06:08 PTz0uAH

I got some progress on Windows XP, most likely it also works on Windows 9x but I haven't tested. It uses Mesa3D and WineD3D, i.e. game -> directx -> wined3d -> opengl -> mesa3d -> software.

Performance is very low, I'm currently using the MMX-optimized version. I guess the SSE3-optimized version (that should supports on v86), might have better performance, but I couldn't get it to work.

Here is the guide on how to install it:

  1. [Mesa3D] Download https://github.com/JHRobotics/mesa9x/releases/download/v23.1.9.138/mesa9x-23.1.9.138-opengl32-win98-softpipe.zip.
  2. Unpack to any folder.
  3. Restart Windows, press F8 on loading, select Safe Mode.
  4. Log in as Administrator.
  5. Open Explorer, type in the address bar: C:\Windows\system32\dllcache and press Enter.
  6. Copy the unpacked opengl32.dll with the replacement.
  7. Follow the previous step with "C:\Windows\system32".
  8. Restart Windows.
  9. [WineD3D] Install DirectX 9.0c (for Windows XP) if not.
  10. Download https://github.com/JHRobotics/wine9x/releases/download/v1.7.55.45/wine9x-1.7.55.45-mmx.zip.
  11. Follow by https://github.com/JHRobotics/wine9x?tab=readme-ov-file#installation-on-xp.

Small showcase:

  • Kao the Kangoroo Demo (2000): kao

  • 3DMark 99 Max: 3dmark

SuperMaxusa avatar Aug 04 '25 16:08 SuperMaxusa

I got some progress on Windows XP, most likely it also works on Windows 9x but I haven't tested. It uses Mesa3D and WineD3D, i.e. game -> directx -> wined3d -> opengl -> mesa3d -> software.

Performance is very low, I'm currently using the MMX-optimized version. I guess the SSE3-optimized version (that should supports on v86), might have better performance, but I couldn't get it to work.

Here is the guide on how to install it:

  1. [Mesa3D] Download https://github.com/JHRobotics/mesa9x/releases/download/v23.1.9.138/mesa9x-23.1.9.138-opengl32-win98-softpipe.zip.
  2. Unpack to any folder.
  3. Restart Windows, press F8 on loading, select Safe Mode.
  4. Log in as Administrator.
  5. Open Explorer, type in the address bar: C:\Windows\system32\dllcache and press Enter.
  6. Copy the unpacked opengl32.dll with the replacement.
  7. Follow the previous step with "C:\Windows\system32".
  8. Restart Windows.
  9. [WineD3D] Install DirectX 9.0c (for Windows XP) if not.
  10. Download https://github.com/JHRobotics/wine9x/releases/download/v1.7.55.45/wine9x-1.7.55.45-mmx.zip.
  11. Follow by https://github.com/JHRobotics/wine9x?tab=readme-ov-file#installation-on-xp.

Small showcase:

  • Kao the Kangoroo Demo (2000):
kao * 3DMark 99 Max: 3dmark

I'm trying to replicate your work. any update on the performance ? I also wonder about FPS on the Kao the Kangoroo Demo.

rtmtree avatar Nov 15 '25 16:11 rtmtree

any update on the performance ?

Not yet, it seems that SSE3 version also required FXSR and SAHR that v86 doesn't support. Maybe with VirGL (see https://github.com/copy/v86/issues/51 and https://github.com/JHRobotics/softgpu/issues/13), we can get better performance.

I also wonder about FPS on the Kao the Kangoroo Demo.

Unfortunately, very (x100) low, I haven't test in gameplay.

SuperMaxusa avatar Nov 17 '25 07:11 SuperMaxusa