You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: LICENSE
+7-1
Original file line number
Diff line number
Diff line change
@@ -55,4 +55,10 @@ Redistribution and use in source and binary forms, with or without modification,
55
55
56
56
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
57
57
58
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
58
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
59
+
60
+
It also includes stuff from GBAMusRipper, which doesn't have a standard license as such, but it does say this:
61
+
62
+
"GBAMusRipper is free and open source software. Anyone is free to redistribute it (with and without sources) and to improve it but just give me credit, THANK YOU VERY MUCH."
63
+
64
+
Hence, credit is given to Bregalad and CaptainSwag101 as the original authors of GBAMusRipper.
{'M',"GBA Video"},//Also used by mb2gba and any multiboot roms converted by it
55
55
{'Z',"DS expansion"},//Daigassou! Band-Brothers - Request Selection (it's just a slot 2 device for a DS game, but it has a
56
56
//GBA ROM header surprisingly), also Nintendo MP3 Player which was marketed as being for the DS so maybe "DS expansion" isn't quite
57
-
//the right name but it'll have to do
57
+
//the right name but I dunno
58
58
//Have also seen J for the Pokemon Aurora Ticket distribution cart, and G for GameCube multiboot images (they just use the product code of the GameCube disc they were from usually)
59
59
};
60
60
@@ -70,7 +70,7 @@ int calculateChecksum(WrappedInputStream f) {
70
70
try{
71
71
intx=0;
72
72
f.Position=0xa0;
73
-
while(f.Position<=0xbc){
73
+
while(f.Position<=0xbc){
74
74
x=(x-f.read())&0xff;
75
75
}
76
76
return(x-0x19)&0xff;
@@ -79,12 +79,6 @@ int calculateChecksum(WrappedInputStream f) {
//Thanks to GBAMusRipper and saptapper for documenting these and whatnot
116
+
readonlystaticbyte[]MP2K_SELECTSONG={
117
+
0x00,0xB5,0x00,0x04,0x07,0x4A,0x08,0x49,
118
+
0x40,0x0B,0x40,0x18,0x83,0x88,0x59,0x00,
119
+
0xC9,0x18,0x89,0x00,0x89,0x18,0x0A,0x68,
120
+
0x01,0x68,0x10,0x1C,0x00,0xF0
121
+
};
122
+
readonlystaticbyte[]MP2K_NEW_SELECTSONG={
123
+
0x00,0xB5,0x00,0x04,0x07,0x4B,0x08,0x49,
124
+
0x40,0x0B,0x40,0x18,0x82,0x88,0x51,0x00,
125
+
0x89,0x18,0x89,0x00,0xC9,0x18,0x0A,0x68,
126
+
0x01,0x68,0x10,0x1C,0x00,0xF0
127
+
};
128
+
readonlystaticbyte[]NATSUME_MAIN={
129
+
0x70,0xb5,0x20,0x49,0x20,0x4a,0x10,0x1c,
130
+
0x08,0x80,0x00,0xf0,0x8d,0xf8,0x01,0xf0,
131
+
0x97,0xfc,0x00,0xf0,0x4b,0xf8,0x80,0x21,
132
+
0xc9,0x04,0x60,0x20,0x08,0x80,0x1b,0x49,
133
+
0x01,0x20,0x08,0x60,0x1a,0x48,0x00,0x21,
134
+
0x01,0x60,0x1a,0x48,0x01,0x60,0x37,0xf0,
135
+
0x81,0xfa,0x19,0x48,0x00,0xf0,0xce,0xf8
136
+
};
137
+
138
+
readonlystaticbyte[]GAX2_INIT={0x47,0x41,0x58,0x32,0x5f,0x49,0x4e,0x49,0x54};//Literally "GAX2_INIT" in ASCII
139
+
//Taken from lib/mixer_func.s from the source of Krawall on Github, converted from assembly to hex. Seems to be good enough for identification
140
+
readonlystaticbyte[]KRAWALL_MIXCENTER={
141
+
0xf0,0x0f,0x2d,0xe9,//stmdb sp! {r4-r11}
142
+
0x08,0x50,0x90,0xe5,//ldr r5, [r0, #8]
143
+
0x14,0x60,0x90,0xe5,//ldr r6, [r0, #20]
144
+
0xbc,0x71,0xd0,0xe1,//ldrh r7, [r0, #28]
145
+
0x1e,0x30,0xd0,0xe5,//ldrb r3, [r0, #30]
146
+
0x22,0x21,0xa0,0xe1//mov r2, r2, lsr #2
147
+
};
148
+
//....Yeah
149
+
readonlystaticbyte[]RARE_AUDIO_ERROR=Encoding.ASCII.GetBytes("AUDIO ERROR, too many notes on channel 0.increase polyphony RAM");
150
+
//Discovered this accidentally myself, sometimes it's credited as GBAModPlay and sometimes as LS_Play; sometimes 2002 and sometimes 2003; and Google has no results at all for either of these other than the latter appearing in the TCRF page for Garfield and His Nine Lives but having no explanation other than it being a hidden credit and the URL after the year is now simply about a mobile game which the company made and seems to be their only online presence
151
+
readonlystaticbyte[]LOGIK_STATE_COPYRIGHT=Encoding.ASCII.GetBytes(" (C) Logik State ");
//Apparently it was also recompiled at some point and some games use it (Mother 3, Minish Cap, some others) but there doesn't seem to be any consistency in terms of new games using this and older games using the allegedly older driver
160
+
return"MP2000 (new)";
161
+
}elseif(ByteSearch.contains(bytes,NATSUME_MAIN)){
162
+
//Not sure what uses this. Games developed by Natsume, I guess (which amounts to basically Medabots, Keitai Denju Telefang 2, Buffy the Vampire Slayer, Shaun Palmer's Pro Snowboarder, some Power Rangers and wrestling games)
//Metroid Fusion (Uses the MP2000 sequence format but not the MP2000 playback. Metroid: Zero Mission and Wario Land 4 are probably the same?)
220
+
//My Little Pony: Crystal Princess: The Runaway Rainbow (Webfoot)
221
+
//Need For Speed: Underground (Pocketeers)
222
+
//Pinball Challenge Deluxe (Binary9, uses Logik State's music playback according to the credits but doesn't have the usual copyright string, so I may be doing something wrong)
223
+
//SimCity 2000 (Full Fat)
224
+
//Super Mario Advance 2/3/4 (Nintendo R&D2, Super Mario Advance 1 uses MP2000)
225
+
//V-Rally 3 (Velez & Dubail)
226
+
//WarioWare Inc, WarioWare: Twisted (Nintendo SPD 1)
227
+
//Who Wants to be a Millionaire? (Houthouse)
228
+
//GBA Video (4Kidz apparently?)
229
+
//Rhythm Tengoku (Nintendo SPD 1)
230
+
231
+
//Pokemon Liquid Crystal and Pokemon Shiny Gold are Pokemon ROM hacks so they should use MP2000, but apparently they don't somehow or they broke something to make them not detect as using it
232
+
//Also, apparently Mario & Luigi: Superstar Saga only uses MP2000 for the Mario Bros part and not for the main game, so that's weird
0 commit comments