Skip to content

VGM logging help - Atari Off the Wall

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

Moderator: Staff

  • i86time Offline
  • Posts: 15
  • Joined: 2023-02-05, 8:30:55

VGM logging help - Atari Off the Wall

Post by i86time »

Hello all,
I'm having issues with how to log music from Atari's Off the Wall. I'm new to this, and recently found M1 (and the Bridge frontend). I know that M1 has been deprecated and logging is supposed to be done with modified MAME/MESS, but this game does not have a sound test that allows playback of music and FX, so I'm not sure how to proceed without M1.

In my look into logging this title, I have noticed that the majority of the level music is split between two tracks, the main music with loops which, when played or logged with Bridge, does not end. This is followed by a 2nd short track which is a few notes or bars, which end the loop when the level is completed, and those tracks end on their own (do not loop). The odd thing is some of the looped music tracks have very short loops, while others are long. Sometimes there is a first "loop" which is followed by a 2nd playthrough that differs slightly by the addition of instruments/voices, making for a longer true loop. One track, 32 (20 hex) does this, and because of multiple tempo changes, it seems to produce a loop which is about 3 hours.

The exceptions to this (other than the attract music) are track 12 (0C hex) which loops for about 10m53s and track 26 (1A hex) that loops for about 3h20m, both of which end.

However, I've found 6 tracks that M1 (and Bridge) can play or WAV log, but which produce no sound or file output when -g is used for VGM logging: 33, 41, 43, 45, 47, 52. These are all the 2nd "end" tracks that are about 5s or so. It's not the length though as I am able to VGM log other short tracks fine. Is there any way to get VGMs for those?

So my intent was to log VGM, then using VGM tools, find the loop points, create a new file with 2 or 3 loops (depending on length), and append the ending notes/bars to have a complete finite track. Is this the best way to accomplish complete logging?

Thanks for any help or pointers.

Post by Mao (RN22) »

Logging thru MAME is basically the same as M1, but you really need to know how to use debugger and stuff, so that you can find the specific addresses which the sound code plays.

Regarding about looping, i think the best you can log it, is to play the song individually for like around 10 to 20 minutes. I know its long, but It'll be helpful, once you load the vgm files onto the "vgmlpfnd" tool, and find the specific loop points.

That's what I do when logging VGMs.
To-Do list:
?

Current Status: I could only upload 5 VGM packs per VB's stream.
Tempo: 105.95%
Pitch: +1.00

Better Call Mao!

Image

Please, check my WIP list for more updates.

Post by Mao (RN22) »

Note: I would suggest that when using debugger, try to mess around the addresses, or just find the game (*gamename.cpp) thru mame's source code, and then find the "soundlatch" where the sound test codes usually are, or just trying to mess around with the RAM's addresses.

Since M1's been outdated and cannot be possible to log VGMs, like I did on my Violent Storm pack back in the day, MAME is the best option to do it, since it usually updates it, when ValleyBell intends to do the update.
To-Do list:
?

Current Status: I could only upload 5 VGM packs per VB's stream.
Tempo: 105.95%
Pitch: +1.00

Better Call Mao!

Image

Please, check my WIP list for more updates.

Post by Mao (RN22) »

Also, when the single song has a unusual delays note everytime it loops, try to log it longer like around a long hours so, until it gets back to normal.

But please, don't exceed up to 27 hours of time limit. It wouldn't be playable when you exceed it.
To-Do list:
?

Current Status: I could only upload 5 VGM packs per VB's stream.
Tempo: 105.95%
Pitch: +1.00

Better Call Mao!

Image

Please, check my WIP list for more updates.
  • User avatar
  • ValleyBell Offline
  • Posts: 4770
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Logging a song for 10 minutes is way more than required. Logging between 2 and 4 loops is fully sufficient.
  • fever500 Offline
  • Posts: 60
  • Joined: 2022-06-12, 17:08:56
  • Location: FRANCE

Post by fever500 »

I've created a mame cheat file for you to play with.
Hope you find what you are missing.
Attachments
offtwall.zip
(493 Bytes) Downloaded 44 times
  • i86time Offline
  • Posts: 15
  • Joined: 2023-02-05, 8:30:55

Post by i86time »

RN22 wrote:Logging thru MAME is basically the same as M1, but you really need to know how to use debugger and stuff, so that you can find the specific addresses which the sound code plays.

Regarding about looping, i think the best you can log it, is to play the song individually for like around 10 to 20 minutes. I know its long, but It'll be helpful, once you load the vgm files onto the "vgmlpfnd" tool, and find the specific loop points.

That's what I do when logging VGMs.
Thank you for the reply. When I noticed that some tracks had very long loops, I actually let M1 run overnight. Some tracks I let run for over 12 hours just to see what would happen, but the output file was limited to 6:12:49. I haven't yet gone back to determine loop points on them, but I am certain they are well under that.

Looking at the one that is over 3 hours (track 32 / 0x20) , I've found that the first "loop" for the mid tempo is the music for wave 3, then the fast tempo is for wave 18. I guess the very fast tempo and the very slow tempo could be used on later waves, but I have yet to get to another level that uses them. It's seems odd that rather than them being separate tracks, it's just one track that sets a later start point.
RN22 wrote:Note: I would suggest that when using debugger, try to mess around the addresses, or just find the game (*gamename.cpp) thru mame's source code, and then find the "soundlatch" where the sound test codes usually are, or just trying to mess around with the RAM's addresses.
Is there a resource for learning how to do this? I don't normally use MAME and have not used the debugger before. Atari used to put the memory addresses in their service manuals, but it is not included for Off the Wall. The sound test for this game does not offer a way to test them either. It states on the audio test screen that there are 98 sounds. The last sound is 98, but I believe there are only 79 sounds (music and FX), the rest are null. But the sound test just plays one sound made up of test tones.
Last edited by i86time on 2023-02-20, 3:24:14, edited 1 time in total.
  • i86time Offline
  • Posts: 15
  • Joined: 2023-02-05, 8:30:55

