It is currently Tue Nov 12, 2019 8:07 pm

All times are UTC - 7 hours



Forum rules





Post new topic Reply to topic  [ 13 posts ] 
Author Message
PostPosted: Tue Nov 05, 2019 11:27 am 
Offline

Joined: Tue Oct 06, 2015 10:16 am
Posts: 988
Are there any sw-visible differences between US and JP SNES? I thought not, but we have a ROM that works in US and PAL units but fails to boot in JP (black screen).

It's not the CIC, as replacing the ROM with a different game on the same board -> boots on JP. The same board with the ROM in question boots in US systems. The JP system is working fine too, this happened on multiple JP systems.

I can't find any info on such differences. The CPU versions should be present in all regions, the game does not use HDMA which is the one difference I remember warnings about.


Top
 Profile  
 
PostPosted: Tue Nov 05, 2019 1:20 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21678
Location: NE Indiana, USA (NTSC)
I imagine the average Super Famicom might be an older revision than the average NTSC Super NES. If you're not using HDMA (which is problematic on 1/1/1 revision launch units), then perhaps the most visible difference between older and newer units is that older units have older revisions of the audio module.

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
PostPosted: Tue Nov 05, 2019 2:44 pm 
Offline
User avatar

Joined: Sat Aug 20, 2016 3:58 am
Posts: 87
The difference was almost an superfx as ppu3.

10$, only 10$.


Top
 Profile  
 
PostPosted: Wed Nov 06, 2019 3:14 am 
Offline

Joined: Tue Oct 06, 2015 10:16 am
Posts: 988
What are the differences on the audio module? http://console5.com/wiki/SNES only lists one S-SMP, but two versions S-DSP. However S-DSP revisions shouldn't be able to affect boot, only S-SMP (spc700) should be able to do that, but the site claims there's no such revisions.


Top
 Profile  
 
PostPosted: Wed Nov 06, 2019 12:59 pm 
Offline

Joined: Fri Feb 24, 2012 12:09 pm
Posts: 1049
Does it happen on all JP consoles, or did you also find some JP consoles that do work?
Did you check CPU and PPU version numbers by software, or check chipset part numbers and date codes, and mainboard PCB text?
What is that ROM, does it use special coprocessors, or has high power consumption, or do other uncommon things?
I guess you have already to tried to reboot/reset a couple of times (multi-region CICs might need that).
Just an idea, are japanese controllers different (apart from the button color)? You could try to unplug the controllers.
Are you using an cartridge slot adaptor between console and cartridge?
The ceramic oscillator in APU might cause timing problems, if it's a bit faster/slower than expected by the ROM.
Old mainboards did use 4MHz clock for CIC (instead 3.072MHz from APU).
Just to be sure that it isn't the CIC, make sure to try on a JP console that does have the CIC disabled.

_________________
homepage - patreon


Top
 Profile  
 
PostPosted: Thu Nov 07, 2019 2:16 am 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3755
Location: Indianapolis
Where is your system initialization code from? Does another program use the same init code and work? When I wrote an SNES program I remember having all sorts of problems getting it to start, until eventually I just ripped init code that somebody else wrote. But I wasn't even on a real SFC, it was a clone system.

Kinda hard to figure out without a trace log, logic analyzer, or something.

edit: random idea, maybe you could connect an LED+resistor to OUT0 of the controller port, and get a simple debug output that way. See if your code makes it to a certain point, at least.


Top
 Profile  
 
PostPosted: Thu Nov 07, 2019 2:19 am 
Offline

Joined: Tue Oct 06, 2015 10:16 am
Posts: 988
This is about Little Medusa SNES, and while we haven't tested the demo on JP, it should behave the same way. So if you have a JP console and want to try it, the demo can be downloaded from megacatstudios.com. If you have trouble with the old browser etc, I can PM you the demo.

All JP consoles we had showed the same. Haven't checked CPU/PPU versions or date codes.
The ROM is bog-standard lorom, no expansion chips.
Yes, multiple resets did not show any change.
The JP controllers shouldn't be anything special.
No adapters.
There shouldn't be any timing-sensitive code.
It shouldn't be the CIC, because the same board (same physical CIC chip) was working with another ROM in JP.

Thanks for the ideas nocash.

@Memblers
It's from tepples' lorom template, but with customizations for cc65. Many other ROMS with the same init code boot fine on JP. There is one difference, for Little Medusa we hadn't yet gotten GSS working properly and used snesmod. But there are no S-SMP revisions, at least listed anywhere.


Top
 Profile  
 
PostPosted: Thu Nov 07, 2019 1:00 pm 
Offline

Joined: Fri Feb 24, 2012 12:09 pm
Posts: 1049
Other guess would be missing RAM initialization for sound/video-SRAMs or Main RAM. Memory chips from different manufacturers tend to boot up with different 'random patterns' in RAM. And maybe same for initial values in PPU/APU registers.
If your JP consoles all have the same chipset then that could make them appear to be incompatible (of course that's unlikely if you have dozens of JP consoles from different sources with different manufacturing dates).
Best add simple "displey blue background" function at the entrypoint, and then move it around to see if it hangs before/after other init functions.

_________________
homepage - patreon


Top
 Profile  
 
PostPosted: Fri Nov 08, 2019 5:35 am 
Offline

Joined: Fri Feb 24, 2012 12:09 pm
Posts: 1049
I've noticed a few things in the demo, they are probably not causing problem. But anyways...

One of the init functions disables/enables IRQs in CPU I-flag (the enable looks unintended, but it shouldn't cause problems, because the IRQ source is disabled in 4200h). Anyways, for temporarily disabling IRQs in a subfunction: It might be better to push/pop P register for restoring the old state, instead of forcing IRQ enable at the end of the function (or just leave IRQs disabled all the time as you don't have a working IRQ handler anyways).

APU upload uses 16bit writes to 2040h and 2141h. Nintendo had a programming caution not to do that, because of a hardware glitch that could destroy the value in 2143h (but that shouldn't matter as you don't seem to have anything relevant in 2143h at time of doing those 16bit writes).

There is a lot more APU code while the screen is still black, I guess it might hang in one of that APU functions (as they are intentionally programmed to "hang" until receiving replies from APU). Well, best change backdrop color or output text messages after each init function.

_________________
homepage - patreon


Top
 Profile  
 
PostPosted: Tue Nov 12, 2019 11:43 am 
Offline

Joined: Tue Oct 06, 2015 10:16 am
Posts: 988
It was indeed the sound. But it got downright spooky after that.

All the consoles are 2/1/3. Then we found one of the in-development ROMs, using GSS like the many working ones, fails on the JP unit. With the exact same code! Both spc700 and 65816 side. No randomness, failing roms always fail and working ones always work.

So we have one GSS rom and one snesmod rom that hang when initializing sound on a JP console, and several GSS roms with identical code that succeed. The JP console is a "new" 2/1/3 SNES, just like the US and PAL units around.

The GSS code should follow every recommendation from big N too.

--

I can only conclude the JP units have a different audio unit, and in such a way that it's affecting code in multiple implementations. This then makes me ask what do the Japanese SNES homebrewers use for sound, and whether this is the first time western homebrew releases have made their way to Japan (for GSS hasn't existed that long (2014), and snesmod seems to reliably hit this; no other SNES sound systems with open source exist).


Top
 Profile  
 
PostPosted: Tue Nov 12, 2019 11:54 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8667
Location: Seattle
2/1/3s can include both 1chip and 3chip SNESes... I assume all of these are 3chip 2/1/3s ?

There also could be variation in SPC700 speed (although only be a couple permille), since ceramic resonators are terrible.


Top
 Profile  
 
PostPosted: Tue Nov 12, 2019 12:29 pm 
Offline

Joined: Tue Oct 06, 2015 10:16 am
Posts: 988
We didn't open them up to check, but all are the old case style, not the redesign. There have been no reports of US or PAL units failing either, ceramic caps should affect the other regions equally, no?


Top
 Profile  
 
PostPosted: Tue Nov 12, 2019 1:21 pm 
Offline

Joined: Tue May 28, 2013 5:49 am
Posts: 1221
Location: Hokkaido, Japan
I have a Japanese 1CHIP and SD2SNES if you want me to test it. It seems like you have to fill in the form just to download the demo though, I didn't want to do that.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group