DirectPlayS: Double-click to play S File directly

I have created a new tool to save the earth’s resources and our time.

download exe and ups

This is an application that allows you to play s files directly by double-clicking on them.

Recording mp3s is a hassle.
And sharing mp3s increases the file size, which is not earth-friendly.
In order to save the earth’s resources and our time, we need an application that allows us to double-click on a file to play it directly.

If the s file is not a music file, it will launch the specified text editor.
If the s file is a music file, import it to the specified ROM and launch VGMusicStudio to play the music.

You will need a ROM that has NIMAP2 installed.
A UPS with NIMAP2 adaptation is also included in the package.
If you have added your own instruments to NIMAP, you may want to specify your ROM.

You can launch this application and D&D the S file in form, or you can D&D the S file to this application.
If you register S File for this application using the OS association function, you can open it by double-clicking.
As mentioned earlier, if it’s not a music file, it launches a text editor so it doesn’t get in the way of ASM.

これは、s fileを直接ダブルクリックで再生できるようにするアプリケーションです。

mp3を録音するの手間です。
そして、mp3を共有するとファイルサイズが大きくなり、地球にやさしくありません。
地球の資源と、我々の手間を削減するために、s fileをダブルクリックで直接再生できるアプリケーションが必要です。

もし、s fileが音楽ファイルでない場合は、指定したテキストエディタを起動します。
もし、s fileが音楽ファイルだった場合は、所定のROMにImportして、VGMusicStudioを起動して、音楽を再生します。

NIMAP2を適応したROMが必要です。
NIMAP2を適応したUPSも添付しているので、それを利用すのもよいでしょう。
あなたの独自の楽器をNIMAPに追加している場合は、あなたのROMを指定するとよいでしょう。

このアプリケーションを起動して、S file を D&Dしてもよいですし、このアプリケーションにS fileをD&Dしてもよい。
このアプリケーションに対してS FileをOSの関連付け機能を使って、登録すればダブルクリックで開くことができるようになります。
先に述べたように、それが音楽ファイルでない場合は、テキストエディタを起動するので、ASMの邪魔にもなりません。

27 Likes

We have optimized the process to reduce the time it takes to play when opening a large s file.
It should probably be playable 1-2 seconds faster.

3 Likes

Amazing work, 7743. I will add this to the Music Repository so that people can play music without needing MP3 files!

If this works really well, I may even remove all the MP3 and other preview files to save space. They really inflate the repo’s filesize!

Edit: I have tested several music files in the repo. One of them caused a crash, but I don’t remember which one. I think I played it again and it worked fine. If I experience the crash again, I’ll note the details here.

Otherwise, these sound just like they would in the rom. A fantastic addition to the repo!

Edit2: This thing features a .wav export function! That is so awesome! Would it be possible to include exporting as .ogg and MP3, too? Especially OGG, as OGG files are smaller.

Edit3: When exporting as .midi, .wav, and so on, it would be great if the export function ‘remembered’ the name of the file it opened with. If I open the file “Ilmr of the East (Runa).s”, it should export as “Ilmr of the East (Runa).wav”, but currently it exports as “1.wav” which, if I want to export many hundreds of files for the Repo’s sake, this naming schema will add hours of time to the process.

1 Like

I got the bug to occur again.

It happened when I was playing this file:
https://puu.sh/IkoZi/4ee855861e.zip

Oddly, the song kept playing… but if I pressed quit on the error it turned the song off. I replayed the song again and the error didn’t occur. Seems sporadic.

This is an error caused by VGMusicStudio, not DirectPlayS.
Hmmm, if there is a countermeasure, would it be possible to use other software such as sappy?

Currently, it is fixed to VGMusicStudio, so we may be possible for the user to select it.
In most cases, VGMusicStudio works fine, but sometimes it behaves strangely.

1 Like

This is an extremely cool tool. Thank you so much for making this!
However, is there a way to make DirectPlayS run the older versions of GBAMusicStudio instead of VGMusicStudio?

VGMusicStudio is significantly inferior to GBAMusicStudio in regards to audio quality and other removed features like the ability to export MIDI and SF2 files of songs, so not upgrading ends up being preferable for some people like me. Will it be possible for DirectPlayS to support GBAMusicStudio?

Any chance on either of these two changes being possible?

VGMusicStudio being able to take the relevant command line arguments that let it boot immediately into playing a specific song in a specific rom is something newer than GBAMusicStudio so I don’t think this would be possible.

(Half-unrelated, the sample rate for each game with VGMusicStudio is defined in MP2K.toml, if you change this in your rom you should change it in that config file for FE8 as well; iirc it didnt ship with GBAFE definitions in that file as GBAMusicStudio so it’s possible you have that set higher and that’s the source of the quality disparity)

1 Like

This is a version that includes boot options.

This pull request has been ignored for over a year and has not been merged.

Therefore, you cannot use the regular version of VGMusicStudio.
I’m not sure why this feature isn’t merged.

1 Like

The drawback of extending SongTable is exactly that.
sappy and VGMusicStudio hardcode the address of the SongTable, not the pointer.
Therefore, if you extend a SongTable and move the address, it will not be recognized correctly.
sappy has an automatic detection routine for SongTable.
If it is not in the config, it can automatically detect the SongTable.
// This routine is also present in FEBuilderGBA.

However, VGMusicStudio doesn’t even have it, so if you extend SongTable, you have to modify the config file yourself.
That’s why FEBuilderGBA keeps the SongTable expansion button private by default.
This is because extending SongTable will make it incompatible with the default settings of other tools such as sappy.

I’m trying to make a configuration for FE8 in VGMussicStudio.

BE8E_00:
  Name: "Fire Emblem: The Sacred Stones (USA)"
  SongTableOffsets: 0x224470
  SongTableSizes: 2000
  SampleRate: 3
  ReverbType: "Normal"
  Reverb: 0
  Volume: 13
  HasGoldenSunSynths: False
  HasPokemonCompression: False
BE8J_00:
  Name: "Fire Emblem: The Sacred Stones (Japan)"
  SongTableOffsets: 0x214120
  SongTableSizes: 2000
  SampleRate: 3
  ReverbType: "Normal"
  Reverb: 0
  Volume: 13
  HasGoldenSunSynths: False
  HasPokemonCompression: False

You can download the full file here.
Overwrite this in MP2K.yaml in the VGMusicStadio directory.
https://cdn.discordapp.com/attachments/725478895226191892/901742177258975263/MP2K.yaml

If this works, update the package next time.
I look forward to your suggestions for improvement.

Update.

Changed to use song_instrumentset_ALL.txt as fallback.
If you’re using your own instrument instead of NIMAP, you can add a definition here to use it when NIMAP isn’t found.

Updated the VGMusicStudio configuration file.

2 Likes

I updated DirectPlayS.
Fixed a bug that prevented opening non-music s-files containing spaces.