It is currently Tue Sep 25, 2018 3:32 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: Sat Sep 08, 2018 9:20 am 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 657
The original release of Super Fighter III uses a slightly different variant of J.Y. Company's more well-known clone board. Apart from the mapper-selectable mirroring, its IRQ counter seems work differently. Recall that J.Y. Company's clone board just counts down 64 unfiltered PA12 rises.

The two registers $6006 and $6007 that I marked "unknown" are written to around the same time that the known IRQ register $7007 is written to. They seem to set the start value of an M2-based cycle counter, but with the strange caveat that for the screen splits to be triggered at the correct time, instead of just counting down by one every CPU cycle, I need to count down by five every fourth CPU cycle. I wonder why, and how, such a thing would be implemented in hardware.

Of course, I cannot rule out a coincidence that the values written, when interpreted in the way I described, just happen to result in correct screen splits.

PCB images by MLX.


Attachments:
SuperFighterIII-Front.jpg
SuperFighterIII-Front.jpg [ 75.09 KiB | Viewed 411 times ]
SuperFighterIII-Back.jpg
SuperFighterIII-Back.jpg [ 78.83 KiB | Viewed 411 times ]
Top
 Profile  
 
PostPosted: Sat Sep 08, 2018 10:29 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7558
Location: Seattle
NewRisingSun wrote:
I wonder [...] how[...] such a thing would be implemented in hardware.
That's easy.

Add 5 every M2.
Discard the two LSbits.
Now you have a counter that adds one 3/4 of the time, and adds two the remaining 1/4.

This is the same idea as to how the VRC4's IRQ works: it adds (or subtracts, whatever) 3 every M2, and when that number exceeds 341 it subtracts 341.


Top
 Profile  
 
PostPosted: Sat Sep 08, 2018 11:01 am 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 657
Okay. The part of the discarded bits also makes sense, because all values that the game writes have these bits at zero. Now to wonder why implement it this way.

I can understand the VRC's reason for decrementing by three, because the PPU runs at three times the CPU rate. But At a rate of 5/4 M2, a scanline would have 142+1/12 cycles of the counter. I could imagine this being an attempt at minimizing the error incurred when assuming an integer number of cycles per scanline, and doing it the VRC way by adding 341 was too complicated.

Any ideas about that resistor mess in the top left corner of the PCB front?


Top
 Profile  
 
PostPosted: Sat Sep 08, 2018 11:15 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7558
Location: Seattle
Assuming the resist-covered "7400" isn't a lie, they appear to have made a diode logic AND gate, because the original traces on a 74'00 would have.


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 3 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