Post by i86time »

ValleyBell wrote:Logging a song for 10 minutes is way more than required. Logging between 2 and 4 loops is fully sufficient.
From what I have seen with this game, many loops are short, but there is at least one that is longer than 10 minutes, as noted about.
  • i86time Offline
  • Posts: 15
  • Joined: 2023-02-05, 8:30:55

Post by i86time »

fever500 wrote:I've created a mame cheat file for you to play with.
Hope you find what you are missing.
Thank you very much for this. I am having issues though. When I use this in ValleyBell's VGM modded MAME, no audio is played when running this cheat for any of the tracks. When I load it in an older version of MAME I had, it will only play the first track, 0x0C; I can't get it to play any others. Any suggestions?
  • User avatar
  • Dario011 Offline
  • Posts: 115
  • Joined: 2019-12-23, 0:24:21

Post by Dario011 »

i86time wrote:
fever500 wrote:I've created a mame cheat file for you to play with.
Hope you find what you are missing.
Thank you very much for this. I am having issues though. When I use this in ValleyBell's VGM modded MAME, no audio is played when running this cheat for any of the tracks. When I load it in an older version of MAME I had, it will only play the first track, 0x0C; I can't get it to play any others. Any suggestions?
The cheat file you get to see allows you to select which sound you want to play (with the selectable "SELECT SOUND" and playing with "PLAY SOUND"), that's the first thing, and what version of MAME (with VGM mod, obviously) are you using?
  • i86time Offline
  • Posts: 15
  • Joined: 2023-02-05, 8:30:55

Post by i86time »

Dario011 wrote:
i86time wrote:
fever500 wrote:I've created a mame cheat file for you to play with.
Hope you find what you are missing.
Thank you very much for this. I am having issues though. When I use this in ValleyBell's VGM modded MAME, no audio is played when running this cheat for any of the tracks. When I load it in an older version of MAME I had, it will only play the first track, 0x0C; I can't get it to play any others. Any suggestions?
The cheat file you get to see allows you to select which sound you want to play (with the selectable "SELECT SOUND" and playing with "PLAY SOUND"), that's the first thing, and what version of MAME (with VGM mod, obviously) are you using?
Yes, I press Tab to to open the menu, go to Cheat, select the sound # then select Play Sound. With ValleyBell's MAME0248_bin64_2022-10-27 I hear nothing. On an older, unmodified MAME 0.175, I can play 0x0C fine, but playing any of the other sounds produces no audio output.

EDIT: I can now get the VGM modifed 0.248 MAME to play 0x0C the majority of times I try. I can also get it to start to play the other sounds, but when first attract screen cycles to the2nd attract screen (upon power on, the game has a short "first" attract screen, which cycles to the same animation prior to showing different gameplay screens ("second" and subsequent attract screens), the sounds stops playing and will not play again no matter what I try.
  • fever500 Offline
  • Posts: 60
  • Joined: 2022-06-12, 17:08:56
  • Location: FRANCE

Post by fever500 »

I forgot to explain some things:
First you have to be in the "choose your starting level" screen (it doesn't work in the service menu)
Activate "stop timer" to stay as long as you need in this screen
Then you have to call "stop sound" between each call to "play sound"
  • i86time Offline
  • Posts: 15
  • Joined: 2023-02-05, 8:30:55

Post by i86time »

fever500 wrote:I forgot to explain some things:
First you have to be in the "choose your starting level" screen (it doesn't work in the service menu)
Activate "stop timer" to stay as long as you need in this screen
Then you have to call "stop sound" between each call to "play sound"
Thanks for that, it worked. I had been trying it on the attract screen, service menu and sound test screen....
  • i86time Offline
  • Posts: 15
  • Joined: 2023-02-05, 8:30:55

Post by i86time »

I was able to get the remaining tracks with fever500's cheat. However, I noticed the the tracks logged from MAME are much louder than those from M1. I tried adjusting all the sound parameters I could find in MAME settings (master volume, compression, channel/chip levels, etc.) as well as the game settings sound level and none of them lowered the levels of the logged tracks. See the attached image of Winamp diskwriter outputs.

The top waveform is logged from M1 VGM, normalization turned off. There is some clipping in one section, but that's it. The bottom is from MAME, with a lot of clipping. Is there some setting I am missing that can change this?

Also, I found that the MAME VGM track runs about 1% faster than the same track from M1. Is the MAME logged track more correct (guess so as M1 has long been discontinued)? I'm not too worried about it as the final tracks I need are only a few seconds each, so it would hardly be noticeable, just curious as to why there is a difference.
Attachments
M1_MameVGM_Comp.jpg
  • User avatar
  • ValleyBell Offline
  • Posts: 4770
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

You're doing the volume comparision the wrong way.
You should compare the VGM logged by M1 with the VGM logged by MAME. The volume should be the same.

VGMPlay's default volume is often a bit higher than those of other emulators.
If you want the VGM's volume to be lower, you can use the "vgm_ptch" tool to reduce it.

Code: Select all

vgm_ptch -SetVolMod:0.5 "file.vgm"
Post Reply