Login:
Menu:
Post: Author:
FamiTracker > General > Bug Reports & Feature Requests > request: dual 2a03 (nintendo arcade game hardware) Owner: kingcandy New post
Page 2 of 3 Sort: Goto Page: << Previous [1] [2] [3] Next >>
Posted: 2015-01-12 20:24 Reply | Quote
jsr
Administrator

Avatar

Member for: 7333 days
Location: Sweden
Status: Offline

#64873
The mistubishi chip is a speech synth with ROM data.

_______________________
Programmer and developer
Posted: 2015-01-12 22:54  (Last Edited: 2015-01-12 22:57) Reply | Quote
Shywolf



Member for: 5507 days
Status: Offline

#64874
jsr wrote:
The mistubishi chip is a speech synth with ROM data.

Same with the NEC/Jaleco chip. Sample quality seems to be higher than the 2A03 DPCM, but you're restricted to the samples loaded on the built-in ROM from the factory*, which are generally vocal sound effects and nothing relating to music, as far as I know.

*With software emulation you can potentially use different samples, but you won't be able to use those samples on the real thing.

Posted: 2015-01-13 00:33  (Last Edited: 2015-01-13 17:34) Reply | Quote
B00daW

Avatar

Member for: 6394 days
Status: Offline

#64875
Another way to do it would be to hack the MAME romset...

https://archive.org/stream/donkeykong3/Donkey_Kong_3#page/n0/mode/2up

According to the DK3 arcade manual, DK3 uses two main Z80 processors, one for computation and one for DMA. At the bottom right-hand of the board is located two 2a03's connected to state machines, a ROM, and RAM.

Technically you could hack the Z80 code ROM's reset line to just call the sound engine; then hack each 2A03 sound ROM with custom data.

Afterward just add the CRCs of the ROMs into the dkong.c driver, recompile MAME, rename your zip to what you called it in the driver code, and then load your custom dual-2a03 music.

~~~~~~~~~~~~~~~~~~~~~~~~

But yeah, VGM export would be easier, jsr.

Also, I believe the Punch Out! (Arcade) NSF is "ripped" too. Not sure if Super Punch out! (Arcade) or Arm Wrestling (Arcade) are ripped. They are likely incomplete too since they all use a VLM5030 (a vocoded decoder chip) output and write to $4011 for PCM sound as well.


Attachments:
punchout_arcade.nsf (3 Kb)
Posted: 2015-01-13 22:46 Reply | Quote
jfbillingsley

Avatar

Member for: 4179 days
Status: Offline

#64886
I'd be very interested in "beyond NSF" features in FamiTracker. Staying within the boundaries of real hardware is fun and great for making authentic-sounding stuff (look at all the stuff virt has done for commercial projects with FT!), but dang it sometimes I just wanna have stereo sound and longer waveforms, things like that. A sort of general-purpose chiptune tracker.

So I say go for it! Let's have A DOZEN 2A03s. (that would sound awful.)

Posted: 2015-01-14 00:39 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 6391 days
Location: Canada
Status: Offline

#64887
I guess OpenMPT is the tracker you want to be using then.

_______________________
Follow me on Twitter.
I record (some) NSFs on hardware. Feel free to request a hardware render.
Posted: 2015-01-14 03:34 Reply | Quote
cak

Avatar

Member for: 5722 days
Location: oregon
Status: Offline

#64889
OpenMPT -> FTM converter -> NSF export -> 2 or more NES consoles

_______________________
Famicom tunes
Posted: 2015-01-14 22:39 Reply | Quote
jsr
Administrator

Avatar

Member for: 7333 days
Location: Sweden
Status: Offline

#64893
Yeah any kind of changes will be based on what actual hardware can do, even if it's "beyond NSF".

I think if you need other features then a sample based tracker is the way to go, that won't keep you limited.

_______________________
Programmer and developer
Posted: 2015-01-20 21:55  (Last Edited: 2015-01-20 21:56) Reply | Quote
B00daW

Avatar

Member for: 6394 days
Status: Offline

#65019
A neat consideration is that if FamiTracker(s) or DefleMask support Donkey Kong 3 mode that you could have an entire 2a03 to write for a PCM sample engine without bogging on main FamiTracker / DefleMask sound engine. Would be a rather simple engine too that could be a SuperNSF hackjob. mukunda might not care about supernsf engine merging with other code if you ask him. Codes could be edited and the SuperNSF routine could be forked into the mainloop of FamiTracker to point to the code residing. Like the arcade machine has, a Z80 would delegate instruction and pathway between the two 2a03s and their respective RAMs and ROMs. In this case the engine code needs not be ripped and used from source. It'd be more considerate of resources to just make your own from scratch. Wouldn't see the code for just forking into the two and providing work RAM, initializing, addressing, and timing code very difficult to write.

Potential funness indeed. :D

The arcade machine used one 2a03 for the PCM crowd noise too. Helped out to have control of its volume too; so the crowd noise sounded more realistic.

Well I guess if you wanted to be accurate you could always borrow MAME code to have the vocoder chip to play with as well. :O

No hardware emulated platforms that support Donkey Kong 3 VGMs but it's definitely possible. You could totally socket and replace the ROMs for the Z80 and the 2a03s; drop in a quarter (like your engine routine requires) and start to play your jams/tunes. Would look pretty sick if you got your own DK3 machine.

Posted: 2015-01-21 02:39  (Last Edited: 2015-01-21 02:40) Reply | Quote
TechEmporium

Avatar

Member for: 5893 days
Status: Offline

#65026
Honestly, I'd love to see a tracker that can handle emulating arcade hardware from Nintendo's early cabinets, but there's still something to consider; as much as the NES' sound hardware is well documented, it's still a complex feat to accomplish in software. The arcade hardware's also well documented, but owing to the architecture, it's going to be slightly more complex in terms of trying to emulate (especially when you're also going to try & integrate both the console & arcade emulation into one single emulator).

Now, granted that MAME & MESS has accomplished this pretty well, it's out of the question to try & integrate this into FamiTracker without a complete rewrite, owing to the fact that most projects don't use the same sound engine(s). Sure; programmers try to make it easier to integrate their engines into other projects written from scratch, but the fact remains that each engine is custom-made & none are easy to drop into existing projects.

_______________________
Technology: the one thing that's hated & cursed at by all engineers, technologists, scientists & technicians!

(Lousy modern technology! )
Posted: 2015-01-21 03:20 Reply | Quote
B00daW

Avatar

Member for: 6394 days
Status: Offline

#65028
A complete rewrite is entirely unnecessary. Especially given the modular nature of the secondary processors. If anything it would just need slightly more emulator host resources to be emulating two 2a03 environments simultaneously; while emulating the Z80 that times the two and handles the additional hardware.

The MAME engine already emulates the full set of these; and the GUI would hardly have to be modified aside from another PCM instrument interface for importing and macros; and its channel(s).

The PCM routine of the additional 2a03 could be written from scratch, and as I said before potentially borrowed.

The Punchout configuration could be done similarly.

Posted: 2015-01-21 03:44  (Last Edited: 2015-01-21 03:45) Reply | Quote
TechEmporium

Avatar

Member for: 5893 days
Status: Offline

#65030
You make it sound more simple than it sounds, as FamiTracker emulates the 2A03 as the only CPU; the 2A03 in this case is NOT a secondary processor. In the arcade machine, though, the Z80 is the CPU & the two 2A03 chips are peripherals of the Z80; the Z80 itself doesn't simply multiply the number of 2A03 chips by 2, nor does it make one of the 2A03 chips an expansion chip to complement the other. The Z80 & 2A03s communicate with the two chips in a similar way that a 386 CPU communicates to a UART chip in order to establish serial port communication to an external device.

By what I understand from you (& I may be misunderstanding you,) you feel that FamiTracker should be able to emulate the second 2A03 chip like an expansion chip, while the Z80 chip is something minor; sure, it's minor in terms of a user being able to produce music & you can make a user interface that shows this, but the Z80 is a major oart of the backend because it ultimately controls how the two 2A03 chips behave. In other words, you can't simply add an extra 2A03 chip into the tracker's engine as if it were an expansion chip. You'd have to add the ability to emulate the Z80, as well as some logic for the engine to be able to differentiate between an NES-centric & arcade-centric mode (i.e.: FamiTracker would need to know whether it's emulating a single 2A03 as the main CPU, or if it's supposed to be emulating the Z80 as the main CPU, thus emulating the two 2A03 as peripherals).

_______________________
Technology: the one thing that's hated & cursed at by all engineers, technologists, scientists & technicians!

(Lousy modern technology! )
Posted: 2015-01-21 04:15 Reply | Quote
B00daW

Avatar

Member for: 6394 days
Status: Offline

#65031
Wow, dude. I'm pretty sure I made sense and I surely did not think of some farce like Z80 multiplying chips?

Man, are you OK? You're also really talking in voluminous amounts of semi-coherent, verbose, well-spelled ranting in other threads.

I'm gonna take a break from this forum until I see you being a little more calm.

Posted: 2015-01-21 12:42 Reply | Quote
DalekSam

Avatar

Member for: 5688 days
Location: United Kingdom, Belfast
Status: Offline

#65037
...What?

Posted: 2015-01-21 19:47 Reply | Quote
jsr
Administrator

Avatar

Member for: 7333 days
Location: Sweden
Status: Offline

#65045
Well the good thing about VGM is that you don't have to care about CPUs and hardware and stuff, all that's needed is a second set of 2A03 channels. It would be extremely simple to add.

If, at a later point, anyone would want to run things on the actual arcade hardware, then I'm sure that's possible to handle at that time. But before that I see no reasons to make things more complicated than necessary.

_______________________
Programmer and developer
Posted: 2015-01-22 00:03 Reply | Quote
cak

Avatar

Member for: 5722 days
Location: oregon
Status: Offline

#65061
Yeah, it's a fun pipe dream, but in the end it's super simple to just layer nsfs over each other and call it good. I don't think most people care about a tracker specifically for an arcade machine, even if it shares some hardware with a NES console.

_______________________
Famicom tunes
Page 2 of 3 Sort: Goto Page: << Previous [1] [2] [3] Next >>