MEKA has a variety of helpful tools. This guide will describe those most relevant to the vgm logging process.

MEKA Overview

1: Menu - Here you will find everything you need to configure MEKA as you would like. It is accessible by mouse, but many items are also accessible by hotkey. Memorizing the most useful hotkeys would be helpful. A minority of the most vgm related items are not mapped to hotkeys.

2: Technical Information - The most useful information here is the Tone Data. It can gives additional insight into what's happening.

3: Load Rom - Lists the games in the current directory.

4: Game Window - This is where the game is displayed.

5: Messages - Shows occasionally useful info about what is happening in the emulator.

6: Cheat area - Search by byte size, old value/exact value. This can help find areas to focus on in the memory editor.

7: Memory editor - Can be used to edit values in ram. This can be used to view data, cheat, or manipulate the music engine. The ROM and RAM tabs will be used most of the time.

Other areas - Palette, Configuration, Tile viewer, Tilemap viewer. These relate to graphics. I keep the Palette window open since it is small, and gives a visual indicator of what is happening.

VGM Related Menu settings

Main> Save State F5
Main> Load State F7
Main> Previous Slot F6
Main> Next Slot F8

Use this to save/load states, and select the current save slot. Memorize these! Use the menu until you are confident you know what they are so that you do not unintentionally destroy/lose work. These don't take a lot of space, so feel free to make as many save states as needed to navigate the game. I recommend one per level/song.


When working with vgms, you will want to set the game to the proper emulation speed. This option is NOT the one you need. This sets the country region. It does not affect most games. An example where it does is the Japanese version of Ristar. It gives access to an additional track during the sound test. A few other games are similarly affected by in different ways by the Region setting. A check will appear next to the currently selected option (Normally European/US). Use mouse to access.

Machine>TV Type

IMPORTANT: This setting DOES affect vgms and it is important to have the proper value. A minority of SMS games have Europe only releases which are usually meant to run at 50hz. Whether or not this setting is appropriate depends on the game and the developer's intention. Unfortunately, this is not always possible to verify. If you've played the game on a real system that can help. Normally, a Pal Only release should be logged at Pal (50hz). To be safe, it is better to use this setting. All game gear games should have a setting of NTSC (60hz). Most SMS games use the NTSC setting. European versions of Roms or European only releases will play back at 50hz. This may not be appropriate if the original developer was Japanese or did not redo the music engine to compensate for the differences between NTSC and PAL. Pal music plays 120% as fast at NTSC. In a minority of cases, this might be the appropriate setting. You will need to research and ask questions to really know. Otherwise, Pal games need to have the TV Type set appropriately. Game Gear games are all logged at 60hz. It does not matter if the original game was 50hz and the music is fast. Sometimes the music will be the same, but either way, there is no such thing as a PAL Game Gear game. Ambiguity around this issue is one of the reasons there are not as many logs of 50hz games. Lastly, the minority of games tagged as Brazilian run at 60hz. Despite SECAM being listed next to Pal, Brazilian games run at 60hz natively. Again, here you have the ambiguity of what the intended rate was. An NTSC>SECAM conversion usually sounds the same and differs only by rebranding. Most Brazilian games are merely rebranded clones of existing games from other regions that were popular enough to port or that were released exclusively for Brazil. The proper rate for Brazilian games will usually be NTSC (60hz). Ignore the SECAM Label and select the right speed. Korean games also run at 60hz. MOST games will use NTSC, so a beginner will be safer focusing on games that run at this setting. This important setting also needs to be set by mouse.

Sound>FM Unit

This is only relevant for SMS games which have FM unit support. Most are listed on the site under FM Tag here. A minority may have partial support for FM in the code but remain unlisted due to its implementation requiring chage to the code or having incomplete instruments. Unless you want an FM based log (YM2413) as opposed to the usual PSG, leave it disabled. It really doesn't matter, but it can have unexpected effects if you're not expecting it for a game you intend to log as PSG. On the other hand, turn it on if you want to log the FM version of a song. You will need to reload the game or hack the FM value in the memory editor to turn it on (see here). The beginner should stick to using the menu appropriately. Those interested in learning a bit more about each unit, and what the Tone values mean should carefully read |this page. Access by mouse.


IMPORTANT: The vgm enthusiasts' bread and butter. This is where you capture the song data as either vgm or wav. It is strongly recommended you obtain a version of MEKA that supports vgm hotkey logging (Alt+V). It allows you to start/stop logging quickly and easily without needing to access the menu each time. It speeds things up significantly when you start logging alot. There is another important setting here that relates to vgms: VGM Sample Accurate. Unless you are logging PCM/Voices, this should NOT be checked. VGMs at smspower are meant to be frame accurate. This results in minor differences to the music (too small to be heard, but resulting in much smaller files). If you accidentally log a psg track with the Sample Accurate setting checked, use vgm_facc (from the tools area) to make the file frame accurate. If you run vgm_facc on a PCM/Voice vgm, you will get a file which crackles-obviously not desired. Sample accurate files will generally be much larger by a significant factor, so unexpectedly large vgm files may indicate you have the setting enabled. For PCM/Voices make sure you enable the Sample Accurate setting (by mouse).


1: Message Area - Breakpoint/Tracer History/Help This area shows relevant debugger messages.

2: Code Area - Displays the area around the current program counter (PC displayed at 3). It holds the value of the current executing instruction. Sometimes, it can show where edits to the rom can be made to produce the changes you want. To see where you are, you need to see what bank values are at FFFC-FFFF (mirrored at DFFC-DFFF) or look up the visible values up in a hex editor. You can also look at recently executed code in the message window using the trace command.

3: Registers - Displays the current value in each register.

4: Commands - here is where you set breakpoints and type other commands. Type "help" and start from there to learn a bit about the debugger.

Once you've gotten a bit familiar with the overall process, the debugger will be your best tool to help get the vgm logs you want in as good a condition as possible. MESS/Emulicious, other emulators, have a more robust debugger. If you're first learning about how the sound engine works, it will be better to use MESS/Emulicious to see how it works (you will need to be a bit familiar with z80 code) before using MEKA's debugger. MEKA uses logical addresses (Z80 tab in the Memory Editor), so effective use will require some familiarity with concepts such as banking and possibly using a hex editor to see where the data in the debugger occurs in ROM (physically). MESS also has vgm logging support, but the control and ease of use is superior in MEKA. Emulicious does not support logging at this time.

Advanced techniques will require you use all these tools.

There are various other tools MEKA has that can be useful, but these will be your bread and butter from the easier to the more challenging cases.

Return to top