Meatball wrote on 2023-07-01, 13:38:
I can help; I have a few V2200s: Diamond Stealth II S220 PCI 4MB (x2), and 1 QDI Vision-1 AGP 8MB (x1). If hardware spec (CPU, RAM, OS) matters, please detail, otherwise let me know the instructions for the test.
Thanks guys!
The binary's here:
https://1drv.ms/u/s!As-dKk-N73dSlSsc7T6X8he0lYnO?e=fkE46I
RTest.7z
MD5 for the archive: bfa47385ac1b694c06fc122bb7e42e42
RTest.exe:
MD5 2d6725e0fa756bbb5554575b4d00f94d.
It's a console app, should hopefully work on an actual Rendition board. You need to press <ENTER> to close it.
It should dump something like this (hopefully):
****************************************
Board # 1
Verite ID 0x2000
IoBase 0x0
MemBase 0x2ae4040
MemMappedIoBase 0x0
memSize 134217728
IOBase 0x0
BusMaster 0x54
VGA Device 0x54
****************************************
Press [ENTER] to close
Please dump what you see and list what kind of card you've got (V1000 or V2000).
(I'm sure you guys know your way around Windows. There is one complication, Redline needs a window handle, HWND, I'm passing the console handle. It should work. If it doesn't I'll knock up a GUI app.)
It would be good if I could get results for a V1000 and a V2000. I don't expect these values to change for different brands of V1000s or V2000.
Things like BusMaster should be 0x1 or0x0 ( I think, for enabled or disabled). The crazy values you see here are just me playing around.
The Redline games that don't work at the mo. all use this API call (V_EnumVeriteBoards), some crash immediate others cleanly shutdown.
I think what I'm missing is the VeriteID. If it isn't things will be difficult.
Thanks again!
The source if anyone's interested:
// RenditionTest.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include "verite.h"
#include "Redline.h"
using namespace std;
HWND GetWindowHandle()
{
#define MY_BUFSIZE 1024 // Buffer size for console window titles.
//HWND hwndFound{}; // This is what is returned to the caller.
//char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated
// WindowTitle.
char pszOldWindowTitle[MY_BUFSIZE] = "RRedline Test";// Contains original
// WindowTitle.
// Fetch current window title.
GetConsoleTitleA(pszOldWindowTitle, MY_BUFSIZE);
//SetConsoleTitleA(pszNewWindowTitle);
Sleep(40);
// Look for NewWindowTitle.
return FindWindowA(NULL, pszOldWindowTitle);
}
int main()
{
HWND hwnd = GetWindowHandle();
if (!hwnd)
cout << "Error: Could not get Window handle" << endl;
//std::cout << "Hello World!\n";
v_verite_info info;
v_u32 counter=1;
while (V_SUCCESS == V_EnumVeriteBoards(hwnd, counter, &info))
{
cout << "****************************************" << endl;
cout << "Board #\t" << dec << counter++ << endl;;
cout << "Verite ID\t0x" << hex << info.veriteID << endl;
cout << "IoBase\t0x" << hex << info.ioBase << endl;
cout << "MemBase\t0x" << info.memBase << endl;
cout << "MemMappedIoBase\t0x" << info.memMappedIoBase << endl;
cout << "memSize\t" << dec << info.memSize << endl;
cout << "IOBase\t0x" << hex << info.ioBase << endl;
cout << "BusMaster\t0x" << (size_t) info.busMaster << endl;
cout << "VGA Device\t0x" << (size_t)info.vgaDevice << endl;
cout << "****************************************" << endl;
cout << endl;
}
cout << "Press [ENTER] to close" << endl;
cin.get();
return 0;
}