It is currently Sat Sep 22, 2018 12:26 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 41 posts ]  Go to page Previous  1, 2, 3
Author Message
PostPosted: Sat Sep 01, 2018 10:45 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6817
Location: Canada
NewRisingSun wrote:
It bothers me to reward the TNS makers' non-standard implementation by retroactively standardizing it.

I'm not trying to "reward" anybody. I'm trying to avoid creating new incompatibility in the world. The TNS cart is a real NSF player with a practical way to offer a YM2413, and many of these devices were actually produced. This also conveniently already has NSFs, it's not just theoretical. I want to reuse this existing implementation instead of throwing it away with another arbitrary standard. I don't care whether it's how I would have done it or not; it's here and it works. It wasn't really just the TNS either. Multiple people have been doing experiments exchanging YM2413 for VRC7 for years, but TNS actually made a production of NSF player carts for it. I also think it makes for a succinct and practical implementation.

Similar reason why even though nobody ever used it, I want to keep almost all of kevtris' original NSF2 spec. ...or why I think it's better to keep deprecated submappers and use new numbers rather than reassign them. (As for the opposition to 7-bit MMC3 PRG in iNES mapper 4, I've never really understood that, but I don't really care to argue about it. All I cared about was oversize BNROM. ;P)

FWIW those NSFs do have to be patched with a new VRC7 disambiguation chunk, version 2, and the "mandatory chunks" bit to get it, just the code portion wouldn't need patching.

NewRisingSun wrote:
... the description of byte $7B bit 1 should definitely be explicitly changed then...

I'm not referring to the old NSF 1 specification. This is a new proposal, there is no written definition at this point.

NewRisingSun wrote:
...there are now four different YM2413-like chips (YM2413, YMF281, YM2423, VRC7)

Well, those could get an enumeration in that same disambiguation byte as well if someone wants to use them for NSF. Right now plgDavid seems to be experimenting with them, that's fine, but it doesn't need to be part of NSF yet. The spec can change when it needs to.

NewRisingSun wrote:
I have no preferences regarding the addresses at which the chip responds; make it just $9010/$9030, variant-specific addresses, or both.

Well, it was just the Family Noraebang Karaoke that would potentially move for this, and really my whole justification for that is that we can perfectly accommodate it this way without adding more encumbrance to the specs/implementation.


Top
 Profile  
 
PostPosted: Sun Sep 09, 2018 4:58 am 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 653
As promised, here are preliminary rips for your testing purposes.

First, from a OneBus game that uses the second set of APU channels (without PCM), plus a very preliminary, unordered and unoptimized rip of Family Noraebang using the YM2413. I took the liberty of using bit 6 of the NSF header's expansion byte for OneBus. For Family Noraebang, I moved the chip writes from $6000/$6001 to $9010/$9030, but otherwise only set the VRC7 bit, because I don't fully know what that disambiguation chunk would look like.

Edit: Converted Family Noraebang's NSF header to NSF2 and added VRC7 chunk.


Attachments:
Family Noraebang (unordered unoptimized).nsf [720.13 KiB]
Downloaded 3 times
Santa Claus (VT03).nsf [2.17 KiB]
Downloaded 10 times


Last edited by NewRisingSun on Fri Sep 14, 2018 12:16 pm, edited 1 time in total.
Top
 Profile  
 
PostPosted: Sun Sep 09, 2018 11:49 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6817
Location: Canada
Thanks. It will take me a little while to get to implement these (a lot of tasks ahead of it) but I will make use of them.


Top
 Profile  
 
PostPosted: Thu Sep 13, 2018 10:24 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 653
Could you please provide a preliminary defintion for the YM2413 disambugation chunk, so I can add preliminary support to NintendulatorNRS?


Top
 Profile  
 
PostPosted: Thu Sep 13, 2018 10:29 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6817
Location: Canada
Chunk ID: 'VRC7'
1 byte: chip type (0=VRC7, 1=YM2413, 2-255 reserved)
optional:
128 bytes internal patch set.

If using don't forget to indicate NSF2 and set the mandatory extra data bit.


Top
 Profile  
 
PostPosted: Fri Sep 14, 2018 12:19 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 653
I have added support for OneBus NSFs ($7B bit $40s) as well as YM2413 (using the NSF2 VRC7 chunk) and N163 variable volumes (using the mixe chunk) to NintendulatorNRS. Other NSF2 features are not (yet?) supported, beyond the original Nintendulator's support for non-returning play routines.

I have also updated the Family Noraebang NSF in the above post, and added a mixe chunk to the existing King of Kings NSF for testing, attached. Please look at the three NSF(2) files and tell me if I applied the new features correctly, so I can begin releasing rips.


Attachments:
King of Kings (NSF2).nsf [8.15 KiB]
Downloaded 6 times
Top
 Profile  
 
PostPosted: Tue Sep 18, 2018 7:11 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6817
Location: Canada
King of Kings:
- the mixe chunk appears well formed. Sets N163 to 18.00dB.
- I would suggest keeping it as version 1 ($05) and not setting the "mandatory metadata" bit ($7C:7) so that it is allowed to fall back to default mix if that's unsupported.

Family Noraebang:
- Usage appears correct to me. (i.e. version 2 + mandatory bit implies it's not appropriate to use VRC7)
- VRC7 chunk appears well formed.

Santa Claus:
- Using bit 6 for onebus seems OK to me.
- Keeping version 1 ($05) also seems fine to me, since there is no extra data in $7C.

In general, version 2+ should indicate that $7C should be interpreted, version 1 that it should be ignored (though it should also be $00 for version 1). The rest is backward compatible with version 1, including new use of these last 2 expansion bits.


Top
 Profile  
 
PostPosted: Wed Sep 19, 2018 10:52 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6817
Location: Canada
Some questions:

1. The OneBus system is not a Famicom expansion, but a whole clone system where the extra audio hardware is inside the system, not the cartridge?

2. The OneBus has swapped duty on both of its APUs?

3. Aside from the swapped duty, does it differ from the NES APU in other ways? Length counter table? DPCM frequency? Noise frequency? Periodic noise mode? Sweep? Nonlinear mixing? Have any of these things been tested for it? (e.g. not even the MMC5 is a complete APU copy for its square channels, I can't really take any of these for granted.)

4. Does anyone know how to get either the Family Noraebang cartridge, or the OneBus system? Ebay doesn't seem to have any listings for these. I don't know where to look. Alternatively, would someone be willing to lend me these things temporarily?


Top
 Profile  
 
PostPosted: Wed Sep 19, 2018 12:39 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 653
rainwarrior wrote:
The OneBus system is not a Famicom expansion, but a whole clone system where the extra audio hardware is inside the system, not the cartridge?
That's right.
rainwarrior wrote:
The OneBus has swapped duty on both of its APUs?
The VT02 and VT03 certainly have. It's possible that later ones don't: most of the later ones are used in handhelds with a built-in speaker and no Line Out, so that the sound samples heard in YouTube videos showing them are inconclusive. The development kit for the OneBus famiclones includes the EmuVT emulator however, which does not reverse the duty cycles. I emulate it without swapped duty cycles.
rainwarrior wrote:
Aside from the swapped duty, does it differ from the NES APU in other ways? Length counter table? DPCM frequency? Noise frequency? Periodic noise mode? Sweep? Nonlinear mixing?
Attached data sheet has tables with the length counters and DPCM frequencies (page 33ff). (Annoyingly, the data sheet calls the square wave channels "rhythm".) They sound identical to a normal NES, except for the duty cycles of course, but I have not compared each value. With two output pins, one for each APU, I don't think there is nonlinear mixing.

I have no Family Noraebang cartridge unfortunately, and only one OneBus famiclone (Samuri Star Angel) which I would like to keep, as it is a plug-and play system made of of entirely original games with no cartridge slot. But there are many cheap famiclones using the VTxx chips, so maybe somebody else could spare one.


Attachments:
VT02 Data Sheet RevisionA5_ENG__1.pdf [619.07 KiB]
Downloaded 1 time
Top
 Profile  
 
PostPosted: Wed Sep 19, 2018 12:42 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7537
Location: Seattle
Do we know if any of those cheap ones that run off SPI memory (like this one) have the dual APU ?


Top
 Profile  
 
PostPosted: Wed Sep 19, 2018 12:48 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 653
The VT36x model is poorly understood, as there is no data sheet publicly available for it, but I have seen no evidence that V.R.T. removed the second APU.

(Edit) I suppose there is no danger in trying out the 101-in-1 (AT-103) multicart ROM on it, which uses the second APU for its menu music. It's likely that the screen will remain black, however, because of the lack of display-specific initialization code. If anybody writes his own test ROM, note that the second APU must be enabled first by setting the correct bit in register $4030.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 41 posts ]  Go to page Previous  1, 2, 3

All times are UTC - 7 hours


Who is online

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