Square Button Famicom question!

Started by Salduchi, November 07, 2017, 01:42:16 pm

Previous topic - Next topic

Salduchi

I am doing some research on square button Famicoms and their motherboard revisions. To my understanding, the Famicom with Rev-05 and newer do NOT have the bug causing it to crash? I am looking into getting a Famicom with serial number H21XXXXX. Can anyone tell by the serial number what revision it is? And what exactly causes the the Famicom to crash anyways? Any list of games that are not compatable with the square button Famicom?

Also, what is the issue with the sound on the early units? I've heard some games don't sound right, but what exactly doesn't sound right about them? And what games have this problem?

Thanks

P

November 08, 2017, 02:24:34 am #1 Last Edit: May 25, 2019, 03:18:03 pm by P
I never had a square button Famicom myself, so the following are just my theories from what I have observed on the internet and such.

It's not so easy as square button vs round button, but more like early versions vs later version. Nintendo reportedly recalled many of their earlier systems they sold because they where faulty. I don't know what kind of problems they had (it might be several unrelated problems), but I've seen a Japanese homepage where a guy got hold of a HVC-CPU-01 Famicom, and it glitched when running Rambo. It could just have been old though.

The most common Famicoms are HVC-CPU-05 and up, so I guess they are the fixed versions. But square button controllers may even exist on as late Famicoms as HVC-CPU-06 from what I've seen. Probably Nintendo changed the controllers on all square button Famicoms that they serviced so that could explain why they are rare. But it could also be a user who got hold of square button controllers and thought it was neat and changed them from the one he had, so I'm not very sure about this.


There are no Famicom version that has problems with sound AFAIK, but there have been changes to the APU in different revisions of the CPU (the APU is part of the CPU).
The fist CPU version (RP2A03 without a letter suffix) does not have the "looped noise mode" feature of the noise channel. This mode is used most famously in Fireman's stage music of Rockman 1 or Quickman's stage music in Rockman 2. It's the metallic/electrical percussion sound you hear. This mode exists in at least as early as CPU revision E (RP2A03E) and at least my HVC-CPU-07 Famicom has CPU revision E, and looped noise works fine. Some Nintendo arcade machines like Donkey Kong 3 and Punch Out uses the first version of the Famicom CPU as a sound chip, so this chip is also missing looped noise mode. The VS System series (which are arcade machines heavily based on the Famicom hardware) is also using this early CPU.
So what is looped noise? The noise channel is normally producing "white noise" (non-melodic static noise mostly used for explosion sound effects or as simple percussion instruments) but with looped noise mode turned on it becomes more tonal and metallic. I've made an NSF that first plays all 16 notes of the noise channel with looped noise mode turned off and then I play all 16 again with it turned on, so you can hear exactly what it means. If you play this NSF in Mesen (a great and accurate emulator by the way), go to audio options check the box that says "Disable noise channel mode flag" under the advanced tab. This simulates a Famicom without looped noise. You will hear the first set of 16 notes and the second set sound identical.

The PPU has also had some changes that most famously causes problems in some Codemasters games. On PPU revisions earlier than G-0 a certain register (known as the OAM data register $2004) was a write-only register. On revision G-0 it was made a read/write register for some reason. It's not so common that you need to read this register so I don't know why they made it readable, and if you make a game that needs to read it, it won't work on earlier Famicoms where it's still write-only. This is what happened when Codemoasters (probably totally unaware of the problem) made some games that relies on the register being readable. My HVC-CPU-07 Famicom has PPU revisions E-0 so it's still write-only. It makes the menus in Micro Machines jump like crazy, but actual gameplay is mostly fine. You can simulate an old PPU in Mesen as well. Go to Emulation Settings option, advanced tab and check the box that say "Disable PPU $2004 reads (Famicom behavior) (not recommended)" and load the Micro Machines ROM. Don't worry about the "not recommended" remark, it's for people that don't know what it does.

Salduchi

Thanks for the response P. Any info I can get is a big help!

jpx72

Quote from: Salduchi on November 08, 2017, 04:25:35 pm
Thanks for the response P. Any info I can get is a big help!

So have yo tried to play Rockman yet? I'm really curious now! ;D
Great post P!

P

November 12, 2017, 06:29:42 am #4 Last Edit: November 15, 2017, 03:57:38 am by P
Thanks! I just threw in about everything I know about it in one post.

Due to popular demand I made a ROM version of the noise test. Actually I made a simple Famicom test program that allows testing all 16 notes with or without the mode flag so you can check if your Famicom supports looped noise. If setting the flag to ON doesn't make a difference when you play a sound, your Famicom doesn't support looped noise. Just note that some pitch values sounds very similar with or without the flag set, note 15 (0F in hexadecimal) in particular.

Download here for now.

Edit: Uploaded it at Nesdev so that it doesn't disappear. I also fixed a small bug that probably doesn't have any noticeable effect on the program but was an eyesore in the source.
Download here!

jpx72

Well that's a usefull piece of software! You are pretty skillfull! Thanks for sharing!
Looking forward to "hear" it in action :)

P

Thanks! :) I pieced it together with routines I've written for various projects in the past. Standard things like initializing the hardware, reading the controllers, buffered writing to video RAM and general program structure where all ripped from another project. The only new code I wrote was the menu and writing to the audio registers which was simple with all these tools.
I deleted most of the redundant code but there are probably a lot of things in there that isn't really needed for this program (like sprite 0 collision detection), so the source is probably quite a bit larger than it needs to be. Doesn't matter really, it's still a small NROM program compared to any commercial game. :redcart:

fcgamer

How to tell the revision, just by opening and checking pcb?
Family Bits - Check Progress Below!

https://famicomfamilybits.wordpress.com

Salduchi

Yes if you just take off the bottom case, you will see the revision number printed on one of the corners. Most Famicoms I have seen are Rev 07

P

That's the revision of the main board. The revision of the CPU and PPU are also interesting as I explained above. The NTSC CPU is called RP2A03 and the PAL CPU is RP2A07, the NTSC PPU is RP2C02 and the PAL PPU is RP2C07. Any additional letters (if present at all) are the revision code.