Gabbyjay wrote:Hello!
I was wondering for a long time about the true specs of the specs for the different Model 3 revisions.
There is a lot contradictory information out there, and I would love if someone here could clear it up for me.
It's confusing and I haven't tried very hard to figure out what's going on but should be possible from IC part numbers on the different games.
1) They claim Model 3 Step 2 uses 6 (!) Real3D Pro-1000 systems (which they say could render 6 million Polys/s with all effects!).
When I have a look at the PCB, it seems there are only 2 of those Real3D systems present, as there were in the other revisions of the board.
Of course each Real3D-unit is composed of several chips, so maybe that's where they got confused?
This thread seems to confirm what I say:
http://www.supermodel3.com/Forum/viewto ... f=7&t=1817So... what is true?
These sites get their info from old marketing materials, which are confusing and imprecise. I also think there's a bit of a "telephone game" effect going on here over the years.
Model 3 does not feature 2 Real3D Pro-1000's. Model 3 is itself a modified Pro-1000 image generator, which also had a PowerPC-based CPU board for driving the graphics system and communicating with a Windows host PC via SCSI. The claim of "2 Pro-1000s" is probably referring to the number of pixel processors, which is variable. Model 3 includes 2 of these. I *think* some Pro-1000's could have more but I'm not sure. Model 3 seems to differ in a number of ways:
1) It is locked to a lower resolution (496x384) and a particular frame rate (57.5Hz).
2) It has 2D tile generator hardware taken from Sega's System 24 (and also used on Model 2) for 2D graphics. Pro-1000 probably had an accessible frame buffer. This may still be present in some form on Model 3 but no game uses it and we don't know how it would be accessed.
3) Less RAM. Pro-1000's polygon RAM was expandable with RAM cards.
4) The presence of an audio system on Model 3, including a second CPU (68K) and the two SCSPs.
5) All the various glue logic and connectors to support inputs and other board expansions (like the DSB and drive boards).
6) The 3D subsystem may have a different arrangement of processors and internal RAM (frame buffer, depth buffer, etc.) but I am not sure of the details. I *think* it has the same number of pixel and geometry processors as a baseline Pro-1000?
2) The clockrate for the Real3D: It is listet on Segaratro as 50 MHz for Step 1, 66 MHz for Step 1.5 and then back down to 50 MHz for Step 2. O_O
Reading here in the forums, 66 MHz for Step 2/2.1 seems more likely.
I mean if anything, they would upgrade it instead of downgrading it again... so...
Who knows more?
No idea. Should be possible to determine from looking at the oscillators present on the boards.
3) Is there a step 1.5 revision or not?
Several pages list it (and Scud Race is supposed to use it).
In Mame's Model3.cpp-File, it lists 1.5 as having upgraded specs over 1.0, but later it says there does not seem to be a Step 1.5 and both their CPUs run at 66 MHz, not 100 MHz as it's supposed to be for Step 1.5.
So... is there an upgraded step 1.5 or not?
Yes, there is. As far as we can tell, the CPU board is virtually the same as Step 1.0 but online specs claim it is clocked higher at 100MHz. I haven't verified that but assume it is true. The key difference is in the Real3D chipset. There are differences in the culling node layout and vertex format:
Step 1.0 -> Culling nodes are 8 words, vertices are encoded in 13.11 fixed point format
Step 1.5+ -> Culling nodes are 10 words (extra words include model scale parameter and texture offset parameters used in e.g., the Scud Race car select screen), vertices are encoded in 17.7 fixed point format
Step 2.0 -> Same as 1.5
Is it possible Step 1.5 is just a Step 1.0 CPU board with Step 2.0 video board? Maybe. But I don't think so. Two more pieces of evidence. There is a PCI ID that is returned from what we believe is the Real3D config space and it differs between 1.x and 2.x. It's not clear who is returning this value (a chip on the video board or some interface on the CPU board) but it is the same for 1.0 and 1.5 games, different for 2.x, despite 1.5's video hardware using slightly different data formats as described above.
- Code: Select all
// Initialize Real3D
int stepping = ((game.stepping[0] - '0') << 4) | (game.stepping[2] - '0');
uint32_t real3DPCIID = game.real3d_pci_id;
if (0 == real3DPCIID)
{
real3DPCIID = stepping >= 0x20 ? CReal3D::PCIID::Step2x : CReal3D::PCIID::Step1x;
}
GPU.SetStepping(stepping, real3DPCIID);
And then there is the fact that Real3D ASIC ID codes differ between Steps 1.0, 1.5, and 2.x, which is the next best piece of evidence for the existence of a Step 1.5 video board, after the culling node layout difference:
- Code: Select all
// Set ASIC ID codes
m_asicID.clear();
if (step == 0x10)
{
m_asicID = decltype(m_asicID)
{
{ ASIC::Mercury, 0x216c3057 },
{ ASIC::Venus, 0x116c4057 },
{ ASIC::Earth, 0x216c5057 },
{ ASIC::Mars, 0x116c6057 },
{ ASIC::Jupiter, 0x116c7057 }
};
}
else if (step == 0x15)
{
m_asicID = decltype(m_asicID)
{
{ ASIC::Mercury, 0x316c3057 },
{ ASIC::Venus, 0x216c4057 },
{ ASIC::Earth, 0x316c5057 },
{ ASIC::Mars, 0x216c6057 },
{ ASIC::Jupiter, 0x316c7057 }
};
}
else if (step >= 0x20)
{
m_asicID = decltype(m_asicID)
{
{ ASIC::Mercury, 0x416c3057 },
{ ASIC::Venus, 0x316c4057 }, // skichamp @ pc=0xa89f4, this value causes 'NO DAUGHTER BOARD' message
{ ASIC::Earth, 0x416c5057 },
{ ASIC::Mars, 0x316c6057 },
{ ASIC::Jupiter, 0x416c7057 }
};
}
Step 2.1 is the bigger mystery and I'm not sure where it originates from. I believe this is not named on any board but these web sites claim some of the latter games released are "Step 2.1." We see no indication of such a thing and if memory serves, people have reported that alleged Step 2.1 video boards are interchangeable with Step 2.0 games, so it may not exist at all.
Last but not least:
4) Is there ANY detailed information about Real3D Pro's Anti Aliasing other then the few lines mentioned in the product description file?
There it says, it uses polygon edges to calculate the final color of the pixel (which seems to work like Multisampling-Antialiasing).
And I remember somewhere else, this is done at 16 locatons O_O which would be 16x MSAA (which I highly doubt).
Does any Model 3 game even uses this kind of Anti-Aliasing?
Who can enlighten me?
I assume all games use anti-aliasing. I don't even know if it can be turned off (although we have recently discovered some JTAG bits that may control features like this). I don't think we explicitly emulate anti-aliasing (certainly the legacy renderer does not).