m4a2s - A sound dumping utility
Introduction:
Well, m4a2s is another of my "dirty" tools I wrote to export all of the music & soundeffect data to assembly source files.
I used it primarily to reimport the music and sound data to other games or to reimport it to the same game but to another offset. The trick behind all of that is that I disassemble all the files to pseudo-assembly source files (like mid2agb produces them) but by replacing the static pointers with dynamic labels so they are not depended on their original placement in the ROM by the linker.
I don't really know if anyone really needs this tool beside me but I thought "Hey, why not throw it in here and see if someone needs it?".
Usage:
All of the output files will go to subfolders in the folder you specified called "seq", "bank" and "wave"
This is how files will look like. Here is an example for the songs:
This is an example for Voicegroups:
And finally an example for the waves (the exporter has a fancy useless visualization!):
Disclaimer:
This tool is licensed under the terms of the GPLv3 license. It currently does work but I didn't invest time into making it "idiot proof". It can easily crash when if parameters are given".
Contributing:
Since this tool is licensed under the GPLv3 feel free to contribute by forking my repository on GitHub and improving the code. As I said above, the code is partially pretty dirty and I just want to warn you :D
Downloads & Links:
The source (C#) of this tool is available on my GitHub:
https://github.com/ipatix/m4a2s
The download can be found under the "release" section. Quick link:
https://github.com/ipatix/m4a2s/releases/tag/v0.1-beta
So I hope that someone might be interested in this tool.
Have a nice day ;)
Well, m4a2s is another of my "dirty" tools I wrote to export all of the music & soundeffect data to assembly source files.
I used it primarily to reimport the music and sound data to other games or to reimport it to the same game but to another offset. The trick behind all of that is that I disassemble all the files to pseudo-assembly source files (like mid2agb produces them) but by replacing the static pointers with dynamic labels so they are not depended on their original placement in the ROM by the linker.
I don't really know if anyone really needs this tool beside me but I thought "Hey, why not throw it in here and see if someone needs it?".
Usage:
Code:
$ m4a2s <yourrom.gba> <songtable offset in hex> <output folder of source data>
This is how files will look like. Here is an example for the songs:
Spoiler:
Code:
@ File generated by m4a2s Song-Module
.include "MPlayDef.s"
.equ seq_290_grp, bank_032
.equ seq_290_pri, 0
.equ seq_290_rev, 178
.equ seq_290_mvl, 127
.equ seq_290_key, 0
.section .rodata
.global seq_290
.align 2
@*********************** Track 01 ***********************@
seq_290_0:
.byte KEYSH , seq_290_key+0
.byte TEMPO , 94/2
.byte VOICE , 73
.byte VOL , 68*seq_290_mvl/mxv
.byte LFOS , 44
.byte BENDR , 12
.byte PAN , c_v+31
.byte BEND , c_v+0
.byte N36 , An4 , v080
.byte W09
.byte MOD , 7
.byte W03
.byte VOL , 56*seq_290_mvl/mxv
.byte W06
.byte 51*seq_290_mvl/mxv
.byte W06
.byte TEMPO , 76/2
.byte 45*seq_290_mvl/mxv
.byte W06
.byte 38*seq_290_mvl/mxv
.byte W06
.byte 68*seq_290_mvl/mxv
.byte MOD , 0
.byte N06 , En4
.byte W06
.byte An4
.byte W06
.byte TEMPO , 94/2
.byte VOL , 68*seq_290_mvl/mxv
.byte N36 , Gn4
.byte W09
.byte MOD , 7
.byte W03
.byte VOL , 56*seq_290_mvl/mxv
.byte W06
.byte 51*seq_290_mvl/mxv
.byte W06
.byte TEMPO , 76/2
.byte 45*seq_290_mvl/mxv
.byte W06
.byte 38*seq_290_mvl/mxv
.byte W06
.byte 68*seq_290_mvl/mxv
.byte MOD , 0
.byte N06 , Dn4
@...
Spoiler:
Code:
@ File generated by m4a2s Voicegroup-Module
.include "VoiceDef.s"
.section .rodata
.global bank_041
.align 2
bank_041:
@**************** Voice 000 ****************@
.byte DrumTable
.byte 0x0
.byte 0x0
.byte 0x0
.word drums_001
.byte 0x0, 0x0, 0x0, 0x0
@**************** Voice 001 ****************@
.byte KeySplit
.byte 0x0
.byte 0x0
.byte 0x0
.word bank_001
.word map_000
@**************** Voice 002 ****************@
.byte SquareWave1
.byte Cn3
.byte 0x00
.byte 0x00
.word WaveDuty50
.byte 0, 0, 15, 0
@**************** Voice 003 ****************@
.byte SquareWave1
.byte Cn3
.byte 0x00
.byte 0x00
.word WaveDuty50
.byte 0, 0, 15, 0
@**************** Voice 004 ****************@
.byte DirectSound
.byte Cn3
.byte 0x00
.byte 0x00
.word wave_085
.byte 255, 249, 0, 165
@**************** Voice 005 ****************@
.byte SquareWave1
.byte Cn3
.byte 0x00
.byte 0x00
.word WaveDuty50
.byte 0, 0, 15, 0
@**************** Voice 006 ****************@
.byte SquareWave1
.byte Cn3
.byte 0x00
.byte 0x00
.word WaveDuty50
.byte 0, 0, 15, 0
@ ...
Spoiler:
Code:
@ File generated by m4a2s Wave-Module
.section .rodata
.global wave_004
.align 2
wave_004:
.hword 0x0000, 0x4000
.word 0xD10C00 @ Mid-C pitch ~13379 Hz
.word 11555 @ Loop Start
.word 13800 @ Loop End
.byte 0x00, 0x00, 0x00, 0xDC, 0xD9, 0xD5, 0xD3, 0xD0 @ #------------X-------------------#
.byte 0xCD, 0xCA, 0xC7, 0xC5, 0xC0, 0xBC, 0xB9, 0xB4 @ #--------X-----------------------#
.byte 0xB2, 0xAD, 0xA8, 0xA3, 0xA4, 0xA3, 0xA8, 0xA6 @ #----X---------------------------#
.byte 0xAC, 0xA8, 0xB1, 0xA9, 0xB8, 0xA4, 0xEC, 0xF1 @ #-------X------------------------#
.byte 0xCE, 0xE0, 0xDB, 0x01, 0xF7, 0x00, 0x17, 0x18 @ #--------------X-----------------#
.byte 0x41, 0x18, 0x20, 0x3F, 0x61, 0x6C, 0x68, 0x69 @ #-------------------------X------#
.byte 0x67, 0x66, 0x66, 0x65, 0x2A, 0xFA, 0x5F, 0x2B @ #-------------------------X------#
.byte 0x25, 0x18, 0xFF, 0x05, 0x11, 0x61, 0x55, 0x5B @ #---------------------X----------#
.byte 0x53, 0x55, 0x51, 0x53, 0x50, 0x51, 0x4F, 0x4E @ #--------------------------X-----#
.byte 0x4D, 0x4C, 0x4C, 0x4A, 0x51, 0x3C, 0x2F, 0x20 @ #------------------------X-------#
.byte 0x1C, 0x14, 0x07, 0x00, 0xF7, 0xF3, 0xE8, 0xE8 @ #---------------X----------------#
.byte 0xCF, 0xD8, 0xC3, 0xD4, 0xC1, 0xC0, 0xC9, 0xAE @ #--------X-----------------------#
.byte 0xB0, 0xA8, 0xAF, 0x94, 0xAE, 0xAB, 0xB1, 0x92 @ #----X---------------------------#
.byte 0xBF, 0xAB, 0xB4, 0xCB, 0xF2, 0xDA, 0xB1, 0xFB @ #---------X----------------------#
.byte 0xEB, 0xE0, 0x08, 0x15, 0x0E, 0xEA, 0x04, 0x47 @ #----------------X---------------#
.byte 0xEC, 0x34, 0x57, 0x07, 0x11, 0x0E, 0x56, 0x18 @ #--------------------X-----------#
.byte 0x0A, 0x57, 0x1C, 0xFA, 0x26, 0x1B, 0x2D, 0xFD @ #-------------------X------------#
.byte 0x22, 0x2E, 0xE2, 0x0F, 0x08, 0xF8, 0x07, 0x0C @ #-----------------X--------------#
.byte 0xFF, 0xD6, 0xD3, 0x08, 0xEA, 0xDB, 0xF8, 0xF2 @ #-------------X------------------#
.byte 0xD4, 0xCB, 0xE1, 0xE6, 0xCB, 0xD8, 0xE2, 0xDB @ #-----------X--------------------#
.byte 0xD1, 0xD5, 0xCD, 0xCD, 0xD4, 0xDD, 0xCC, 0xD4 @ #----------X---------------------#
.byte 0xE3, 0xD4, 0xCF, 0xD7, 0xDA, 0xCA, 0xCA, 0xD6 @ #----------X---------------------#
.byte 0xE2, 0xCA, 0xD3, 0xDC, 0xD2, 0xD6, 0xD7, 0xE4 @ #----------X---------------------#
.byte 0xDE, 0xD9, 0xE7, 0xE5, 0xEC, 0xF1, 0xE5, 0xE8 @ #------------X-------------------#
.byte 0xE7, 0xF0, 0xFC, 0xEF, 0x02, 0x01, 0xF8, 0x04 @ #---------------X----------------#
.byte 0x07, 0x0B, 0x10, 0x07, 0x1C, 0x0C, 0x17, 0x0F @ #-----------------X--------------#
.byte 0x19, 0x17, 0x17, 0x15, 0x1D, 0x0F, 0x1E, 0x0F @ #------------------X-------------#
.byte 0x1F, 0x1F, 0x11, 0x17, 0x07, 0x19, 0x09, 0x0E @ #------------------X-------------#
.byte 0x0F, 0x07, 0x00, 0x05, 0xFC, 0x01, 0xF7, 0xF8 @ #----------------X---------------#
.byte 0xFA, 0xEE, 0xF1, 0xE0, 0xF0, 0xE3, 0xE4, 0xDF @ #-------------X------------------#
.byte 0xE2, 0xDA, 0xD6, 0xE1, 0xE5, 0xE6, 0xE2, 0xE6 @ #------------X-------------------#
.byte 0xE7, 0xE5, 0x09, 0x19, 0xF3, 0x15, 0x0C, 0x10 @ #----------------X---------------#
.byte 0x26, 0x26, 0x2C, 0x36, 0x4B, 0x3E, 0x30, 0x3F @ #----------------------X---------#
.byte 0x7B, 0x5A, 0x64, 0x6B, 0x63, 0x5F, 0x58, 0x6A @ #----------------------------X---#
.byte 0x2E, 0x0C, 0x60, 0x29, 0x16, 0x17, 0x16, 0xFE @ #--------------------X-----------#
.byte 0xFF, 0x38, 0x33, 0x0C, 0x0B, 0x2C, 0x0F, 0xEE @ #------------------X-------------#
.byte 0x07, 0x14, 0xFB, 0xEB, 0x05, 0x05, 0xE4, 0xE5 @ #---------------X----------------#
.byte 0x0F, 0x03, 0xEB, 0xF6, 0xDD, 0xD9, 0xDE, 0xEE @ #-------------X------------------#
.byte 0xE5, 0xE4, 0x1C, 0xEB, 0xC9, 0xEA, 0x1A, 0x1A @ #--------------X-----------------#
.byte 0xF1, 0x1F, 0x1F, 0xFB, 0xFB, 0x0B, 0x07, 0xD4 @ #----------------X---------------#
.byte 0x0C, 0x11, 0xE4, 0xEF, 0xF6, 0xF5, 0x03, 0x3C @ #----------------X---------------#
.byte 0x43, 0x17, 0x19, 0x59, 0x32, 0x3B, 0x57, 0x4E @ #-----------------------X--------#
.byte 0x3C, 0x27, 0x58, 0x5E, 0x2D, 0x77, 0x5A, 0x34 @ #-------------------------X------#
.byte 0x29, 0x35, 0x3E, 0x11, 0x27, 0x3B, 0xF6, 0x0B @ #--------------------X-----------#
.byte 0x03, 0x0A, 0xF1, 0xE9, 0x00, 0xDB, 0xD0, 0xE5 @ #-------------X------------------#
.byte 0xDB, 0xCF, 0xCC, 0xC9, 0xBE, 0xA9, 0xC3, 0xC9 @ #--------X-----------------------#
.byte 0xBA, 0xB2, 0xCC, 0xC8, 0xAD, 0xB9, 0xC8, 0xCE @ #-------X------------------------#
.byte 0xA4, 0xBD, 0xD6, 0xB5, 0xC3, 0xCE, 0xC3, 0xC6 @ #--------X-----------------------#
.byte 0xB3, 0xDE, 0xD0, 0xBB, 0x05, 0xD3, 0xCD, 0xD4 @ #----------X---------------------#
.byte 0xDB, 0xF4, 0xCF, 0xF1, 0x10, 0xC2, 0xF0, 0xFA @ #-------------X------------------#
.byte 0xF5, 0xFD, 0xE9, 0x12, 0xF6, 0xE3, 0x11, 0xFA @ #---------------X----------------#
.byte 0x01, 0x0B, 0x08, 0x01, 0xF0, 0x04, 0x17, 0x00 @ #----------------X---------------#
.byte 0x18, 0x14, 0x0A, 0x04, 0x0C, 0x0B, 0x0B, 0x17 @ #-----------------X--------------#
.byte 0x11, 0x0E, 0x07, 0x15, 0x10, 0x03, 0x18, 0x19 @ #-----------------X--------------#
.byte 0x00, 0x11, 0x14, 0x10, 0x0E, 0x17, 0x1F, 0xF1 @ #-----------------X--------------#
.byte 0x0D, 0x18, 0x06, 0x00, 0x13, 0x16, 0xF2, 0xF0 @ #----------------X---------------#
.byte 0x27, 0x09, 0xF3, 0x0C, 0x1A, 0x0B, 0xF9, 0x1E @ #-----------------X--------------#
.byte 0x1F, 0x03, 0x17, 0x24, 0x07, 0x17, 0x24, 0x22 @ #-------------------X------------#
.byte 0x14, 0x23, 0x3B, 0x11, 0x22, 0x3D, 0x36, 0x1D @ #--------------------X-----------#
.byte 0x31, 0x44, 0x2E, 0x2C, 0x46, 0x45, 0x3A, 0x3A @ #-----------------------X--------#
.byte 0x3B, 0x38, 0x37, 0x57, 0x2D, 0x28, 0x33, 0x34 @ #----------------------X---------#
.byte 0x2C, 0x29, 0x36, 0x1F, 0xFF, 0x1C, 0x18, 0x06 @ #-------------------X------------#
.byte 0x0D, 0x18, 0x03, 0xEA, 0xF5, 0xF2, 0xD9, 0xEF @ #---------------X----------------#
.byte 0x01, 0xDF, 0xC2, 0xD5, 0xE8, 0xD5, 0xE6, 0xF7 @ #------------X-------------------#
.byte 0xE9, 0xCB, 0xDC, 0xF4, 0xF4, 0xFC, 0x12, 0xE6 @ #-------------X------------------#
.byte 0xF1, 0xFD, 0xFF, 0x0C, 0x1D, 0x3B, 0x1E, 0x05 @ #-----------------X--------------#
.byte 0x35, 0x3B, 0x2A, 0x47, 0x4A, 0x51, 0x34, 0x2E @ #-----------------------X--------#
.byte 0x40, 0x36, 0x47, 0x4C, 0x2D, 0x39, 0x38, 0x2C @ #-----------------------X--------#
.byte 0x40, 0x43, 0x37, 0x19, 0x18, 0x2A, 0x27, 0x0E @ #---------------------X----------#
.byte 0x27, 0x13, 0xFA, 0x00, 0x02, 0x05, 0xF8, 0xFE @ #----------------X---------------#
.byte 0x0B, 0xEE, 0xE4, 0xEC, 0xD6, 0xE8, 0xDD, 0xDE @ #-------------X------------------#
.byte 0xC5, 0xC2, 0xD1, 0xD3, 0xC6, 0xE3, 0xCF, 0xBF @ #---------X----------------------#
.byte 0xBB, 0xD6, 0xE7, 0xD0, 0xC7, 0xCA, 0xCD, 0xC3 @ #---------X----------------------#
.byte 0xC1, 0xC4, 0xDC, 0xC9, 0xC7, 0xCC, 0xD0, 0xC7 @ #---------X----------------------#
.byte 0xBC, 0xE5, 0xE1, 0xCB, 0xD5, 0xDB, 0xCD, 0xDC @ #----------X---------------------#
.byte 0xE7, 0xF1, 0xC6, 0xD9, 0xF9, 0xD0, 0xE4, 0xFE @ #------------X-------------------#
.byte 0x06, 0xE0, 0xDF, 0x01, 0xF9, 0xD0, 0x0C, 0xF9 @ #--------------X-----------------#
.byte 0xF2, 0xF3, 0xFB, 0x01, 0xF2, 0x06, 0x0B, 0xE6 @ #---------------X----------------#
.byte 0xF7, 0x0D, 0x00, 0xFD, 0x04, 0x09, 0xEA, 0xE9 @ #---------------X----------------#
.byte 0x04, 0xFD, 0xF4, 0xF4, 0xFB, 0xF2, 0xFD, 0xF0 @ #---------------X----------------#
.byte 0xFD, 0xF7, 0xF9, 0xEB, 0xE3, 0xFA, 0xFA, 0xE4 @ #--------------X-----------------#
.byte 0xEE, 0xF7, 0xE8, 0xE4, 0xE6, 0xF7, 0xE7, 0xFD @ #-------------X------------------#
.byte 0x01, 0xDA, 0xED, 0x07, 0x00, 0xF2, 0xEF, 0x0C @ #--------------X-----------------#
.byte 0xF3, 0xE3, 0x2A, 0x1A, 0xF2, 0x00, 0x19, 0x24 @ #-----------------X--------------#
.byte 0x07, 0x21, 0x33, 0x0E, 0x1C, 0x32, 0x1E, 0x2F @ #--------------------X-----------#
.byte 0x3A, 0x3F, 0x24, 0x1F, 0x49, 0x25, 0x20, 0x49 @ #----------------------X---------#
.byte 0x4D, 0x20, 0x13, 0x2E, 0x2E, 0x05, 0x21, 0x34 @ #--------------------X-----------#
.byte 0x13, 0xF4, 0x00, 0x0B, 0xFE, 0x03, 0xFC, 0xE4 @ #---------------X----------------#
.byte 0xD3, 0xE2, 0xE6, 0xC6, 0xD2, 0xED, 0xCE, 0xB0 @ #----------X---------------------#
.byte 0xCE, 0xD4, 0xC8, 0xC0, 0xFF, 0xE7, 0xC7, 0xBE @ #----------X---------------------#
.byte 0xEC, 0xF1, 0xEF, 0xF3, 0x00, 0xE7, 0xF2, 0x14 @ #--------------X-----------------#
.byte 0x18, 0x17, 0x23, 0x29, 0x1A, 0x3D, 0x52, 0x4E @ #---------------------X----------#
.byte 0x31, 0x31, 0x5B, 0x3B, 0x2D, 0x4F, 0x6E, 0x4F @ #------------------------X-------#
.byte 0x3A, 0x5E, 0x69, 0x31, 0x47, 0x69, 0x5C, 0x4A @ #--------------------------X-----#
.byte 0x29, 0x41, 0x21, 0x21, 0x3E, 0x29, 0x00, 0x1D @ #--------------------X-----------#
.byte 0x17, 0x02, 0xFD, 0x14, 0x02, 0xD8, 0xEA, 0xF8 @ #---------------X----------------#
.byte 0xD9, 0xBA, 0xD4, 0xDE, 0xC3, 0xAE, 0xC5, 0xBD @ #--------X-----------------------#
.byte 0xA7, 0xC5, 0xD0, 0xCD, 0xB9, 0xB6, 0xAF, 0xB9 @ #-------X------------------------#
.byte 0xBD, 0xC4, 0xB3, 0xB1, 0xBE, 0xBC, 0xAD, 0xB8 @ #-------X------------------------#
.byte 0xCB, 0xC0, 0xB8, 0xC2, 0xCE, 0xC6, 0xBB, 0xCB @ #--------X-----------------------#
.byte 0xDD, 0xC9, 0xC2, 0xC8, 0xD9, 0xCE, 0xCF, 0xDD @ #----------X---------------------#
.byte 0xE4, 0xD8, 0xEE, 0xF0, 0xE8, 0xEB, 0xF1, 0xE9 @ #-------------X------------------#
.byte 0xEB, 0xF4, 0x03, 0xFB, 0xEE, 0x02, 0xFD, 0xFE @ #---------------X----------------#
.byte 0xFA, 0x06, 0x07, 0xFF, 0x03, 0x06, 0xF8, 0x0C @ #----------------X---------------#
.byte 0x0A, 0x00, 0xFD, 0xF2, 0x01, 0x05, 0xFD, 0x06 @ #----------------X---------------#
.byte 0x00, 0xF3, 0xF6, 0x05, 0x0D, 0xF6, 0xEE, 0xFC @ #---------------X----------------#
.byte 0xFF, 0xF8, 0xF6, 0x01, 0xF3, 0xD8, 0xE5, 0x04 @ #--------------X-----------------#
.byte 0xE7, 0xEF, 0xFA, 0xFD, 0xE6, 0xE3, 0x04, 0xF1 @ #--------------X-----------------#
.byte 0xEC, 0x0B, 0xF8, 0xE1, 0xED, 0x0C, 0x12, 0xF3 @ #---------------X----------------#
.byte 0x32, 0x29, 0xE8, 0xFB, 0x2D, 0x4B, 0x19, 0x17 @ #-------------------X------------#
.byte 0x4A, 0x1B, 0x10, 0x45, 0x4D, 0x47, 0x28, 0x46 @ #----------------------X---------#
.byte 0x50, 0x34, 0x54, 0x4A, 0x30, 0x39, 0x4B, 0x28 @ #-----------------------X--------#
.byte 0x04, 0x30, 0x49, 0x10, 0xFE, 0x2C, 0x20, 0xDF @ #------------------X-------------#
.byte 0xEB, 0x25, 0xF9, 0xC7, 0xD5, 0xF7, 0xC0, 0xB5 @ #------------X-------------------#
.byte 0xDA, 0xC2, 0xAA, 0xBF, 0xC6, 0xC5, 0xBA, 0xDB @ #--------X-----------------------#
.byte 0xC4, 0xA2, 0xDF, 0xE7, 0xD0, 0xD5, 0xF7, 0xF9 @ #-----------X--------------------#
.byte 0xC0, 0xF7, 0x19, 0xF2, 0xFF, 0x28, 0x3F, 0x2B @ #-----------------X--------------#
.byte 0x0F, 0x45, 0x3D, 0x36, 0x52, 0x4F, 0x52, 0x4C @ #------------------------X-------#
.byte 0x4F, 0x54, 0x5D, 0x68, 0x60, 0x4C, 0x6E, 0x73 @ #---------------------------X----#
.byte 0x59, 0x42, 0x5E, 0x5E, 0x46, 0x39, 0x4D, 0x42 @ #-------------------------X------#
.byte 0x21, 0x2A, 0x3F, 0x1D, 0x0F, 0x15, 0x0F, 0x03 @ #-------------------X------------#
.byte 0xF3, 0x04, 0xEF, 0xE1, 0xE8, 0xD3, 0xC0, 0xC6 @ #------------X-------------------#
.byte 0xCA, 0xBD, 0xB2, 0xCE, 0xBB, 0x9D, 0xAF, 0xBF @ #-------X------------------------#
.byte 0xA8, 0x9E, 0xBB, 0xC7, 0x99, 0x98, 0xB9, 0xBE @ #-----X--------------------------#
.byte 0xAD, 0xAC, 0xC7, 0xBE, 0xAB, 0xB8, 0xB2, 0xC5 @ #------X-------------------------#
.byte 0xD2, 0xC3, 0xBD, 0xCC, 0xDB, 0xCD, 0xB7, 0xE8 @ #---------X----------------------#
.byte 0xE5, 0xCC, 0xD4, 0xF9, 0xF5, 0xCE, 0xE9, 0x0E @ #------------X-------------------#
.byte 0xEE, 0xE3, 0xF8, 0x00, 0xFE, 0xFD, 0x15, 0x02 @ #---------------X----------------#
.byte 0xF6, 0x05, 0x0F, 0x05, 0x13, 0x13, 0x06, 0x02 @ #----------------X---------------#
.byte 0x25, 0x21, 0x02, 0x0B, 0x1D, 0x11, 0xF8, 0x13 @ #------------------X-------------#
.byte 0x29, 0x07, 0xFE, 0x1B, 0x21, 0xFC, 0xFB, 0x1F @ #------------------X-------------#
.byte 0x1D, 0x10, 0x0C, 0xFF, 0xFA, 0xFD, 0x13, 0xFC @ #----------------X---------------#
.byte 0xF8, 0x03, 0xE1, 0xD1, 0xFB, 0x0C, 0xEE, 0xCE @ #-------------X------------------#
.byte 0xFB, 0xF3, 0xBB, 0xDC, 0xFB, 0xEB, 0xD3, 0xEA @ #------------X-------------------#
.byte 0xF7, 0xD7, 0xE0, 0x13, 0xFC, 0xF6, 0x0B, 0x0D @ #---------------X----------------#
.byte 0xFF, 0x14, 0x2C, 0x20, 0x0F, 0x30, 0x3A, 0x10 @ #-------------------X------------#
.byte 0x2C, 0x51, 0x2D, 0x1C, 0x43, 0x54, 0x2F, 0x17 @ #----------------------X---------#
.byte 0x47, 0x3E, 0x11, 0x25, 0x31, 0x2D, 0x18, 0x1D @ #---------------------X----------#
.byte 0x15, 0xFF, 0x09, 0x23, 0x00, 0x00, 0x05, 0xE6 @ #----------------X---------------#
.byte 0xCC, 0xE7, 0x01, 0xD9, 0xC5, 0xE9, 0xE6, 0xAD @ #-----------X--------------------#
.byte 0xC6, 0xE7, 0xD8, 0xC0, 0xEB, 0xF6, 0xCB, 0xD4 @ #-----------X--------------------#
.byte 0xFD, 0xF2, 0xDE, 0xF8, 0x01, 0xF9, 0x05, 0x29 @ #---------------X----------------#
.byte 0x18, 0x17, 0x3B, 0x34, 0x26, 0x39, 0x63, 0x45 @ #----------------------X---------#
.byte 0x2A, 0x57, 0x68, 0x46, 0x4E, 0x69, 0x78, 0x4F @ #--------------------------X-----#
.byte 0x4F, 0x72, 0x68, 0x5F, 0x5D, 0x5C, 0x62, 0x52 @ #---------------------------X----#
.byte 0x4C, 0x43, 0x42, 0x4B, 0x39, 0x23, 0x24, 0x28 @ #-----------------------X--------#
.byte 0x1A, 0x06, 0x0B, 0x15, 0xFB, 0xE4, 0xE2, 0xEB @ #---------------X----------------#
.byte 0xD3, 0xCA, 0xD3, 0xD5, 0xB5, 0xA7, 0xC0, 0xC0 @ #--------X-----------------------#
.byte 0xA8, 0xB7, 0xB6, 0xB2, 0xA5, 0xB3, 0xB9, 0x9F @ #-----X--------------------------#
.byte 0xB1, 0xBE, 0xAA, 0xA5, 0xAA, 0xB7, 0xA3, 0xB2 @ #-----X--------------------------#
.byte 0xC5, 0xAD, 0xA9, 0xC1, 0xC8, 0xCA, 0xBE, 0xCD @ #-------X------------------------#
.byte 0xC5, 0xBA, 0xD9, 0xDE, 0xD5, 0xD9, 0xD3, 0xE1 @ #----------X---------------------#
.byte 0xE7, 0xE2, 0xEA, 0xE6, 0xFB, 0xF5, 0xEF, 0x05 @ #-------------X------------------#
.byte 0x02, 0xFC, 0x08, 0x10, 0x09, 0xEE, 0x0A, 0x24 @ #----------------X---------------#
.byte 0x12, 0x10, 0x16, 0x17, 0x05, 0x0F, 0x2C, 0x1C @ #------------------X-------------#
.byte 0x09, 0x16, 0x13, 0x07, 0x0B, 0x21, 0x15, 0x07 @ #------------------X-------------#
.byte 0x1B, 0x13, 0xFF, 0x00, 0x27, 0x19, 0xFE, 0x12 @ #-----------------X--------------#
.byte 0x12, 0xF9, 0xEF, 0x0C, 0x0C, 0xF5, 0xFF, 0x08 @ #----------------X---------------#
.byte 0xE6, 0xF7, 0xFD, 0xFC, 0xE4, 0xF7, 0x01, 0xE0 @ #--------------X-----------------#
.byte 0xE7, 0xF7, 0xED, 0xF3, 0xFE, 0x02, 0xEF, 0xF1 @ #--------------X-----------------#
.byte 0x0F, 0xFA, 0xFC, 0x19, 0x13, 0x10, 0x16, 0x28 @ #-----------------X--------------#
.byte 0x12, 0x03, 0x38, 0x3E, 0x34, 0x40, 0x38, 0x2A @ #---------------------X----------#
.byte 0x2D, 0x4D, 0x57, 0x39, 0x40, 0x46, 0x24, 0x20 @ #-----------------------X--------#
.byte 0x38, 0x47, 0x27, 0x26, 0x32, 0x17, 0x00, 0x0E @ #--------------------X-----------#
.byte 0x14, 0x02, 0x03, 0x00, 0xED, 0xDC, 0xEB, 0xEB @ #--------------X-----------------#
.byte 0xDF, 0xD3, 0xE5, 0xC9, 0xBC, 0xDE, 0xED, 0xDE @ #-----------X--------------------#
.byte 0xD7, 0xDF, 0xD7, 0xD7, 0xE3, 0xE2, 0xE2, 0xFC @ #------------X-------------------#
.byte 0xF0, 0xEC, 0xFC, 0x15, 0x16, 0x0D, 0x29, 0x2B @ #-----------------X--------------#
.byte 0x17, 0x27, 0x40, 0x3E, 0x3B, 0x53, 0x4E, 0x35 @ #-----------------------X--------#
.byte 0x4F, 0x55, 0x50, 0x59, 0x69, 0x64, 0x44, 0x4E @ #--------------------------X-----#
.byte 0x6A, 0x60, 0x54, 0x54, 0x56, 0x44, 0x35, 0x40 @ #--------------------------X-----#
.byte 0x3F, 0x2D, 0x29, 0x1E, 0x1D, 0x10, 0x00, 0xFC @ #-------------------X------------#
.byte 0xF8, 0xF3, 0xEC, 0xD5, 0xCE, 0xC3, 0xC5, 0xC3 @ #-----------X--------------------#
.byte 0xB8, 0xAB, 0xAB, 0xAD, 0xAB, 0xA6, 0xA3, 0xA3 @ #-----X--------------------------#
.byte 0x98, 0x9B, 0xA9, 0xAA, 0xA7, 0xAB, 0xB1, 0xA3 @ #----X---------------------------#
.byte 0xA9, 0xB3, 0xB3, 0xA9, 0xBB, 0xC2, 0xBD, 0xB7 @ #------X-------------------------#
.byte 0xCC, 0xE0, 0xC0, 0xC9, 0xD8, 0xD8, 0xD4, 0xDC @ #----------X---------------------#
.byte 0xEB, 0xEB, 0xDE, 0xE4, 0xE1, 0xF0, 0xF6, 0xF4 @ #-------------X------------------#
.byte 0x08, 0x03, 0xFD, 0xFB, 0xF8, 0x12, 0x15, 0x0D @ #----------------X---------------#
.byte 0x0D, 0xFE, 0x10, 0x16, 0x0A, 0x1A, 0x28, 0x25 @ #------------------X-------------#
.byte 0xFE, 0x05, 0x22, 0x13, 0x08, 0x1A, 0x25, 0x0C @ #------------------X-------------#
.byte 0xFD, 0x12, 0x10, 0x06, 0x11, 0x20, 0x1E, 0x00 @ #-----------------X--------------#
.byte 0x04, 0x0A, 0xFC, 0x05, 0x16, 0x02, 0xEA, 0xEC @ #---------------X----------------#
.byte 0x08, 0xF1, 0xF3, 0x03, 0x01, 0xE5, 0xDB, 0xF8 @ #--------------X-----------------#
.byte 0xE4, 0xD3, 0xFA, 0xFE, 0xE5, 0xE9, 0xEC, 0xE2 @ #-------------X------------------#
.byte 0xD8, 0x0B, 0x12, 0xF4, 0x00, 0x09, 0x04, 0xFB @ #---------------X----------------#
.byte 0x12, 0x32, 0x17, 0x13, 0x2C, 0x1F, 0x24, 0x32 @ #--------------------X-----------#
.byte 0x3A, 0x42, 0x46, 0x4F, 0x35, 0x2C, 0x38, 0x42 @ #-----------------------X--------#
.byte 0x43, 0x41, 0x41, 0x3D, 0x29, 0x2F, 0x3A, 0x37 @ #-----------------------X--------#
.byte 0x25, 0x1F, 0x1D, 0x0E, 0x03, 0x06, 0x09, 0x08 @ #------------------X-------------#
.byte 0xEE, 0xEB, 0xDB, 0xD2, 0xD1, 0xD1, 0xD7, 0xD3 @ #-----------X--------------------#
.byte 0xD4, 0xCC, 0xB4, 0xCC, 0xDB, 0xCC, 0xD2, 0xC8 @ #---------X----------------------#
.byte 0xD6, 0xC0, 0xD2, 0x07, 0x02, 0xF0, 0xF5, 0x0D @ #-------------X------------------#
.byte 0x13, 0x00, 0x2E, 0x40, 0x2E, 0x3E, 0x3D, 0x4F @ #---------------------X----------#
.byte 0x3F, 0x46, 0x6B, 0x67, 0x65, 0x60, 0x5F, 0x69 @ #---------------------------X----#
.byte 0x69, 0x74, 0x71, 0x64, 0x75, 0x60, 0x60, 0x5C @ #-----------------------------X--#
.byte 0x66, 0x66, 0x49, 0x42, 0x47, 0x39, 0x28, 0x1F @ #------------------------X-------#
.byte 0x23, 0x1A, 0x05, 0x00, 0xFE, 0xF9, 0xDF, 0xCE @ #---------------X----------------#
.byte 0xDB, 0xD3, 0xC2, 0xB4, 0xB4, 0xB6, 0xA5, 0xA3 @ #-------X------------------------#
.byte 0x9D, 0x91, 0x9E, 0x8F, 0x93, 0x98, 0xA5, 0xA2 @ #---X----------------------------#
.byte 0x8B, 0xA9, 0xAB, 0x99, 0x8A, 0x96, 0xAD, 0xA4 @ #---X----------------------------#
.byte 0x9B, 0xBA, 0xA6, 0xA1, 0xA3, 0xB5, 0xC2, 0xBC @ #-----X--------------------------#
.byte 0xC7, 0xCA, 0xB9, 0xC6, 0xD5, 0xD5, 0xDA, 0xEA @ #---------X----------------------#
.byte 0xED, 0xCA, 0xDA, 0x06, 0x06, 0xFE, 0x08, 0x0F @ #--------------X-----------------#
@ ...
Disclaimer:
This tool is licensed under the terms of the GPLv3 license. It currently does work but I didn't invest time into making it "idiot proof". It can easily crash when if parameters are given".
Contributing:
Since this tool is licensed under the GPLv3 feel free to contribute by forking my repository on GitHub and improving the code. As I said above, the code is partially pretty dirty and I just want to warn you :D
Downloads & Links:
The source (C#) of this tool is available on my GitHub:
https://github.com/ipatix/m4a2s
The download can be found under the "release" section. Quick link:
https://github.com/ipatix/m4a2s/releases/tag/v0.1-beta
So I hope that someone might be interested in this tool.
Have a nice day ;)
Last edited: