avenir: How exactly do I fix the "Reading frontend (SPS)... failed." error? I am just trying to launch it from my flash card, after having generated SPS files.
please put sps.NitroMusicPlayer.nds in /moonshl2/extlink then execute .sps in moonshell2caitsith2 said:avenir: How exactly do I fix the "Reading frontend (SPS)... failed." error? I am just trying to launch it from my flash card, after having generated SPS files.
static u32 sdat_offset[64];
static u32 sdat_size[64];
static u32 sdat_head_size[64];
static u32 sdat_offset[256];
static u32 sdat_size[256];
static u32 sdat_head_size[256];
RupeeClock said:Edit: There seems to be a fault with either the SPS maker.exe or NDS_Music_player.nds with some filenames.
I have Pokémon Black.nds, Pokémon Platinum.nds and Pokémon Soul Silver.nds in my DS roms folder, none of their SPS files are found when I run the music player.
It's the é letter, for some reason that just voids everything.
QUOTE(caitsith2 @ Sep 11 2011, 12:03 PM) This error is absolutely impossible to fix. LibFat absolutely does not recognize anything past the standard 0x20-0x7E ascii characters at all, and rejects loading anything else. Your only recourse, is to remove the é in Pokémon, and replace it with e, as in Pokemon, and rerun SpsMaker on that instead. Any of the special german characters also have to be replaced with the standard ascii equivalent characters, (ä,Ä,ö,Ö,ü,Ü,ß. with a,A,o,O,u,U,B). (Tried hard-coding it myself, and that still failed.)
My alternative sps maker can handle éRupeeClock said:Edit: There seems to be a fault with either the SPS maker.exe or NDS_Music_player.nds with some filenames.
I have Pokémon Black.nds, Pokémon Platinum.nds and Pokémon Soul Silver.nds in my DS roms folder, none of their SPS files are found when I run the music player.
It's the é letter, for some reason that just voids everything.
- bw.BaseStream.WriteByte(Convert.ToByte(TempString.Length - 2));
- bw.BaseStream.Write(Encoding.ASCII.GetBytes(TempString), 2, filePaths[i].Length - 2);
+ byte []name = Encoding.UTF8.GetBytes(TempString);
+ bw.BaseStream.WriteByte(Convert.ToByte(name.Length - 2));
+ bw.BaseStream.Write(name, 2, name[i].Length - 2);
- bw.BaseStream.WriteByte(Convert.ToByte(TempString.Length - 2));
- bw.BaseStream.Write(Encoding.ASCII.GetBytes(TempString), 2, filePaths[i].Length - 2);
+ byte []name = Encoding.UTF8.GetBytes(TempString);
+ bw.BaseStream.WriteByte(Convert.ToByte(name.Length - 2));
+ bw.BaseStream.Write(name, 2, name[i].Length - 2);
- bw.BaseStream.WriteByte(Convert.ToByte(TempString.Length - 2));
- bw.BaseStream.Write(Encoding.ASCII.GetBytes(TempString), 2, filePaths[i].Length - 2);
+ byte []name = Encoding.UTF8.GetBytes(TempString);
+ bw.BaseStream.WriteByte(Convert.ToByte(name.Length - 2));
+ bw.BaseStream.Write(name, 2, name.Length - 2);
caitsith2 said:Also, while we are on the subject, yours also has a major bug, that is only present, if the executable is run directly on the command line, for the purpose of creating just one SPS, or from a win32 batch script for the purpose of creating more than one SPS. Yours does not check for a [Drive Letter]:\, and correctly strip off the first 2 characters, and replace \ with /.
0. your drive is X:
1. copy spsgen_minimal.sh to X:/
2. in cmd:
CODEX:
sh spsgen_minimal.sh #sorry you need gnuwin32 bash here...