![]() ![]() M marks all such 'holes' in the hex dump and makes them available for something more useful, like storing code and/or data right inside the XM track. There are some byte chunks inside every XM file, which are reserved for future use or just holding metadata (comments, adds and so on). Finally, a really insane optimization option is available only for MASM32/TASM coders./Dl (lower-case letter L) makes uFMOD ignore the XM_NOLOOP flag (and makes the library smaller and faster, as expected). ![]() Not going to play files and/or resources? - An optimization geek uses hex dumps instead of resources anyway! Then, you'd probably like to use /Df and /Dr in order to make the library smaller.Check the "Reducing the executable file size" section for more information on using Jump2Pattern. This is an advanced feature, not used in most applications. /Dj disables the Jump2Pattern feature.Just use /Dv to turn it off and recover some bytes and clock cycles ) uFMOD_SetVolume not only makes the library bigger, but also consumes some additional CPU time.If you don't plan to use pause/resume features, add this option to the command line and save some more bytes. /Dp removes uFMOD_Pause and uFMOD_Resume functions and makes uFMOD ignore the XM_SUSPENDED flag.Removing them reduces the library size and makes it somewhat faster. Specify /Di to disable all the information functions: uFMOD_GetStats, uFMOD_GetRowOrder, uFMOD_GetTitle and uFMOD_GetTime.An RCDATA hex dump should be used for compatibility with early GNU resource compilers, like the one included in Dev-C++. Some resource script compilers don't support the Microsoft's id RCDATA "filename" syntax. /Ds generates a hex dump in RCDATA format, used in resource scripts./Dd and /Dc produce hex dumps in Pascal (Delphi, Kylix, FreePascal) or C/C++ format respectively.Both MASM32 and TASM examples included in the current uFMOD release use such hex dumps instead of regular resources to save some bytes. /Dm produces a hex dump from the given XM file, suitable for MASM32 and TASM.So, let's start opening the command shell and typing eff /h to request the following prompt:Īs you can see, the last parameter is expected to be a filename, specifying the XM file you plan to use in your application. The general idea is to extract only those features you do mean to use in your application, recompile the uFMOD library from source and obtain the smallest possible footprint. The /c option is useful for 'recovering' such a stripped file or just cleaning a regular file intended to be played with any other XM player.Įff is useful for advanced users, willing to squeeze every single byte out of their applications. Keep in mind, that other XM players whould probably reject a 'stripped' XM file. Typing xmstrip /h produces the following output: What it does exactly is removing overhead data (dummy instruments, patterns and junk metadata), stripping reserved and currently unused bytes, repacking pattern data. XMStrip expects an XM filename on input, repacks the file contents to make it smaller, without losing sound quality. When ran with command line arguments, console mode is triggered. Both utilities have dual interface: console and graphical (GUI). There are 2 freeware tools currently available to use along with uFMOD: XMStrip and Eff. At least, it's easier to use: just a couple of lines of source code will do the job. If you are not sure which uFMOD version to choose for your project, probably the standard WINMM version whould suit your needs better. However, most users won't tell the difference. Depending on hardware and drivers, WINMM output could sound clearer than DirectSound's or viceversa. So, you'd probably need to download the redistributable OpenAL drivers prior to starting developing OpenAL-powered applications. However, it is not preinstalled in Windows XP and earlier, except in some OEM machines with high-end Creative sound cards. OpenAL is cross-platform (available in Windows, Linux, Macintosh, etc.), features hardware accelerated environmental effects, very useful in game development. On the other hand, WINMM is almost always available, even in good old Windows 95. It is even considered to be more reliable than WINMM. ![]() DirectSound provides sound effects, mixing capabilities and a wide range of advanced features, like 3D sound. UFMOD for Win32 supports WINMM, DirectX® DirectSound and OpenAL. Usage examples available for the following compilers: Visual C++, C#, Visual Basic, PureBasic, FreeBASIC, BlitzMax, Emergence BASIC, Delphi, Borland C++ Builder, Dev-C++ (MingW), FreePascal, MASM32, FASM, NASM and TASM. It is able to play even damaged and non-standard XM tracks. File, resources and direct memory playback supported. ![]() It's perfect for size- and speed-critical applications, click free, highly reliable, easy to use, open source, multiplatform. UFMOD is an XM player library written in assembly language. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |