Previous Thread
Next Thread
Print Thread
Page 1 of 6 1 2 3 4 5 6
N64 bug braindump #96724 10/31/14 10:23 AM
Joined: May 2009
Posts: 1,853
J
Just Desserts Offline OP
Very Senior Member
OP Offline
Very Senior Member
J
Joined: May 2009
Posts: 1,853
Last night, a guy by the name of Peter Lemon (aka [krom]) hopped onto #messdev, pointing me at a whole suite of pretty comprehensive hardware tests that he wrote and ran on a real NTSC N64 in order for MarathonMan to improve CEN64, which to my knowledge is the only working low-level N64 emulator other than MESS.

These tests can be found here: https://github.com/PeterLemon/N64/

So far I've gotten through all of the CPU and CP1 tests, the Framebuffer and Input tests, and most of the 16BPP RDP tests. Here are the passes and failures as I remember them:

CPUTest/CPU: All pass

CPUTest/CP1/CEIL: 64-bit CEIL operations fail to properly sign-extend results out to 64 bits.
CPUTest/CP1/FLOOR: 64-bit FLOOR operations fail to properly sign-extend results out to 64 bits.
CPUTest/CP1/TRUNC: 64-bit TRUNC operations fail to properly sign-extend results out to 64 bits.
CPUTest/CP1/ROUND: 64-bit ROUND operations fail to properly sign-extend results out to 64 bits.
CPUTest/CP1/NEG: Result for 0.0 fails to return -0.0 (0x80000000), returns 0.0 (0x00000000) instead.

Framebuffer: All pass
Input: All pass

RDP/16BPP/Rectangle/FillRectangle: All pass
RDP/16BPP/Rectangle/FillZBufferRectangle320x240: Pass
RDP/16BPP/Rectangle/TextureRectangle/TLUT: CopyRGBA4 and CopyRGBA8 pass, all Cycle1 variants fail to display anything.
RDP/16BPP/Rectangle/TextureRectangle: Other than the above, Copy variant passes, all Cycle1 variants fail to display anything.
RDP/16BPP/Triangle/Cube: Fail due to triangles often having unusual horizontal spikes at their minima and maxima as the cubes rotate.
RDP/16BPP/Triangle/FillTriangle: All pass
RDP/16BPP/Triangle/FillZBufferTriangle320x240: Fail due to several of the red triangles on the top row having their tips incorrectly truncated against the green triangles.
RDP/16BPP/Triangle/Plot: All pass
RDP/16BPP/Triangle/Rotate: All pass
RDP/16BPP/Triangle/TextureTriangle: All fail. Cycle1 tests fail to display anything. The tests that do display something indicate that the two triangles do not align properly across the shared edge, in the form of a visible texture seam/offset.

I'll resume testing tonight after work, but I have to say how great it is that someone finally made a comprehensive suite of one-shot tests running on actual hardware, much more comprehensive and much more useful than my initial crack at it 6-7 years ago.

I also have to say that I'm glad I was right: I already knew that SGI's internal documentation on the RSP refers to opcodes that were intended to accelerate DCT, which makes sense given that they had the chipset more or less done and then shopped it around to console manufacturers to see who would be interested, so if it ended up being put in a CD-ROM-based console, VCD decoding would be a good selling point. I've long theorized that the opcodes made it into production silicon but were simply never documented for any developers, but everyone I've talked to said that that was unlikely. In fact, [krom]'s tests have indicated that these opcodes are indeed still present in the production silicon and work as described.

Re: N64 bug braindump [Re: Just Desserts] #96725 10/31/14 10:30 AM
Joined: May 2008
Posts: 4,899
Q
qmc2 Offline
Very Senior Member
Offline
Very Senior Member
Q
Joined: May 2008
Posts: 4,899
Nice test-suite! It can only support you in your N64 adventures. Great!


A mind is like a parachute. It doesn't work unless it's open. [Frank Zappa]

