First post, by Rav
Hi there
UCP 2.0.5.1 :
Screenshots from my MMX
I got my new UCP in a state that in can finally be published.
The new version is compatible with the following PCI chips:
[Northbridge]
- ALi M1429 (and G version)
- ALi M1489
- ALi M1521
- ALi M1531
- ALi M1541
- Intel 440BX
- Intel 440EX
- Intel 440FX
- Intel 440LX
- Intel 440ZX
- Intel i815
- Opti 82C802G
- Opti 82C895
- SiS 471
- SiS 496/497
- SiS 5511/2/3
- SiS 5571
- SiS 5581/2
- SiS 5591/2
- Via 82C495G
- Via 82C570M
- UMC UM8881F
[Southbridge]
- ALi M1523
- ALi M1533
- ALi M1543
- Intel PIIX
- Intel PIIX3
- Intel PIIX4
- Intel ICH2
- SiS 5595
- UMC UM8886/A/N/F/BF
[VL to PCI Bridge]
- Ali M1435 (Stub - Documentation missing)
- Opti 822
- VIA 82C505
[Video cards]
- S3 Trio64
- S3 Trio64 V2 DX
- S3 Virge DX
[IDE Controller]
- IDE chunk of UMC UM8886AF
[CPU]
- Cyrix 5x86
If you have any idea for improvement or request for chipset, please let me know
Utilisation, you won't be lost, if you ever used Award BIOS. Settings are saved in the same folder as the .exe. Once you made configurations, you can put the thing in the autoexec.bat with /autoload switch, to just load the configured settings.
There is a memory test tool in the program, but it's still alpha-ish and ugly. If you want to test new memory timing/speed settings in memtest86+, you can simply boot using something like QEMM, set the settings and press ctrl-alt-del, it will fastboot (instantly load memtest from the flop) without going back to the BIOS, preserving all settings. If you do that, be sure to not have network drivers loaded as they also don't get reseted and they will DMA packets in the RAM, failing the test.
Note that I have only tested on Ali M1531/M1533 (My system). Settings in yellow in the screenshot are what I changed (Gained 1.5fps on Quake yay!)
Here a chip support file :
.
I welcome peoples making some for other chips that are not listed, and I will add them to UCP2.
User loadable files are planned to be supported in a future version (once I have all structures for all the supported way of patching stuff implemented and stabilised).
Here an example of a register setting for a freetext format (digit between 0 and 31)
{"PCI Latency Timer","Controls the amount of time the M1531 can burst data to the PCI Bus.",0, 0, 0, 0x0C, // Bus, Dev, Func, Reg0xF800, // Mask: Bits 7-311, // Shift: 3 bits0, // opt_count: 0 (not used){ {NULL, 0} }, // opts: Empty/Unused0, // current_idx: current or default value0, // default_idx: default value, populated and first launch from the currently configured setting by the BIOSINPUT_TYPE_FREEFORM, // It's a number input0, // Min Value31 // Max Value}
Bus, Dev, Func will be removed in the future, just set it all to 0,0,0
Here another one for a setting with choices:
{"Refresh period", "Period to refresh DRAMs. Longer delay = faster operation.",0, 0, 0, 0x44, 0x0700, 8,5, { {"1024 Clk", 0},{"2048 Clk", 1},{"4096 Clk", 2},{"8192 Clk", 3},{"16384 Clk", 4} }, 0, 0,INPUT_TYPE_LIST, 0, 0},
Note to people wanting to help submitting chip files.
PCI Configuration mode is accessed via 32 bits chunks and x86 is little endian. So here how to properly set the register
Example register 0x44, bit 2-3.
You take the register from the doc, 0x44, and do "mod 4". you endup with "0", so you do as simply as:
Register "0x44", mask "0C" and shift "2"
Example register 0x46, bit 2-3
0x46 mod 4 is equal to 2, so you have to shift all the stuff 2 times 8 bits on the left
You write it as register "0x44" still (You can also write 0x46, my program do chop the two last bits of the register digit.)
Mask would be "0x0C0000"
shift would be "18" (2 + (2 * 8 ))
5/4/26 : Updated UCP2
- Simple hotfix to fix a bug in the screen configuration restoration (when user exit the TUI). It won't leave you with an invisible cursor anymore if you disable "UCP Settings > Restore screen framebuffer".
- Added part of planned IO Port type register configurations (nothing to see there, yet)
5/5/26 : Updated UCP2 to 2.0.1
- IO PORT support other than PCI Configuration mode supported
- ISA chipset supported (none implemented)
- PCI adaptors supported
- Save file format updated to support the IO Port stuff and ISA devices (Old format is converted to the new one if you already have a save file).
Added the following chipset
- 440EX
- 440FX
- 440LX
- 440XZ
- PIIX3
- PIIX
Added the following video cards
- S3 Trio64
- S3 Trio64 V2 DX
- S3 Virge DX
5/22/26 : Updated UCP2 to 2.0.2
- Changed the option page layout to optimize available space for option strings
- Removed shilly abbreviations as they are no longer needed
- Added a few SiS chips (5511/2/3, 5571/2, 5581/2, 5591/2, 5595)
- Update save format (Older saves are converted)
5/25/26 : Updated to 2.0.4
- Allow system without PCI to select there ISA/VL chipset from a popup on first launch, with a list of ISA chipsets
- Updated the save format so proper ISA support
- Added a mechanism to support slow PCI boards (the ones with PCI bridged behind a VL Bus). These are still considered PCI but do show a popup to allow user to select there ISA northbridge (It show possibly compatible chipset, for example if you have a Via 82C505, it will allow you to choose between Via 82C496G and 82C570M... It won't show Opti or Ali options.)
- Added a few chips (Ali M1429/G, Ali M1489, Opti 802G, Opti 822, Opti 895, SiS 471, SiS 496/497, Via 82C496, Via 82C570M, Via 82C505, UMC 888*)
5-28-26 : Updated to 2.0.5
- Fixed minor bugs
- Fixed the main config loading loop (it only affected users with 2 configured ISA devices or more, so... no one!)
- Fixed a race condition for loading configuration on pure isa hardware (ugly fix as using volatile and memory barriers did not work)
- Added ISA/IO Ports devices (UMC UM8886AF and Cyrix 5x86)
5-29-26 : Updated to 2.0.5.1
- Hotfix (Cyrix 5x86)
- Hotfix (UMC 8886BF is a 8886A coupled with an extra internal PCI IDE controller on a "different" PCI device)