Star Fox 2

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Star Fox 2
by on (#143511)
Finally got around to finishing my Star Fox 2 repro. Thought I'd come show off. No label yet, but it's the PCB work I wanted to show off anyway.

Image
Image
Image

And saving works too, so the battery is still good.

Image

Also, info for anybody wanting to make their own repro, there's a lot of misinformation out there about the differences between the SuperFX-1 and SuperFX-2 chips. Star Fox 2 does NOT need the SuperFX-2, it runs fine on the SuperFX-1, as the only real difference between the two is that the SuperFX-2 can map 16Mbit ROM, and the SuperFX-1 can only map 8Mbit (however, the MARIO-CHIP version used in Star Fox has a couple other issues so it doesn't work for Star Fox 2, you need a GSU-1 chip).

Anyway, if anybody's wondering, here's a list of all of the SuperFX games and their suitability as a Star Fox 2 donor (SNES Central doesn't have any info on Winter Gold, so I'm not sure on that one)

Code:
______Game______|_______PCB_______|__Rev__|_RAM_|_Battery__|_Conclusion_
Dirt Racer      | SHVC-1CA0N5S-01 | GSU-1 | 256K |   No    | No
Dirt Trax FX    | SHVC-1CA0N6S-01 | GSU-1 | 512K |   No    | Yes [1]
Doom            | SHVC-1CB0N7S-01 | GSU-2 | 512K |   No    | Yes [1]
Star Fox        | SHVC-1C0N5S-01  | MARIO | 256K |   No    | No
Stunt Race FX   | SHVC-1CA6B-01   | GSU-1 | 512K |   Yes   | Yes
Vortex          | SHVC-1CA0N5S-01 | GSU-1 | 256K |   No    | No
Wild Trax       | SHVC-1CA6B-01   | GSU-1 | 512K |   Yes   | Yes
Winter Gold     |       ???       | GSU-2 |  ??? |   ???   | ???  (I've heard it works, but it's expensive)
Yoshi's Island  | SHVC-1CB5B-01   | GSU-2 | 256K |   Yes   | No