We're searching for QMC2 translators and support for existing translations. Interested? See here!
Re: N64 bug braindump [Re: Just Desserts] #96726 10/31/14 11:20 AM
Joined: Sep 2009
Posts: 239
D
Dr. Spankenstein Offline
Senior Member
Offline
Senior Member
D
Joined: Sep 2009
Posts: 239
When life gives you lemons...

Great news JD! smile

Re: N64 bug braindump [Re: Just Desserts] #96727 10/31/14 12:35 PM
Joined: Apr 2004
Posts: 27
V
Ville Linde Offline
Member
Offline
Member
V
Joined: Apr 2004
Posts: 27
Originally Posted By Just Desserts

I also have to say that I'm glad I was right: I already knew that SGI's internal documentation on the RSP refers to opcodes that were intended to accelerate DCT, which makes sense given that they had the chipset more or less done and then shopped it around to console manufacturers to see who would be interested, so if it ended up being put in a CD-ROM-based console, VCD decoding would be a good selling point. I've long theorized that the opcodes made it into production silicon but were simply never documented for any developers, but everyone I've talked to said that that was unlikely. In fact, [krom]'s tests have indicated that these opcodes are indeed still present in the production silicon and work as described.


Yeah, the RSP was a fairly generic SGI design. They used something very similar in that O2 video compression thingy.
So, some wasted gates vs. possibly major redesign of the core. Wasted gates won.

Re: N64 bug braindump [Re: Ville Linde] #96728 10/31/14 01:35 PM
Joined: May 2009
Posts: 1,853
J
Just Desserts Offline OP
Very Senior Member
OP Offline
Very Senior Member
J
Joined: May 2009
Posts: 1,853
Originally Posted By Ville Linde
Yeah, the RSP was a fairly generic SGI design. They used something very similar in that O2 video compression thingy.
So, some wasted gates vs. possibly major redesign of the core. Wasted gates won.


What, you mean VICE? That was just a general vector accelerator in the O2. To date I have seen no actual documentation on the VICE instruction set that I can compare to the RSP docs.

Re: N64 bug braindump [Re: Just Desserts] #96729 10/31/14 01:37 PM
Joined: Mar 2001
Posts: 16,522
R
R. Belmont Online Content
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,522
AFAIK VICE was reverse-engineered for some emulator based on RSP docs.

Re: N64 bug braindump [Re: Just Desserts] #96730 10/31/14 01:48 PM
Joined: Apr 2004
Posts: 27
V
Ville Linde Offline
Member
Offline
Member
V
Joined: Apr 2004
Posts: 27

Re: N64 bug braindump [Re: Ville Linde] #96731 10/31/14 02:25 PM
Joined: May 2009
Posts: 1,853
J
Just Desserts Offline OP
Very Senior Member
OP Offline
Very Senior Member
J
Joined: May 2009
Posts: 1,853
Originally Posted By Ville Linde


How about that, the opcodes pretty much are identical. I see a lot of extra ops that even SGI's RSP docs don't cover, I wonder if I could get that [krom] guy to test them.

Re: N64 bug braindump [Re: Just Desserts] #96734 10/31/14 07:40 PM
Joined: Jun 2013
Posts: 35
O
Octocontrabass Offline
Member
Offline
Member
O
Joined: Jun 2013
Posts: 35
The last time I checked, using -nodrc made some things behave differently. Are you planning on testing that too?

Re: N64 bug braindump [Re: Just Desserts] #96735 10/31/14 07:47 PM
Joined: Mar 2001
Posts: 16,522
R
R. Belmont Online Content
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,522
The concept of running these tests is exactly to eliminate the errors in the DRC.

Page 1 of 6 1 2 3 4 5 6

Who's Online Now
1 registered members (1 invisible), 73 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
ShoutChat Box
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,782
Posts115,562
Members4,908
Most Online890
Jan 17th, 2020
Powered by UBB.threads™ PHP Forum Software 7.7.3