VOGONS

Common searches


DOSBox-X branch

Topic actions

Reply 580 of 2397, by collector

User metadata
Rank l33t
Rank
l33t

When compiling on VS 2010 it fails with "..\src\winres.rc(169): error RC2104: undefined keyword or key name: ID_LINEWISE"

The Sierra Help Pages -- New Sierra Game Installers -- Sierra Game Patches -- New Non-Sierra Game Installers

Reply 581 of 2397, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
collector wrote:

When compiling on VS 2010 it fails with "..\src\winres.rc(169): error RC2104: undefined keyword or key name: ID_LINEWISE"

I committed a change that removed the ID_LINEWISE constant and the reference in winres.rc. Git pull the latest commit and try again.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 582 of 2397, by truth_deleted

User metadata

Thank you for improvements to the pci emulation (and to ide)! The S3/PCI device works great under this new code. However, it doesn't recognize the V1 emulation. It is probably due to my porting of code bits into a vanilla SVN build, but the S3 works fine, so I'm assuming that the pci code port is not at fault. Would you consider to verify that the V1 works for you? If it does, then it will isolate the cause to missed bits instead of a current V1 incompatibility. 😀

Reply 583 of 2397, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

I mentioned this back on page 10. If there are major changes afoot in PCI emulation, perhaps it is worth exploring again?

Jorpho wrote:
I found this QEMU guide just now: http://gunkies.org/wiki/Installing_Windows_95_on_Qemu […]
Show full quote

I found this QEMU guide just now:
http://gunkies.org/wiki/Installing_Windows_95_on_Qemu

Like DOSBox-X, it seems Windows 95 on QEMU also doesn't recognize the PCI bus right off the bat. What is interesting is that the guide recommends using Intel's PCI drivers instead of the ones that come with Windows.
http://downloadcenter.intel.com/confirm.aspx? … lName=&lang=eng

Perhaps this might make some difference in regards to stability?

Reply 584 of 2397, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
truth5678 wrote:

Thank you for improvements to the pci emulation (and to ide)! The S3/PCI device works great under this new code. However, it doesn't recognize the V1 emulation. It is probably due to my porting of code bits into a vanilla SVN build, but the S3 works fine, so I'm assuming that the pci code port is not at fault. Would you consider to verify that the V1 works for you? If it does, then it will isolate the cause to missed bits instead of a current V1 incompatibility. 😀

What do you mean by V1? The Voodoo 3DFx emulation?

I know that so far I've hardly modified the code, except to remove the OpenGL translation and to transition the code to the new PCI emulation system I just wrote. I'm not sure how to test the voodoo emulation.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 585 of 2397, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
Jorpho wrote:

I mentioned this back on page 10. If there are major changes afoot in PCI emulation, perhaps it is worth exploring again?

Jorpho wrote:
I found this QEMU guide just now: http://gunkies.org/wiki/Installing_Windows_95_on_Qemu […]
Show full quote

I found this QEMU guide just now:
http://gunkies.org/wiki/Installing_Windows_95_on_Qemu

Like DOSBox-X, it seems Windows 95 on QEMU also doesn't recognize the PCI bus right off the bat. What is interesting is that the guide recommends using Intel's PCI drivers instead of the ones that come with Windows.
http://downloadcenter.intel.com/confirm.aspx? … lName=&lang=eng

Perhaps this might make some difference in regards to stability?

I noticed what Windows 95 autodetects on install is strongly affected by whether or not there is a PnP BIOS, and what the PnP BIOS reports.
That's why DOSBox-X's ISA PnP BIOS emulation is written to report "devices" that at first glance seem blindingly obvious and redundant, but there a reason for each one:

