VOGONS


First post, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

Hi Forum,

This is my first post, so apologies if I mess up on etiquette.

There's a Rendition Verite wrapper called RReady that I'm working on. It should allow RRedline games to run on Win10/11. My plan is to release it on Steam for peanuts and eventually add Speedy3D support for DOS.

At the moment only 6 games work (vQuake 2, vHexen 2, Sub Culture, Monster truck madness 2, Heavy Gear 1 and MDK). There're Youtube videos of it in action; don't know if I can post links yet. The others need support for an API call called V_EnumVeriteBoards which I'm not sure about.

I don't know if RReady is actually something anyone wants, since most people prefer tinkering with actual hardware.

If there's anyone who'd be willing and able to run a few tests (for V_EnumVeriteBoards) on an actual rendition board (V1000/V2000) it'd be a great help. User WhiteMagicRaven offered to test, but doesn't have his machine handy at the moment and @WhiteMagicRaven, my comments keep disappearing on your Youtube channel.

Thanks.

( I hope I don't get kicked out for promoting stuff).

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 1 of 6, by Meatball

User metadata
Rank Oldbie
Rank
Oldbie

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.

Reply 3 of 6, by konc

User metadata
Rank l33t
Rank
l33t

Nice project and don't worry, it's welcome here and you'll get all the help you need. I also have a V2100 (Diamond S220), like many more. I suggest to just make a nice post with testing instructions and you'll get results.

Reply 4 of 6, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie
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;
}

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 5 of 6, by konc

User metadata
Rank l33t
Rank
l33t

Here you are, as I wrote earlier the output is from a Diamond Stealth II S220 (V2100). I don't know what the second board enumerated is, there is only one.

****************************************
Board # 1
Verite ID 0x2000
IoBase 0xe800
MemBase 0xd4000000
MemMappedIoBase 0xd6000000
memSize 4194304
IOBase 0xe800
BusMaster 0x1
VGA Device 0x1
****************************************

****************************************
Board # 2
Verite ID 0x1
IoBase 0x0
MemBase 0x0
MemMappedIoBase 0x0
memSize 0
IOBase 0x0
BusMaster 0x0
VGA Device 0x0
****************************************

Press [ENTER] to close

The attachment devicemgr.jpg is no longer available

Reply 6 of 6, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie
konc wrote on 2023-07-01, 20:13:
**************************************** Board # 1 Verite ID 0x2000 IoBase 0xe800 MemBase 0xd4000000 MemMappedIoBase 0xd6000000 […]
Show full quote

****************************************
Board # 1
Verite ID 0x2000
IoBase 0xe800
MemBase 0xd4000000
MemMappedIoBase 0xd6000000
memSize 4194304
IOBase 0xe800
BusMaster 0x1
VGA Device 0x1
****************************************

****************************************
Board # 2
Verite ID 0x1
IoBase 0x0
MemBase 0x0
MemMappedIoBase 0x0
memSize 0
IOBase 0x0
BusMaster 0x0
VGA Device 0x0
****************************************



Thanks Konc, this is pretty useful! The phantom board returns duff values., so it's definitely a phantom.

Looks like I'll have to implement memory mapped io; kind of defeats the point of a high level api. When I get around to doing Speedy 3d, there'll be a lot of this, so might as well start now.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda