It is currently Fri Nov 17, 2017 12:35 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 44 posts ]  Go to page Previous  1, 2, 3
Author Message
PostPosted: Sat Oct 28, 2017 9:54 am 
Online

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19220
Location: NE Indiana, USA (NTSC)
Any idea what it does with the expansion cartridge? Do any still exist? Because if the expansion cartridge is for adding new songs, this might be a way to play custom YM2413 music, giving an excuse for implementing full YM2413 in something like FamiTracker.

I've got a few I'd like to see:

  • "Bang Bang" by Jessie J et al., medley with "Le Freak" by Chic
  • "Bang and Blame" by REM
  • "Fireflies" by Owl City, medley with "Feuer frei" by Rammstein


Top
 Profile  
 
PostPosted: Sat Oct 28, 2017 12:35 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6437
Location: UK (temporarily)
The ROM seems to expect this behavior:
Code:
Mask: $E003:
  R/W 6000, 6001: YM2413 clone (thank you NewRisingSun)
  R 6003: [D... ....] - SPI (ADC) data
Mask $E00F:
  W 8000: [RBBB BBBB] - R:0-select external ROM; 1-select internal ROM; B-select bank at $8000-$BFFF
                       $C000-$FFFF is always last bank of internal ROM
Mask not yet known:
  W C002: [S... ....] - SPI (ADC) chip select
  W C003: [K... ....] - SPI clock / ADC conversion clock
The strictest address mask possible is $E00F, per the hardware, but specific functions could be more lenient. I'd really like to find out by how much, but ... we'll see what MLX says.

MLX says that the PRG banking register cares about all seven address lines. How odd.

Interestingly, the game doesn't seem to ever explicitly drive SPI data; something must be pulling the node high in order for the SPI ADC to get its required "start" bit. (And then, since there's no obvious way to get the data line to change, it must be clocking in "1 1" for "single-ended conversion" and "pin 3=Ch1")

The ADC code is:
Code:
  LDA #0
  LDY #$FF
  STA $C002 ; chip select falls
  STA $C003 ; SPI clock falls
  STY $C003 ; rises; clock in start bit here
  STA $C003 ; falls
  STY $C003 ; rises; clock in 1:Single or 0:differential here
  STA $C003 ; falls
  STY $C003 ; rises; clock in (Single:1:Ch1 or 0:Ch0) or (Differential:1:Ch1 minus Ch0 or 0:Ch0 minus Ch1)
  STA $C003; falls
  LDX #8
-
  STY $C003; rises
  STX $C003 ; falls; data now valid
  LDA $6003 ; read data
  ASL A
  ROL $00
  DEX
  BNE -
  LDA #$80
  STA $C002 ; raise chip select
and it only runs at 60Hz.

The other interesting bit is that the cart doesn't mix in the audio from the 2A03. All the sound can only come from the FM synthesizer.



To check for an expansion cart, the game checks for a sixteen-byte header ("OPEN FAMILY SONG") mapped at $8000 in the very first bank, and if present, will JSR to $8010. It's possible in intercept NMI partway through by feeding an invalid value to one of the jump table indexes (after it's already done a bunch of random other things). IRQs will cause a spinlock—the IRQ vector points to an RTI.


Top
 Profile  
 
PostPosted: Sat Oct 28, 2017 3:28 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 311
(issue resolved, see below post.)


Last edited by NewRisingSun on Sun Oct 29, 2017 1:50 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: Sat Oct 28, 2017 3:41 pm 
Offline

Joined: Mon Dec 12, 2011 8:15 pm
Posts: 350
send me,i try nestopia


Top
 Profile  
 
PostPosted: Sat Oct 28, 2017 4:29 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 311
All right. Here is my Nintendulator source file for this game, including my (awkward) attempt at Microphone level measurement. Since I don't actually have a microphone, I have tried to make the "MIC" display respond to a simple music line-in signal. It always reads the "wave mapper" device. Since Nintendulator by default does not yet support mapper numbers >255, I needed to change the source file responsible for that as well. I also needed to update the VRC7 emulator to allow for both original YM2413 and VRC7 instrument sets, and to get back the rhythm mode emulation code. The expansion cartridge is supported as well; basically, any PRG ROM exceeding 1 MiB is assumed to be expansion cartridge memory and must come at the beginning of the ROM image.

Compiled Mapper DLL here.


Attachments:
src-Nintendulator-Noraebang.7z [17.44 KiB]
Downloaded 9 times
Top
 Profile  
 
PostPosted: Sat Oct 28, 2017 5:19 pm 
Offline

