This hack implement a music player available from the Main menu or Config menu. This code is heavily based from FF6-T Edition implementation of the music player which used the same idea as Pandora's Box in terms of menu layout and maybe actual coding.
A FF6j ASM file was shared in 2014 by FF6-T creator Tsushiy. Referencing the good FF3us functions and doing menu changes was all left to do to implement the music player core code in FF3us. Pandora's Box did it first so this team deserve much credit at the very least for proving that such a feature was possible as early as 2008.
If you want to change you song titles or the order / number of entries in the player, edit the mplayerdata.asm file then assemble either ff6_music_main.asm or ff6_music_config.asm with xkas 0.06. More implementations should follow, probably implementations made for the optimized $C3 bank made by Novalia Spirit.
FF6 Music Player
by madsiur (
[email protected])
version 1.3.3
released on 06/28/2017
Files
-----
nh: Patch for headerless ROM
ANTI: Revert patch
music_main: Main Menu Implementation
music_config1: Config menu Implementation (next to "Stereo" option)
music_config2: Config menu Implementation (additional row)
*** Other Files ***
mplayercore.asm: Music player code used by all implementations
mplayerdata.asm: Music player data used by al implementations
soundresume.asm: SPC code (bank $C5) ASM changes used by all implementations
menu.tbl: Menu table file used to edit song names (see mplayerdata.asm)
music_sfc.asm: Reference SFC implementation used as a base for this project.
Patches and files in the "optional fixes" folder have their own readme in
the same folder.
Space Used (Detail in ASM files)
--------------------------------
C5061F-C5063F (all implementations)
C3F091~C3FA20 (depends of implementation)
RAM usage (Song and volume saving)
----------------------------------
$D2: Map Song ID
$D3: Map Song Volume
Description
-----------
This hack implement a music player available from the Main menu or Config menu.
This code is heavily based from FF6-T Edition implementation of the music player
which is more or so a copy of Pandora's Box music player.
If you want to change you song titles or the order / number of entries in the player,
edit the mplayerdata.asm file then assemble either music_main.asm,
music_config1.asm or music_config2.asm with xkas 0.06. The only thing that you
should change if you are not in friendly waters are song name (always ends with $00)
and the playlist (table with all song IDs).
Song $51 is nothing so it was omitted from the default list. Generally, the songs list
follow a chronological order with sound effects at the end. You must always end your
song IDs list with silence ($00). This is how the music player stop reading entries.
If you want to add more songs and song titles just add more entries, no need of
extra changes in the code. You can type directly the names since the ASM file use the
menu.tbl table file.
The song selected in the player will play during the whole time you are in the menus
or until it ends. I coded a current field song save when entering main menu
and song restore when pressing B to exit the main menu. This should guarantee
the music player song will never play on the field, even if silence was the
previous field song.
More implementations should follow, probably implementations made for the optimized
$C3 bank made by Novalia Spirit. These patches should work with FF3us 1.1 though I
have not tested them on this ROM.
I'd like to thanks Lenophis for the original music player and tsushiy,
author of FF6-T Edition for sharing his SFC ASM file two years ago.
I would also like to thank Novalia Spirit for his $C3 Compendium.
Without the full documented SFC and US disassemblies, this would have take longer.
File: Final Fantasy III (U) (V1.0) [!].smc
CRC32: D184D919
MD5: 4CDFC79B44CD6D532DC6631A5C762094
SHA1: 258BCBC5B7BCC25098BF598C4FF2AA6AC00FDE16
File: Final Fantasy III (U) (V1.1) [!].smc
CRC32: E71362B7
MD5: EF1DE04CA2F61E88B77FA0F101C914DA
SHA1: 8B114342C844255C59B4345A30E0A34E784680EA