I've worked for Japanese companies several times in the eighties and nineties and this was definitely a thing. We were an American division and yet we couldn't even get source code or art for the game we were supposed to be making for them. This continued when I worked for a Japanese video card company. They had good programmers but they jealously guarded their code even from other Japanese programmers in the same company and surely they wouldn't give any to us... working at the same freaking company. Another thing about Japanese code that was notable is that in my experience it was always bespoke and custom and quite often spaghetti. It could be brilliant but it had that hand crafted aspect, and was inscrutable outside of the mind who created it. There was no 'computer science' or any attempt to make it engineered - no self conscious thought about how to make software better other than to meet the target and often that target was defined by performance so the end result was no slouch but it wasn't what you would call elegant. This approach becomes very hard to scale. And I believe that is a key element in why Japanese software lagged. Great craftsmen but they did not evolve into engineers but of course I think this is probably changing because my snapshot is old.
I'll also speak to 'elitist' of the top comment. One of the first times I had felt prejudice was when I wrote a very good piece of code for their video card which accelerated some video processing by 4X or more. Seriously they (the Japanese) were surprised and started treating me like a miracle talking dog as they just couldn't seem to get their mind around me being able to figure out their systems and contribute something impactful. Kept asking me - how did you do that?
Alternatively maybe they just didn't think a 4x speedup would be possible? Or their internal culture discouraged people making improvements to code they didn't originally author? Or they thought you did impressive work?
Mostly by eliminating a lot of individual copying steps - also understanding how the texture swizzling worked and writing directly to that format and combining all the steps and writing very good code that used MMX. Often these types of optimizations are things that add speed at the expense of generality but I still think they are useful.