1. PCI bus. Windows 95 will not probe ports 0xCF8-0xCFC to detect the PCI bus. It must be told by the PnP BIOS that there is a PCI bus, then it will auto-install the driver for it and enumerate PCI devices.
2. ISA bus. Windows 95 will not install the driver needed to do ISA Plug & Play enumeration unless told by the PnP BIOS that there is an ISA bus (meaning, physical ISA slots)
3. The APM bios. If the install program failed to detect the APM bios, you can get Windows 95 to auto-install the APM BIOS by listing it as a "device" through the PnP BIOS.

So, if you want to install Windows 95 and magically have it see the PCI bus and PnP devices, you must run it in DOSBox-X with the Plug & Play BIOS enabled. If you don't, then you have to manually install the PCI driver and APM BIOS driver (I don't think there's a way to manually install the PnP enumerator). Intel's PCI drivers are not necessary.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 586 of 2397, by truth_deleted

User metadata
TheGreatCodeholio wrote:

I know that so far I've hardly modified the code, except to remove the OpenGL translation and to transition the code to the new PCI emulation system I just wrote. I'm not sure how to test the voodoo emulation.

I'm eager to test your new PCI emulation with the Voodoo 3DFx emulation (V1 emulation). I forgot to include that the V1 emulation is detected in 95! It is seen by the operating system, but I can't run 3dfx games, such as UT99 and GLQuake. The games start, but they don't activate the V1 emulation (according to a message that would otherwise appear in the console window). Before applying your pci code, a console message would log that the V1 is active along with the display resolution, but after applying the pci code, then this message is absent and the game will report an error, such as GL not found.

I tested this with and without the opengl translation (such as in software mode). I'll verify this again. 😀

Edit: verified that V1 in software mode (no opengl translation) does not typically report a log message, even though it is functioning (under the old pci emulation). However, this mode does not yet work under the new pci emulation, at least as ported to SVN. GLQuake would show the same GL not found error. I've used GLQuake, but I haven't found a simple tool that verifies the V1 emulation in dos (a better method than running GLQuake each time).

Reply 587 of 2397, by Laucian

User metadata
Rank Newbie
Rank
Newbie

If anyone wants to try out the newest features but doesn't want to go through the process of building it in Windows (which is a bit of a hassle), I've uploaded my own build of revision 666 here. I'll be keeping builds mostly updated.

http://goo.gl/Ra0A26

Keep up the good work!

Last edited by Laucian on 2014-07-19, 11:12. Edited 1 time in total.

Reply 589 of 2397, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

I mean to but always get sidetracked. PM me a reminder tomorrow evening (GMT) 😉

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 590 of 2397, by truth_deleted

User metadata

Tried each of the PCI emulation commits in order by time and I believe this commit, "massive rewrite, cleanup of PCI bus emulation", is the one leading to an inactive V1 emulation, at least in my case. The previous ones don't cause any issue. I'll continue to test!

Edit: I'm looking at this section from the old pci code since the V1 is mapped to a different address space under the new code (although this does not necessarily point to a problem):

-		Bit32u address_space=(((Bit32u)VOODOO_INITIAL_LFB)&0xfffffff0) | 0x08;	// memory space, within first 4GB, prefetchable
- registers[0x10] = (Bit8u)(address_space&0xff); // base addres 0
- registers[0x11] = (Bit8u)((address_space>>8)&0xff);
- registers[0x12] = (Bit8u)((address_space>>16)&0xff);
- registers[0x13] = (Bit8u)((address_space>>24)&0xff);

Reply 591 of 2397, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