Joined: Mon Dec 12, 2011 8:15 pm
Posts: 350
NewRisingSun wrote:
All right. Here is my Nintendulator source file for this game, including my (awkward) attempt at Microphone level measurement. Since I don't actually have a microphone, I have tried to make the "MIC" display respond to a simple music line-in signal. It always reads the "wave mapper" device. Since Nintendulator by default does not yet support mapper numbers >255, I needed to change the source file responsible for that as well. I also needed to update the VRC7 emulator to allow for both original YM2413 and VRC7 instrument sets, and to get back the rhythm mode emulation code. The expansion cartridge is supported as well; basically, any PRG ROM exceeding 1 MiB is assumed to be expansion cartridge memory and must come at the beginning of the ROM image.

Compiled Mapper DLL here.

thankyou
but MLX not send me rom....


Top
 Profile  
 
PostPosted: Sun Oct 29, 2017 12:53 pm 
Offline

Joined: Tue Feb 14, 2017 9:50 am
Posts: 38
Thanks to everyone the rom has been released :beer:


Top
 Profile  
 
PostPosted: Mon Oct 30, 2017 6:20 am 
Offline

Joined: Mon Dec 12, 2011 8:15 pm
Posts: 350
NewRisingSun wrote:
All right. Here is my Nintendulator source file for this game, including my (awkward) attempt at Microphone level measurement. Since I don't actually have a microphone, I have tried to make the "MIC" display respond to a simple music line-in signal. It always reads the "wave mapper" device. Since Nintendulator by default does not yet support mapper numbers >255, I needed to change the source file responsible for that as well. I also needed to update the VRC7 emulator to allow for both original YM2413 and VRC7 instrument sets, and to get back the rhythm mode emulation code. The expansion cartridge is supported as well; basically, any PRG ROM exceeding 1 MiB is assumed to be expansion cartridge memory and must come at the beginning of the ROM image.

Compiled Mapper DLL here.


than you !!! Great! but nonwindows os....


Top
 Profile  
 
PostPosted: Sat Nov 11, 2017 5:04 pm 
Offline
User avatar

Joined: Thu Jan 03, 2008 1:48 pm
Posts: 543
Regarding the dumps on the Bootleg Wiki board, do we have all the expansion boards dumped? This is very exciting news!

Wondering the proper method to get an NSF rip of these now too...


Top
 Profile  
 
PostPosted: Sat Nov 11, 2017 10:43 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6437
Location: UK (temporarily)
Record them as VGMs :P

The hardware that they came from doesn't permit combining the YM2413 synthesizer sounds with the 2A03's sounds, so permitting them in an NSF is a little misleading.

On the other hand, maybe explicitly adding a YM2413 option into NSF would stop people from using the YM2413 as through it had the same patch set as the VRC7. Oh, who am I kidding?


Top
 Profile  
 
PostPosted: Mon Nov 13, 2017 3:35 pm 
Offline
User avatar

Joined: Thu Jan 03, 2008 1:48 pm
Posts: 543
Looks like the ICs for K-663A are still being sold; and that they were used in other arcade cabinet games like Mahjong Tenkaigen.

Wonder if the K-663A were decapped that it would present any differences?


Top
 Profile  
 
PostPosted: Mon Nov 13, 2017 4:09 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6437
Location: UK (temporarily)
The last I checked—and this could be stale—we didn't have die-extracted values for the YM2413 built-in patches either, so decapping and staining a K-633A wouldn't be sufficient to determine whether it were identical.

Also, the MAME source implies that the K-633A is a knock-off of the UM3567, which is itself a knockoff of the YM2413. I think it's possible that they could all have subtle differences in the patch set.

Here's a page in Brazilian Portuguese that has recording of both the UM3567 and the YM2413 and I don't hear any difference... but I wouldn't trust my ears to be anything resembling authoritative.


Top
 Profile  
 
PostPosted: Tue Nov 14, 2017 10:35 pm 
Offline
User avatar

Joined: Thu Mar 26, 2015 6:34 pm
Posts: 33
tepples wrote:
Any idea what it does with the expansion cartridge? Do any still exist? Because if the expansion cartridge is for adding new songs, this might be a way to play custom YM2413 music, giving an excuse for implementing full YM2413 in something like FamiTracker.

I've got a few I'd like to see:

  • "Bang Bang" by Jessie J et al., medley with "Le Freak" by Chic
  • "Bang and Blame" by REM
  • "Fireflies" by Owl City, medley with "Feuer frei" by Rammstein


You can already use the full YM2413 in MML with NSD.lib and play it back on hardware with a TNS-HFX4.


Top
 Profile  
 
PostPosted: Wed Nov 15, 2017 6:55 pm 
Offline
User avatar

Joined: Thu Jan 03, 2008 1:48 pm
Posts: 543
The latest version of the PowerPak VRC7 plugin can swap into YM2413 mode as well.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 44 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 7 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