[1] Game is playable, but it won't save high scores or Pepper coins
Also, upgrading 256K PCB's to 512K isn't hard, and it does make the game playable
Re: Star Fox 2
by on (#143512)
Good lord, If I hadn't known any better, I would have said you just took a picture of a normal Star Fox PCB it looks so good! How did you get the rom to look so perfect? Normally, I see people just cut the pins on the pre existing one and rewiring the connections to a rom on top of the older one, which is fine, but it doesn't look "professional". :wink:
Re: Star Fox 2
by on (#143513)
I made a custom adapter PCB for the new ROM to mount onto. Here's what it looked like with the adapter board installed prior to soldering on the ROM.

Image

Not only does this look way nicer, it allows me to use brand new, in production flash ROMs from Micron, rather than old-stock EEPROMs from who knows where, and no wires means no rattling around and potentially breaking a solder joint. It's been over two years in the making (though only a few hours worth of actual work), due to having way too many projects on my plate and work/school/life getting in the way. I may mess around with an overclock mod soon, just to see how I like it, but other than that, I'm ready to call this one finished.
Re: Star Fox 2
by on (#143514)
That looks awesome. Very clean.
Re: Star Fox 2
by on (#143604)
You gonna overclock it any? The SFX in Star Fox seems to overclock pretty well to add some additional smoothness.
Re: Star Fox 2
by on (#143624)
Yeah, I'll probably play around with overclocking. Nothing too extreme, but I have noticed some slowdowns in certain areas, so it'll be worth playing around with as soon as I can get my hands on a few various oscillators. I suppose I could also take it to the EE lab on campus and use a signal generator too...
Re: Star Fox 2
by on (#143984)
I believe one of these GSU chips also have a setting to change (reduce, which doubles the clock frequency at the chip core) the clock divider, while the original Mario chip did not.

So I believe the clock divider could be the reason for your slow downs.

I made my Star Fox2 repro from a Yoshi's Island cartridge (I know, that one had only 32KB SRAM, not 64KB. I had to rectify that. It's GSU2, not GSU1 as Yoshi's Island was a 16MBIT game) and it doesn't slow down at all.

Edit: Quoting Wikipedia article:

Quote:
The first version of the chip, commonly referred to as simply "Super FX", is clocked with a 21 MHz signal, but an internal clock speed divider halves it to 10.5 MHz. Later on, the design was revised to become the Super FX GSU-2 (Graphics Support Unit 2); this, unlike the first Super FX chip revision, is able to reach 21 MHz.
Re: Star Fox 2
by on (#144034)
l_oliveira wrote:
I believe one of these GSU chips also have a setting to change (reduce, which doubles the clock frequency at the chip core) the clock divider, while the original Mario chip did not.

The original MARIO chip was only used in the original Star Fox cart, and is not the same as the GSU-1 chip on this board

Quote:
The first version of the chip, commonly referred to as simply "Super FX", is clocked with a 21 MHz signal, but an internal clock speed divider halves it to 10.5 MHz. Later on, the design was revised to become the Super FX GSU-2 (Graphics Support Unit 2); this, unlike the first Super FX chip revision, is able to reach 21 MHz.

This is a bit of half-true misinformation I see all the time. The GSU-1 can run at 21MHz just fine, it's only the MARIO chip (i.e. the actual first revision of the SuperFX, not the entire GSU-1 line, there were more than 2 revisions of the chip) that can't do full-speed.

The slowdowns I've noticed were all very slight and only under certain circumstances where there were a lot of polygons rendering at the same time. They were hardly even noticeable, I was just nitpicking.
Re: Star Fox 2
by on (#144254)
Seriously, go edit that article on Wikipedia if you're more of an expert on it.
Re: Star Fox 2
by on (#144283)
The "problem" with correcting long-standing misconceptions about tech specs of closed hardware is that Wikipedia requires a previously published reliable source for every fact, not original research. If these sources are wrong, Wikipedia is wrong by design. Look up Philip Roth Wikipedia for what might go wrong.
Re: Star Fox 2
by on (#144284)
whicker wrote:
Seriously, go edit that article on Wikipedia if you're more of an expert on it.


Hahahah that is so true. This would be VERY HARD to convince people that the fact they were believing in for about 10-15 years or so is actually wrong. This fact is like God, GSU-1 runs in 10,5Mhz, GSU-2 runs in 21Mhz, it is on wikipedia, everyone believes it, this was confirmed since SNES existed, everyone says that even though nobody wanted to verify that, case closed (lol)
Re: Star Fox 2
by on (#144286)
I'm not saying it runs at a fixed rate. I just mentioned that some chips can bypass the internal clock divider while others can't.

But anyway, by the time Starfox2 were developed it's pretty obvious it was intended to run on GSU2 even if it was going to use only 1MB of ROM space.

If anyone willing to take this to "the next level" how about someone make a test rom for this ?
Re: Star Fox 2
by on (#144317)
To be fair, the only authoritative documentation I know of regarding the SuperFX chip is the SNES Dev Manual Book 2 which states:

Image

However, I can't find anywhere that it specifies which version is the "current version" as of the publication of that document.

Edit: Then there's this later in the same manual...

Image

So if they're documenting the clock select register, one would assume it was functional... Can't find a definitive publication date, but the copyrights on the document are 1993, 1994, 1995.

¯\_(ツ)_/¯
Re: Star Fox 2
by on (#144318)
Regarding GSU1's double speed capability or lack thereof:
Perhaps the GSU2 had some changes that made double-speed operation more reliable. Nintendo tended to design its products to be Tonka Tough with plenty of safety margin, with only a few big failures (e.g. DS and DS Lite shoulder buttons, DS Lite hinge, and Wii fan).

Regarding the "High speed clock operation" paragraph:
One-sixth of 10.74 MHz is one-twelfth of the master clock rate, which is 1.79 MHz, or the half-speed that the S-CPU uses for bit-banging the controller ports (and for no other addresses). Is the manual assuming that the GSU does twice as much work per clock as the S-CPU?
Re: Star Fox 2
by on (#144319)
I think koitsu might not like me linking directly to the manual I'm referring to here, but a quick Google-fu for "SNES Developer Manual" should get you there. The Super FX is covered in book 2.
Re: Star Fox 2
by on (#144328)
tepples wrote:
Regarding GSU1's double speed capability or lack thereof:
Perhaps the GSU2 had some changes that made double-speed operation more reliable. Nintendo tended to design its products to be Tonka Tough with plenty of safety margin, with only a few big failures (e.g. DS and DS Lite shoulder buttons, DS Lite hinge, and Wii fan).

Regarding the "High speed clock operation" paragraph:
One-sixth of 10.74 MHz is one-twelfth of the master clock rate, which is 1.79 MHz, or the half-speed that the S-CPU uses for bit-banging the controller ports (and for no other addresses). Is the manual assuming that the GSU does twice as much work per clock as the S-CPU?


Isn't 1.79Mhz the clock speed for the CPU when it's on the "slow" mode ? (3.57Mhz when on fast ?)
Re: Star Fox 2
by on (#144330)
The speed when accessing RAM or slow ROM or performing DMA (2.68 MHz) is three-fourths of the speed when accessing fast ROM or during internal operation cycles (3.58 MHz). Only controller port access runs at half speed.
Re: Star Fox 2
by on (#144425)
l_oliveira wrote:
I'm not saying it runs at a fixed rate. I just mentioned that some chips can bypass the internal clock divider while others can't.

But anyway, by the time Starfox2 were developed it's pretty obvious it was intended to run on GSU2 even if it was going to use only 1MB of ROM space.

If anyone willing to take this to "the next level" how about someone make a test rom for this ?


There is no need to wonder. Stunt Race FX is a GSU-1 game and uses the "High Speed" 21mhz mode. Whatever is on wikipedia is just plainly incorrect. The differences between Super FX versions are primarily:

Mario Chip (only used in Star Fox) is not capable of the 21mhz mode. Also of note, I think it might actually use a clock signal from the cartridge port unlike other versions that have their own clock source.
GSU-1 can run in 21mhz mode.
GSU-2 supports twice as much ROM allowing for 16 megabits.

All these points are illustrated by the games themselves. I do agree that Star Fox 2 would have been released using a GSU-2 chip simply because of the time frame, unless they had stock of GSU-1 chips to use up.

One last point, some people believed Star Fox 2 somehow needed the GSU-2 and that it was faster because these people were used to playing the game on an emulator like ZSNES which does not emulate the performance of the cache in the Super FX and thus performs faster than it does in actual hardware. It could also be related to other inaccuracies in the emulation.
Re: Star Fox 2
by on (#144434)
There are two ways to get a piece of misinfo out of Wikipedia:
  1. Challenge the source
    If a piece of misinfo lacks a citation entirely, tag it with {{citation needed}}. If there is a citation, but the misinfo does not appear there, tag it with {{failed verification}}. If the misinfo appears there, but you believe the source fails Wikipedia's criteria for reliable sources, tag it with {{Unreliable source?}}. Then wait a month and blow it away.
  2. Create a reliable source
    Find a publication that accepts user submissions and does substantial fact-checking before publishing them, and get it to publish your correction. Then cite this publication in Wikipedia. This is what Philip Roth had to do. I will admit that this is easier said than done for technical information about the hardware of closed video game platforms.
Re: Star Fox 2
by on (#144455)
MottZilla wrote:
Also of note, I think it might actually use a clock signal from the cartridge port unlike other versions that have their own clock source.
GSU-1 can run in 21mhz mode.


I'm looking at a Star Fox 1 PCB now which has the MARIO chip, and I can confirm that there is no oscillator on the board, so it uses the cart edge clock signal. Also, I tried putting Star Fox 2 on a Star Fox 1 PCB, and this is what I get:

https://www.youtube.com/watch?v=b0FgyKq4b0o

Not sure what's up there, but I'm done messing with it for tonight :/
Re: Star Fox 2
by on (#144457)
qwertymodo wrote:
MottZilla wrote:
Also of note, I think it might actually use a clock signal from the cartridge port unlike other versions that have their own clock source.
GSU-1 can run in 21mhz mode.


I'm looking at a Star Fox 1 PCB now which has the MARIO chip, and I can confirm that there is no oscillator on the board, so it uses the cart edge clock signal. Also, I tried putting Star Fox 2 on a Star Fox 1 PCB, and this is what I get:

https://www.youtube.com/watch?v=b0FgyKq4b0o

Not sure what's up there, but I'm done messing with it for tonight :/


Starfox only has 32KB of RAM in it and Starfox2 need 64KB. That's EXACTLY what I got on the Yoshi's Island cartridge before I swapped the 32KB SRAM with a 128KB one. (which I partitioned in two 64KB banks)

On the same cart I also have the original Starfox.
Re: Star Fox 2
by on (#144459)
I forgot to say that was what I got AFTER replacing the SRAM with 128KB (with the high address bit tied to Gnd, so 64KB active). I'm not sure if the MARIO chip even supports 64KB SRAM. There was one unused pin on the MARIO chip between SRAM A14 and SRAM /OE, so that's where I connected the SRAM A15 pin. With the original 32KB SRAM, all I got was a black screen with some of the audio that eventually just trailed off to the percussion track looping with nothing else.
Re: Star Fox 2
by on (#144460)
qwertymodo wrote:
I forgot to say that was what I got AFTER replacing the SRAM with 128KB (with the high address bit tied to Gnd, so 64KB active). I'm not sure if the MARIO chip even supports 64KB SRAM. There was one unused pin on the MARIO chip between SRAM A14 and SRAM /OE, so that's where I connected the SRAM A15 pin. With the original 32KB SRAM, all I got was a black screen with some of the audio that eventually just trailed off to the percussion track looping with nothing else.


I don't think it does support more than 32KB, at all. Look the chip has no loose pins (not that I can see at least).
Re: Star Fox 2
by on (#144461)
Pin 97 doesn't appear to be connected to anything that I can see, and it seems like the perfect candidate.
Re: Star Fox 2
by on (#144464)
qwertymodo wrote:
Pin 97 doesn't appear to be connected to anything that I can see, and it seems like the perfect candidate.


Take your Ohm meter and put it on the mega ohm scale then measure it against both power rails. If you get no reading it's 100% not connected (even inside the chip).

If it's connected to something you will get low impedance measure from leaks at the die. Because we're unsure about the die manufacture process, you could also try the continuity/diode tester and measure if there's continuity, again against the power rails (reversed polarity is more interesting as it tests for the existence of ESD protection diodes).
Re: Star Fox 2
by on (#144837)
I get about 2Mohm between pin 97 and Vcc or Gnd.
Re: Star Fox 2
by on (#144847)
Ok, so I went ahead and disabled the double-speed register in Star Fox 2 and then put it on the GSU-1 and GSU-1A boards, and in the side-by-side, you can see the speed difference pretty dramatically, basically confirming that the double-speed mode works on the SuperFX 1.

GSU-1: https://www.youtube.com/watch?v=DHgjx4N4tDA
GSU-1A: https://www.youtube.com/watch?v=npmAteg7BPA

For future reference, the FFMPEG line that worked was:

Code:
ffmpeg -i left.mp4 -i right.mp4 -filter_complex "[0:v]setpts=PTS-STARTPTS, pad=iw*2:ih[bg]; [1:v]setpts=PTS-STARTPTS[fg]; [bg][fg]overlay=w" output.mp4
Re: Star Fox 2
by on (#144849)
Makes me wonder if the register is also available for the actual RISC program.

The game has to upload a program into the GSU chip, right ? What if that also has access to the register from the RISC side of the things ?

Now, that is good science. Good effort at proving a point. :)
Re: Star Fox 2
by on (#144851)
To really prove anything, I'll need to get it running on the GSU-2 as well. Also, I'll need to figure out where those 8 seconds went in the side-by-side transcode. I do think that discrepancy does show the double-speed mode as working, I just can't show it working because of FFMPEG doing something I don't want it to do. :/

Edit: Fixed the FFMPEG issue, updated the original video. It shows the speed difference now.
Re: Star Fox 2
by on (#144859)
qwertymodo wrote:
To really prove anything, I'll need to get it running on the GSU-2 as well. Also, I'll need to figure out where those 8 seconds went in the side-by-side transcode. I do think that discrepancy does show the double-speed mode as working, I just can't show it working because of FFMPEG doing something I don't want it to do. :/

Edit: Fixed the FFMPEG issue, updated the original video. It shows the speed difference now.


So the change you made - is it software related as in you altered the game data? Or is it the over clocking that I've seen others do with a different resonator, etc...?
Re: Star Fox 2
by on (#144868)
The hardware was exactly the same for both videos, stock board, no overclocking, I just swapped the ROM chip between the two tests since I haven't figured out cart-edge reprogramming for the SuperFX carts yet. I literally changed a single bit in the ROM file, where it selects the clock speed. Star Fox 2 selects high speed (21.4MHz) mode, so I changed that to select low speed (10.7MHz) mode instead. If the GSU-1 really was incapable of high speed mode, then the videos would have been identical, because it would have been running at 10.7MHz all along. The fact that they run at different speeds proves that the GSU-1 (and GSU-1A) is capable of high speed mode. The faster of the two videos is how the game is by default, so this has no application in alleviating slowdowns. This was simply in response to this post earlier in the thread.

l_oliveira wrote:
If anyone willing to take this to "the next level" how about someone make a test rom for this ?


So I guess we can consider this one settled.
Re: Star Fox 2
by on (#144891)
Then the next step toward correcting Wikipedia is to get a third party to deem this result worthy of publication.
Re: Star Fox 2
by on (#144895)
Wikipedia has already been corrected

Quote:
The first version of the chip, commonly referred to as simply "Super FX", is clocked with a 21.4 MHz signal, but an internal clock speed divider halves it to 10.7 MHz. Later on, the design was revised to become the Super FX GSU (Graphics Support Unit); this, unlike the first Super FX chip revision, is able to reach 21 MHz.


Edit: Oh, I just noticed it was you that did the edit, tepples. Thanks :)
Re: Star Fox 2
by on (#145551)
Here we go, new test video. GSU-1 vs GSU-2 (Stunt Race FX vs Yoshi's Island). No difference. GSU-2 is not any faster than the GSU-1 (though I would imagine that the GSU-2 is more stable when overclocked, and can be overclocked to higher speeds than the GSU-1, but at the same clock rate, they are indistinguishable).

https://www.youtube.com/watch?v=6HF8yfhWJJM
Re: Star Fox 2
by on (#145552)
qwertymodo wrote:
Edit: Oh, I just noticed it was you that did the edit, tepples. Thanks :)

Yeah, when the info is already unsourced, it's sometimes easier to slip under the radar by removing text than by adding text.