Truth5678, git has a very good regression testing option called bisect (in case you don't know about that). It's a very good way to quickly find the culprit and more organized than aimless trying through git commits.

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 592 of 2397, by truth_deleted

User metadata

Continued looking at the pci emulation question. Attached are two images, one from the original and the other from the new pci emulation. There are differences in the values that are written to the registers which shows that the V1 emulation is not sending the (presumably) expected series of bytes with the new pci emulation (at least in my case).

Attachments

  • new_emulation.PNG
    Filename
    new_emulation.PNG
    File size
    30.77 KiB
    Views
    1048 views
    File comment
    new pci emulation
    File license
    Fair use/fair dealing exception
  • original_emulation.PNG
    Filename
    original_emulation.PNG
    File size
    29.37 KiB
    Views
    1048 views
    File comment
    original pci emulation
    File license
    Fair use/fair dealing exception

Reply 593 of 2397, by truth_deleted

User metadata

Posted a patch to workaround use of the V1 emulation while running Codeholio's new pci emulation. This was only tested in my dosbox build. The modified code also suggests the place in code to implement a fix instead of use of this workaround.

Attachments

  • Filename
    pci_v1_workaround.diff
    File size
    621 Bytes
    Downloads
    54 downloads
    File comment
    Patch for V1 emulation with new PCI code
    File license
    Fair use/fair dealing exception

Reply 594 of 2397, by truth_deleted

User metadata

The above workaround is not necessary, this attached patch fixes the issue between the V1 and the new PCI emulation. The patch corrects a typo error, otherwise all of Codeholio's code is perfect. This probably resulted from the lack of having a simple test of the V1 emulation. 😀

Thanks Codeholio!!

Attachments

  • Filename
    pci_v1_fix.diff
    File size
    659 Bytes
    Downloads
    61 downloads
    File comment
    Patch to fix V1 emulation with new PCI code
    File license
    Fair use/fair dealing exception

Reply 595 of 2397, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
truth5678 wrote:

The above workaround is not necessary, this attached patch fixes the issue between the V1 and the new PCI emulation. The patch corrects a typo error, otherwise all of Codeholio's code is perfect. This probably resulted from the lack of having a simple test of the V1 emulation. 😀

Thanks Codeholio!!

I see... it needs to act on the value written even if it doesn't change config bytes.

Just to confirm, writes to bytes 0x40, 0xC0, and 0xE0 trigger actions but do not change the value read back? Does anyone have a Voodoo card they can verify this on?

Also, looking over the SST write code, I think I see another issue that needs to be fixed: Writes to bytes 0x10-0x13 (the LFB base) are not being handled properly. All byte writes are being handled as if the upper 8 bits of the 32-bit LFB address. I will push another change I think is necessary to improve emulation.

Is there anything I can download on the internet to test Voodoo 3Dfx emulation?

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 596 of 2397, by Laucian

User metadata
Rank Newbie
Rank
Newbie

http://www.falconfly.de/artwork.htm

Down on the bottom there are various 3dfx tech demos. They should work to test it out.

If that's not enough, there's always demos of games.

https://archive.org/details/UnrealTournament for Windows
https://archive.org/details/Carmageddon_1020 for DOS

Reply 598 of 2397, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

Laucian: The Carmageddon demo you linked to seems to be a "free" demo that only supports 320x200x256 color graphics. It mentions the full retail version will have SVGA graphics.

I found a copy of the "reference" 3Dfx drivers and managed to get some DOS demos to talk to GLIDE2X.OVL. The only changes I needed to make (not sure if this is because of the particular version I found) was that I had to add Pentium Model Specific Register emulation to DOSBox and code to ignore undefined registers because GLIDE2X.OVL appears to assume MSRs and MTRR registers are present. So far, the demos in 3Dfx mode look good!

Attachments

  • Filename
    vg-w9x-q3.exe
    File size
    1.66 MiB
    Downloads
    53 downloads
    File license
    Fair use/fair dealing exception
Last edited by TheGreatCodeholio on 2014-07-19, 19:52. Edited 1 time in total.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 599 of 2397, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

file.php?id=15245
file.php?id=15246

Attachments

  • Filename
    nature_3dfx.jpg
    File size
    101.44 KiB
    Downloads
    No downloads
    File license
    Fair use/fair dealing exception
  • Filename
    3dfx_trip.jpg
    File size
    184.15 KiB
    Downloads
    No downloads
    File license
    Fair use/fair dealing exception

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.