📄 crtcrpro.c
字号:
lpEnableData->pfnSetGammaCorrection = RageProSetGammaCorrection;
lpEnableData->pfnSetMode = RageProSetMode;
lpEnableData->pfnSetPalette = RageProSetPalette;
lpEnableData->pfnSetTextCursorBlinkingAdjustment = NULL;
lpEnableData->pfnSetOverlayGammaAdjustment = NULL;
lpEnableData->pfnGetCrtcTimings = RageProGetCrtcTimings;
lpEnableData->pfnGetExpansionSetting = bGetExpansionSetting;
lpEnableData->pfnGetTotalHTime = NULL;
lpEnableData->pfnCalculateModeBandwidth = NULL;
lpEnableData->pfnCalculateModeHorizontalTime = NULL;
lpEnableData->pfnCalculateOverlayBandwidth = NULL;
lpEnableData->pfnCalculateOverlayHorizontalTime = NULL;
lpEnableData->pfnCalculateVideoBandwidth = NULL;
lpEnableData->pfnCalculateVideoHorizontalTime = NULL;
lpEnableData->pfnCalculateHFBBandwidth = NULL;
lpEnableData->pfnCalculateHFBHorizontalTime = NULL;
lpEnableData->pfnCalculateHTimeAdjustment = NULL;
lpEnableData->pfnGetCrtcLine = RageProGetCrtcLine;
// Fill in adapter-specific information.
switch (lpHwAsicID->ulChipFamily)
{
case FAMILY_GTC:
lpEnableData->lpAdapterName = "ATI 3D RAGE PRO";
lpEnableData->aControllerCaps[0] = DAL_CONTROLLER_CAPS_EXPANSION |
DAL_CONTROLLER_CAPS_OVERLAY |
DAL_CONTROLLER_CAPS_VGA |
DAL_CONTROLLER_CAPS_OVERLAY_GAMMA | // EPR# 35497, task# 4360
DAL_CONTROLLER_CAPS_CURSOR_BLINK | //
DAL_CONTROLLER_CAPS_AMC8BIT_PORT1 |
DAL_CONTROLLER_CAPS_AMC8BIT_PORT2 |
DAL_CONTROLLER_CAPS_AMC16BIT_PORT ;
//[vichan] Port by [espiritu] for Rage Pro DAL support.
lpHwCrtc->ulGCOSupportedRegSet = RAGE_PRO_CRT_REGISTER_SET | RAGE_PRO_EXTERNAL_TVO | RAGE_LTPRO_REGISTER_SET;
lpEnableData->ulFunctionHooks |= GCO_HOOK_TEXT_CURSOR_BLINKING_ADJUSTMENT |
GCO_HOOK_OVERLAY_GAMMA_ADJUSTMENT |
GCO_CALCULATE_MEMORY_BANDWIDTH |
GCO_CALCULATE_HORIZONTAL_TIME|
GCO_HOOK_GET_HARDWARE_INFO_TABLE |
GCO_HOOK_GET_MULTIMEDIA_TABLE|
GCO_HOOK_SET_DISPLAY_OFFSET;
lpEnableData->pfnGetTextCursorBlinkingAdjustment = RageProGetTextCursorBlinkingAdjustment;
lpEnableData->pfnGetOverlayGammaAdjustment = RageProGetOverlayGammaAdjustment;
lpEnableData->pfnSetTextCursorBlinkingAdjustment = RageProSetTextCursorBlinkingAdjustment;
lpEnableData->pfnSetOverlayGammaAdjustment = RageProSetOverlayGammaAdjustment;
lpEnableData->pfnSetDisplayOffset = RageProSetDisplayOffset;
lpEnableData->pfnGetMultimediaTable = RageProGetMultimediaTable;
lpEnableData->pfnGetHardwareInfoTable = RageProGetHardwareInfoTable;
lpEnableData->pfnGetModeTiming = RageProGetModeTiming;
//Bandwidth related functions
lpEnableData->pfnGetTotalHTime = vMBW_GetTotalHTime;
lpEnableData->pfnCalculateModeBandwidth = vMBW_CalculateModeBandwidth;
lpEnableData->pfnCalculateModeHorizontalTime = vMBW_CalculateModeHTime;
lpEnableData->pfnCalculateOverlayBandwidth = vMBW_CalculateOverlayBandwidth;
lpEnableData->pfnCalculateOverlayHorizontalTime = vMBW_CalculateOverlayHTime;
lpEnableData->pfnCalculateVideoBandwidth = vMBW_CalculateVideoBandwidth;
lpEnableData->pfnCalculateVideoHorizontalTime = vMBW_CalculateVideoHTime;
lpHwCrtc->ulDspConfig[0] = 0;
lpHwCrtc->ulDspConfig[1] = 0;
lpHwCrtc->ulDspOnOff[0] = 0;
lpHwCrtc->ulDspOnOff[1] = 0;
lpHwCrtc->ulCurrentDeviceMap[0] =0;
lpHwCrtc->ulCurrentDeviceMap[1] =0;
ulTemp = MMREADULONG(lpHwCrtc->HwAsicId.lpMMR, CONFIG_STAT0);
if ((ulTemp & CONFIG_STAT0_CfgMemType) > 0x05)
lpHwCrtc->ulMemoryInterface = MEMORY_INTERFACE_32BIT;
else
lpHwCrtc->ulMemoryInterface = MEMORY_INTERFACE_64BIT;
break;
case FAMILY_LT_PRO:
lpEnableData->lpAdapterName = "ATI 3D RAGE LT PRO";
lpEnableData->ulNumberOfControllers = 2;
lpEnableData->aControllerCaps[0] = DAL_CONTROLLER_CAPS_EXPANSION |
DAL_CONTROLLER_CAPS_OVERLAY |
DAL_CONTROLLER_CAPS_VGA |
//DAL_CONTROLLER_CAPS_HW_CURSOR |
//DAL_CONTROLLER_CAPS_HW_ICON |
DAL_CONTROLLER_CAPS_OVERLAY_GAMMA|
DAL_CONTROLLER_CAPS_CURSOR_BLINK |
DAL_CONTROLLER_CAPS_EXCLUSIVE_HW_CURSOR_ICON |
DAL_CONTROLLER_CAPS_SHADOW_REGISTER_SET |
DAL_CONTROLLER_CAPS_AMC8BIT_PORT1 |
DAL_CONTROLLER_CAPS_AMC8BIT_PORT2 |
DAL_CONTROLLER_CAPS_AMC16BIT_PORT ;
lpEnableData->aControllerCaps[1] = DAL_CONTROLLER_CAPS_SHADOW_REGISTER_SET;
//second controller can not support
//any of the above features except for
//fact that SYNC shadow registers could
//be used to drive the LCD.
lpEnableData->bEnabledAtBoot[1] = TRUE;
lpEnableData->ulFunctionHooks |= GCO_HOOK_TEXT_CURSOR_BLINKING_ADJUSTMENT |
GCO_HOOK_OVERLAY_GAMMA_ADJUSTMENT |
GCO_CALCULATE_MEMORY_BANDWIDTH |
GCO_CALCULATE_HORIZONTAL_TIME|
GCO_HOOK_ADJUST_HORIZONTAL_TIME |
GCO_CALCULATE_HALFFRAMEBUFFER_BANDWIDTH |
GCO_CALCULATE_HALFFRAMEBUFFER_HTIME |
GCO_HOOK_GET_HARDWARE_INFO_TABLE |
GCO_HOOK_GET_MULTIMEDIA_TABLE |
GCO_HOOK_RATIOMETRIC_EXPANSION_ADJUSTMENT |
GCO_HOOK_SET_DISPLAY_OFFSET |
GCO_HOOK_UPDATEBIOSDISPLAYINFO |
GCO_HOOK_GETCRC |
GCO_HOOK_GETHWDATA;
lpEnableData->pfnGetTextCursorBlinkingAdjustment = RageProGetTextCursorBlinkingAdjustment;
lpEnableData->pfnGetOverlayGammaAdjustment = RageProGetOverlayGammaAdjustment;
lpEnableData->pfnSetTextCursorBlinkingAdjustment = RageProSetTextCursorBlinkingAdjustment;
lpEnableData->pfnSetOverlayGammaAdjustment = RageProSetOverlayGammaAdjustment;
lpEnableData->pfnSetDisplayOffset = RageProSetDisplayOffset;
lpEnableData->pfnGetMultimediaTable = RageProGetMultimediaTable;
lpEnableData->pfnGetHardwareInfoTable = RageProGetHardwareInfoTable;
lpEnableData->pfnUpdateBIOSDisplayInfo = RageProUpdateBIOSDisplayInfo;
lpEnableData->pfnGetCRC = RageProGetCRC;
lpEnableData->pfnGetHardwareData = RageProGetHardwareData;
lpEnableData->pfnGetModeTiming = RageProGetModeTiming;
//Bandwidth related functions
lpEnableData->pfnGetTotalHTime = vMBW_GetTotalHTime;
lpEnableData->pfnCalculateModeBandwidth = vMBW_CalculateModeBandwidth;
lpEnableData->pfnCalculateModeHorizontalTime = vMBW_CalculateModeHTime;
lpEnableData->pfnCalculateOverlayBandwidth = vMBW_CalculateOverlayBandwidth;
lpEnableData->pfnCalculateOverlayHorizontalTime = vMBW_CalculateOverlayHTime;
lpEnableData->pfnCalculateVideoBandwidth = vMBW_CalculateVideoBandwidth;
lpEnableData->pfnCalculateVideoHorizontalTime = vMBW_CalculateVideoHTime;
lpEnableData->pfnCalculateHTimeAdjustment = vMBW_AdjustHTime;
lpEnableData->pfnCalculateHFBBandwidth = vMBW_CalculateHFBBandwidth;
lpEnableData->pfnCalculateHFBHorizontalTime = vMBW_CalculateHFBHTime;
lpHwCrtc->ulDspConfig[0] = 0;
lpHwCrtc->ulDspConfig[1] = 0;
lpHwCrtc->ulDspOnOff[0] = 0;
lpHwCrtc->ulDspOnOff[1] = 0;
lpHwCrtc->ulCurrentDeviceMap[0] =0;
lpHwCrtc->ulCurrentDeviceMap[1] =0;
lpHwCrtc->ulMemoryInterface = MEMORY_INTERFACE_64BIT;
lpHwCrtc->ulGCOSupportedRegSet = RAGE_PRO_LCD_REGISTER_SET |
RAGE_PRO_CRT_REGISTER_SET |
RAGE_PRO_TVO_REGISTER_SET |
RAGE_PRO_CRTC2_REGISTER_SET |
RAGE_LTPRO_REGISTER_SET;
lpHwCrtc->ulBiosInfoTableSiganture = LTPRO_BIOS_INFO_TABLE_SIGNATURE;
lpHwCrtc->ulLCDIndexRegisterMask = LT_PRO_LCD_INDEX_MASK;
break;
case FAMILY_RAGE_MOBILITY:
lpEnableData->lpAdapterName = "ATI 3D RAGE MOBILITY";
lpEnableData->ulNumberOfControllers = 2;
lpEnableData->aControllerCaps[0] = DAL_CONTROLLER_CAPS_EXPANSION |
DAL_CONTROLLER_CAPS_OVERLAY |
DAL_CONTROLLER_CAPS_VGA |
DAL_CONTROLLER_CAPS_HW_CURSOR |
DAL_CONTROLLER_CAPS_HW_ICON |
DAL_CONTROLLER_CAPS_OVERLAY_GAMMA|
DAL_CONTROLLER_CAPS_CURSOR_BLINK |
DAL_CONTROLLER_CAPS_SWITCHABLE_OVERLAY |
DAL_CONTROLLER_CAPS_SHADOW_REGISTER_SET |
DAL_CONTROLLER_CAPS_AMC8BIT_PORT1 |
DAL_CONTROLLER_CAPS_AMC8BIT_PORT2 |
DAL_CONTROLLER_CAPS_AMC16BIT_PORT ;
lpEnableData->aControllerCaps[1] = DAL_CONTROLLER_CAPS_HW_CURSOR |
DAL_CONTROLLER_CAPS_HW_ICON |
DAL_CONTROLLER_CAPS_SWITCHABLE_OVERLAY |
DAL_CONTROLLER_CAPS_SHADOW_REGISTER_SET;
lpEnableData->bEnabledAtBoot[1] = TRUE;
lpEnableData->ulFunctionHooks |= GCO_HOOK_TEXT_CURSOR_BLINKING_ADJUSTMENT |
GCO_HOOK_OVERLAY_GAMMA_ADJUSTMENT |
GCO_CALCULATE_MEMORY_BANDWIDTH |
GCO_CALCULATE_HORIZONTAL_TIME|
GCO_HOOK_ADJUST_HORIZONTAL_TIME |
GCO_CALCULATE_HALFFRAMEBUFFER_BANDWIDTH |
GCO_CALCULATE_HALFFRAMEBUFFER_HTIME |
GCO_HOOK_GET_HARDWARE_INFO_TABLE |
GCO_HOOK_GET_MULTIMEDIA_TABLE |
GCO_HOOK_SET_DISPLAY_OFFSET |
GCO_HOOK_ENABLE_OVERLAY |
GCO_HOOK_RATIOMETRIC_EXPANSION_ADJUSTMENT |
GCO_HOOK_UPDATEBIOSDISPLAYINFO |
GCO_HOOK_GETCRC |
GCO_HOOK_GETHWDATA;
lpEnableData->pfnGetTextCursorBlinkingAdjustment = RageProGetTextCursorBlinkingAdjustment;
lpEnableData->pfnGetOverlayGammaAdjustment = RageProGetOverlayGammaAdjustment;
lpEnableData->pfnSetTextCursorBlinkingAdjustment = RageProSetTextCursorBlinkingAdjustment;
lpEnableData->pfnSetOverlayGammaAdjustment = RageProSetOverlayGammaAdjustment;
lpEnableData->pfnSetDisplayOffset = RageProSetDisplayOffset;
lpEnableData->pfnGetMultimediaTable = RageProGetMultimediaTable;
lpEnableData->pfnGetHardwareInfoTable = RageProGetHardwareInfoTable;
lpEnableData->pfnEnableOverlay = RageMobilityEnableOverlay;
lpEnableData->pfnUpdateBIOSDisplayInfo = RageProUpdateBIOSDisplayInfo;
lpEnableData->pfnGetCRC = RageProGetCRC;
lpEnableData->pfnGetHardwareData = RageProGetHardwareData;
lpEnableData->pfnGetModeTiming = RageProGetModeTiming;
//Bandwidth related functions
lpEnableData->pfnGetTotalHTime = vMBW_GetTotalHTime;
lpEnableData->pfnCalculateModeBandwidth = vMBW_CalculateModeBandwidth;
lpEnableData->pfnCalculateModeHorizontalTime = vMBW_CalculateModeHTime;
lpEnableData->pfnCalculateOverlayBandwidth = vMBW_CalculateOverlayBandwidth;
lpEnableData->pfnCalculateOverlayHorizontalTime = vMBW_CalculateOverlayHTime;
lpEnableData->pfnCalculateVideoBandwidth = vMBW_CalculateVideoBandwidth;
lpEnableData->pfnCalculateVideoHorizontalTime = vMBW_CalculateVideoHTime;
lpEnableData->pfnCalculateHTimeAdjustment = vMBW_AdjustHTime;
lpEnableData->pfnCalculateHFBBandwidth = vMBW_CalculateHFBBandwidth;
lpEnableData->pfnCalculateHFBHorizontalTime = vMBW_CalculateHFBHTime;
lpHwCrtc->ulDspConfig[0] = 0;
lpHwCrtc->ulDspConfig[1] = 0;
lpHwCrtc->ulDspOnOff[0] = 0;
lpHwCrtc->ulDspOnOff[1] = 0;
lpHwCrtc->ulCurrentDeviceMap[0] =0;
lpHwCrtc->ulCurrentDeviceMap[1] =0;
ulTemp = MMREADULONG(lpHwCrtc->HwAsicId.lpMMR, CONFIG_STAT0);
if ((ulTemp & CONFIG_STAT0_CfgMemType) == 0x06)
lpHwCrtc->ulMemoryInterface = MEMORY_INTERFACE_32BIT;
else
lpHwCrtc->ulMemoryInterface = MEMORY_INTERFACE_64BIT;
lpHwCrtc->ulGCOSupportedRegSet = RAGE_PRO_LCD_REGISTER_SET |
RAGE_PRO_CRT_REGISTER_SET |
RAGE_PRO_TVO_REGISTER_SET |
RAGE_PRO_CRTC2_REGISTER_SET |
EXT_MOBILITY_REGISTER_SET |
RAGE_LTPRO_REGISTER_SET;
lpHwCrtc->ulBiosInfoTableSiganture = RAGEMOBILITY_BIOS_INFO_TABLE_SIGNATURE;
lpHwCrtc->ulLCDIndexRegisterMask = MOBILITY_XL_XC_LCD_INDEX_MASK;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -