First post, by Kamerat
- Rank
- Oldbie
With the help of PCI.EXE for finding the PCI base address and PCISET to modify the correct registers I managed to get the YMF744 working on a motherboard that doesn't support legacy/ISA addressing over the PCI bus. This could also be useful when using the YMF744 behind a PCIe-PCI bridge. The registers you want to modify are 62-63h and set them to PCI base address +40 after the initialization of the card with SETUPDS.EXE.
Used this to set the Sound Blaster base address to DF40h (PCI base address is DF00). The FM synth of the card are aviable at PCI base address +60h.
(DF40h = 1101111101000000b)
pciset 0010 1073 63 11111111 11011111
pciset 0010 1073 62 11111111 01000000
SMB may be an easier way to set up the PCI registers, no need to convert to binary with this one. To load a script just type "SMB /dbg scriptfile". Here I'm also setting up MPU-401 interface (base +68h) and FM synth (base +60h).
Here's a sample script:
pci_find_device(00101073)
pci_write16(60, DF60)
pci_write16(62, DF40)
pci_write16(64, DF68)
exit
The largest problem now is configuring games. Some games you can manually edit the configuration file to set the right addresses. A tool like REMAPCMI could be useful for mapping legacy addresses, and it will probably also work on the YMF744.
Useful links:
- PCI.EXE: https://www.os2world.com/wiki/index.php/PCI.E … niffing_utility
- PCISET: https://www.uwe-sieber.de/util_e.html
- SMB by RayeR: http://rayer.g6.cz/programm/programe.htm#SMB
- YMF744 Datasheet: ftp://ftp.alsa-project.org/pub/manuals/yamaha/ymf744b.pdf
- Yamaha YMF PCI DOS initializer and TSR: http://device.yamaha.com/en/lsi/download/
This picture actually gave me the idea to try this out:
Edit: Tried Epic Pinball and One Must Fall 2097 with the REMAPCMI utility without success with both games crashing hard. Perhaps REMAPCMI and DSDMA don't like each other? Forgot that REMAPCMI remaps 220 to PCI base address +50h, when loading it with the YMF744 you need to subtract 10h from the base address to get base address +40h.
The games I had success with: Descent, Doom 1.9 (no FM bacause of hardcoded address) and Duke Nukem 3D (no FM bacause of hardcoded address).
Also played around with my PCIe-PCI brigde based on the Pericom Semiconductor PI7C9X111SL chip and here are the results with the YMF744:
- Asus P5VD2-VM SE (VIA P4M900/VT8237S): Bridge not detected.
- ASRock 939Dual-SATA2 (ULi M1695/M1567): Bridge detected but not the YMF744.
- Gigabyte GA-MA790X-UD3P (AMD 790X/SB750): Both bridge and YMF744 detected but it got IRQ conflicts (Duke Nukem 3D fails in IRQ detection). The card works in the onboard PCI slots and is the board I used for my testing.
- Asus P5B-Deluxe (Intel P965/ICH8): Same problem as above.