Skip to content

Dynamically dumping PCM music from memory cache

Technical discussion about the VGM format, and all the software you need to handle VGM files.

Moderator: Staff

  • Corak Offline
  • Posts: 12
  • Joined: 2015-11-04, 11:39:36

Dynamically dumping PCM music from memory cache

Post by Corak »

Hi!
Long time i had idea to record/extract any game music by dynamically dumping PCM cache from memory address... But i searched - seems there is nothing on internet about that - nobody ever tried or wrote about that... Is it just an insane idea?
It could help at least to capture music from crypted or very exotic sound format where really harder to make unpacker than record data from ingame - also it can help to record only music stream without effects/voices if it forced to mix ingame.
I come to this because recording from mixer - is absolutely unaccaptable - it has another balance than original, depending on mixer method.
For ex. i used Artmoney to dump cache memory block, but have to press manually for every cache part, then converting and to glue all raw pcm data to get full stream.
Is there any utility to make it easier or need to write it?
One of my friend (Grom PE) suggested to write small debugger dll-injector that makes selected cache block protected and when game writes to this block - auto-stop process and dump pcm data from it to file, then make exception and continue, so will be totally lossless. Of course such utility need to specify - start/end cache address and PCM format (or maybe even autodetect it).

Post by vampirefrog »

You need to be way more specific.
  • Corak Offline
  • Posts: 12
  • Joined: 2015-11-04, 11:39:36

Post by Corak »

vampirefrog wrote:You need to be way more specific.
"Specific"? How's that?

I just searching universal utility for recording/dumping pcm data from ANY pc game cache block in memory) Is there any?
  • ctr Offline
  • Posts: 492
  • Joined: 2013-07-17, 23:32:39

Post by ctr »

Stereo mix (the sound card's loopback device) maybe isn't optimal, but you can try using VB-cable or a similar "virtual audio cable" software instead of the hardware stereo mix. Usually you need to set it as default audio device in order for the game to use it.
  • User avatar
  • Maxtreme Offline
  • Posts: 4
  • Joined: 2018-01-24, 3:02:05
  • Location: Germany

hardware synth - memory control, PCM / ROM dumps

Post by Maxtreme »

I have a similar issue. I'm working on a hardware multi-synth to make my custom 8-Bit insturment (comparable to MidiBox by Saurean). It features the YMF262, SN76489, YM2612, SAA1099, YM2413, YM2151, C140 (surrogate, not the actual chip), YM2610, YM2608 and one MCU to enable custom SSG things. I'm using the AS6C1608-55TIN SRAM (16MBit) for ADPCM and PCM dumps from ROM- and RAM-writes.

Currently the problem is how to program the RAM access? The dumps are planned to be written from SD directly to the SRAM (via Teensy 3.6). Now how to enable the YM2610 and YM2608 to access the RAM by DMA? They have dedicated address and data busses for ADPCM-A and -B (PAD, RAD, RA and PA -> YM2610 specs).

https://wiki.neogeodev.org/images/8/8c/ ... ge-006.jpg

Normally (in Neogeo) those busses would directly address ROM and do bank switching. Actually one could build a workaround using two bidirectional bus transceivers (e.g. TXB0108, etc.) to give direct SRAM access to the YM2610. Would that be possible? Did someone have a similar issue before? Besides this everything's working flawlessly. Any response would be helpful.

Best regards from germany!
  • Corak Offline
  • Posts: 12
  • Joined: 2015-11-04, 11:39:36

Post by Corak »

ctr wrote:Stereo mix (the sound card's loopback device) maybe isn't optimal, but you can try using VB-cable or a similar "virtual audio cable" software instead of the hardware stereo mix. Usually you need to set it as default audio device in order for the game to use it.
I wrote about it - stereo mix uses additional filters (hw/sw), not 1:1 copy of original PCM data.
>VB-cable
Hm, thanks, i will try it and compare if it's identical to original data.
Post Reply